开始进行 Amazon EMR 的 Amazon IAM Identity Center 集成
本部分帮助您配置要与 Amazon IAM Identity Center 集成的 Amazon EMR。
主题
注意
要使用 Identity Center 与 EMR 集成,必须启用 Lake Formation 或 S3 访问授权。也可以两者都启用。如果两者都未启用,则不支持 Identity Center 集成。
创建 Identity Center 实例
如果您还没有实例,请在您要启动 EMR 集群的 Amazon Web Services 区域 中创建一个 Identity Center 实例。Identity Center 实例只能存在于 Amazon Web Services 账户 的单个区域中。
使用以下 Amazon CLI 命令创建一个名为 的新实例:MyInstance
aws sso-admin create-instance --nameMyInstance
为 Identity Center 创建 IAM 角色
要将 Amazon EMR 与 Amazon IAM Identity Center 集成,请创建一个 IAM 角色,该角色从 EMR 集群中使用 Identity Center 进行身份验证。在幕后,Amazon EMR 使用 SigV4 凭证将 Identity Center 身份中继到下游服务,例如 Amazon Lake Formation。您的角色还应当具有调用下游服务的相应权限。
创建角色时,请使用下面的权限策略:
{ "Statement": [ { "Sid": "IdCPermissions", "Effect": "Allow", "Action": [ "sso-oauth:*" ], "Resource": "*" }, { "Sid": "GlueandLakePermissions", "Effect": "Allow", "Action": [ "glue:*", "lakeformation:GetDataAccess" ], "Resource": "*" }, { "Sid": "AccessGrantsPermissions", "Effect": "Allow", "Action": [ "s3:GetDataAccess", "s3:GetAccessGrantsInstanceForPrefix" ], "Resource": "*" } ] }
该角色的信任策略允许 InstanceProfile 角色让其代入角色。
{ "Sid": "AssumeRole", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::12345678912:role/EMR_EC2_DefaultRole" }, "Action": [ "sts:AssumeRole", "sts:SetContext" ] }
如果该角色没有受信任的凭证并访问受 Lake Formation 保护的表,则 Amazon EMR 会自动将代入角色的 principalId 设置为 。下面是 CloudTrail 事件的代码段,该代码段显示 userID-untrustedprincipalId。
{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "ABCDEFGH1JKLMNO2PQR3TU:5000-untrusted", "arn": "arn:aws:sts::123456789012:assumed-role/EMR_TIP/5000-untrusted", "accountId": "123456789012", "accessKeyId": "ABCDEFGH1IJKLMNOPQ7R3" ...
为未与 IAM Identity Center 集成的服务添加权限
对于对未与 IAM Identity Center 集成的服务进行的任何调用,使用可信身份传播的 Amazon 凭证将使用 IAM 角色中定义的 IAM 策略。例如,这包括 Amazon Key Management Service。您的角色还应为您尝试访问示例 Amazon Key Management Service 的任何此类服务定义任何 IAM 权限。目前支持的 IAM Identity Center 集成服务包括 Amazon Lake Formation 和 Amazon S3 访问权限管控。
要了解有关可信身份传播的更多信息,请参阅跨应用程序的可信身份传播。
创建启用 Identity Center 的安全配置
要启动 EMR 集群与 IAM Identity Center 的集成,请使用以下示例命令创建启用了 Identity Center 的 Amazon EMR 安全配置。下文对每种配置进行说明。
aws emr create-security-configuration --name "IdentityCenterConfiguration-with-lf-accessgrants" --region "us-west-2" --security-configuration '{ "AuthenticationConfiguration":{ "IdentityCenterConfiguration":{ "EnableIdentityCenter":true, "IdentityCenterApplicationAssigmentRequired":false, "IdentityCenterInstanceARN": "arn:aws:sso:::instance/ssoins-123xxxxxxxxxx789" } }, "AuthorizationConfiguration": { "LakeFormationConfiguration": { "AuthorizedSessionTagValue": "Amazon EMR" }, "IAMConfiguration": { "EnableApplicationScopedIAMRole": true, "ApplicationScopedIAMRoleConfiguration": { "PropagateSourceIdentity": true } } }, "EncryptionConfiguration": { "EnableInTransitEncryption": true, "EnableAtRestEncryption": false, "InTransitEncryptionConfiguration": { "TLSCertificateConfiguration": { "CertificateProviderType": "PEM", "S3Object": "s3://amzn-s3-demo-bucket/cert/my-certs.zip" } } } }'
-
EnableIdentityCenter–(必需)启用 Identity Center 集成。 -
IdentityCenterInstanceARN:(可选)Identity Center 实例 ARN。如果未包含此项,则会在配置步骤中查找现有 IAM Identity Center 实例 ARN。 -
IAMRoleForEMRIdentityCenterApplicationARN–(必需)从集群购买 Identity Center 令牌的 IAM 角色。 -
IdentityCenterApplicationAssignmentRequired–(布尔值)管理是否需要分配才能使用 Identity Center 应用程序。该字段是可选的。如果未提供值,则默认值为false。 -
AuthorizationConfiguration/LakeFormationConfiguration–(可选)配置身份验证:-
IAMConfiguration– 除了您的 TIP 身份之外,还可以使用 EMR 运行时角色功能。如果启用此配置,则您(或调用方 Amazon 服务)需要在每次调用 EMR 步骤或 EMRGetClusterSessionCredentialsAPI 时指定 IAM 运行时角色。如果 EMR 集群与 SageMaker 融通式合作开发工作室一起使用,则当还启用了可信身份传播时,需要此选项。 -
EnableLakeFormation– 在集群上启用 Lake Formation 授权。
-
要启用 Identity Center 与 Amazon EMR 的集成,您必须指定 EncryptionConfiguration 和 IntransitEncryptionConfiguration。
创建并启动启用了 Identity Center 的集群
现在,您已经设置了通过 Identity Center 进行身份验证的 IAM 角色,并创建了启用 Identity Center 的 Amazon EMR 安全配置,您可以创建和启动您的身份感知集群。有关使用所需的安全配置启动集群的步骤,请参阅 指定 Amazon EMR 集群的安全配置。
以下部分介绍了如何使用 Amazon EMR 支持的安全选项配置已启用 Identity Center 的集群: