配置 AWS IAM Identity Center¶
为了使用 AWS 认证管理器,您首先需要配置 AWS IAM Identity Center。AWS IAM Identity Center 被 AWS 认证管理器用于身份验证目的(登录和注销)。配置完成后,Airflow 环境管理员可以使用 Identity Center 服务管理用户和组。
创建资源¶
AWS 认证管理器在 AWS IAM Identity Center 中需要两个资源:一个实例和一个应用程序。您必须手动创建它们。
创建实例¶
AWS 认证管理器利用 SAML 2.0 作为对 AWS Identity Center 进行身份验证的底层技术。
有几种实例类型,但只有组织级别的实例才能使用 SAML 2.0 应用程序。在此处查看有关实例类型的更多详细信息。这里。
请按照 AWS 文档创建一个组织级别的 AWS IAM Identity Center 实例。
创建应用程序¶
请按照以下说明创建 AWS IAM Identity Center 应用程序。
选择 Applications。
选择 Customer managed 选项卡。
选择 Add application。
在 Select application type 页面上,在 Setup preference 下,选择 I have an application I want to set up。
在 Application type 下,选择 SAML 2.0。
选择 Next。
在 Configure application 页面上,在 Configure application 下,为应用程序输入一个 Display name(显示名称),例如
Airflow
。然后,输入一个 Description(描述)。在 IAM Identity Center metadata 下,复制 IAM Identity Center SAML metadata file 的地址。
注意
稍后您需要在 Airflow 配置中设置此地址。
在 Application metadata 下,选择 Manually type your metadata values。然后,按如下方式提供 Application ACS URL 和 Application SAML audience。
重要
将
<base_url>
替换为您 Airflow UI 的基本 URL。它应在AIRFLOW__WEBSERVER__BASE_URL
中定义(例如,如果 Airflow 在本地运行,则为localhost:8080
)。
Application ACS URL:
<base_url>/login_callback
Application SAML audience:
<base_url>/login_metadata
选择 Submit。应用程序现已创建。
属性映射配置¶
应用程序创建后,您需要配置属性映射。
转到您刚刚创建的应用程序的详细信息页面。
选择 Actions。
在 Actions 下,选择 Edit attribute mappings。
在 Attribute mappings 页面上,您需要配置身份源和 AWS IAM Identity Center 之间不同的属性映射。有关属性映射的更多信息,请参阅 IAM Identity Center 文档。AWS 认证管理器需要两个属性:id 和 groups。如果您使用默认的 Identity Center 目录作为身份源,可以使用以下配置
id
User attribute in the application:
id
Maps to this string value or user attribute in IAM Identity Center:
${user:AD_GUID}
Format:
basic
groups
User attribute in the application:
groups
Maps to this string value or user attribute in IAM Identity Center:
${user:groups}
Format:
basic
定义了 id 和 groups 这两个属性后,选择 Save changes。
配置 Airflow¶
您需要在 Airflow 配置中设置之前创建的 IAM Identity Center SAML 元数据文件。
[aws_auth_manager]
saml_metadata_url = <saml_metadata_file_url>
或
export AIRFLOW__AWS_AUTH_MANAGER__SAML_METADATA_URL='<saml_metadata_file_url>'