本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EMR AWS IAM Identity Center 整合入門
本節可協助您設定要與 整合的 Amazon EMR AWS IAM Identity Center。
主題
注意
若要使用 Identity Center 與 EMR 整合,必須啟用 Lake Formation 或 S3 Access Grants。您也可以同時使用兩者。如果兩者皆未啟用,則不支援 Identity Center 整合。
建立 Identity Center 執行個體
如果您還沒有 Identity Center 執行個體,請在要啟動 EMR 叢集的 AWS 區域 中建立 Identity Center 執行個體。Identity Center 執行個體僅能存在於一個 AWS 帳戶的單一區域中。
使用下列 AWS CLI 命令來建立新的執行個體,名為
:MyInstance
aws sso-admin create-instance --name
MyInstance
為 Identity Center 建立 IAM 角色
若要將 Amazon EMR 與 整合 AWS IAM Identity Center,請建立 IAM 角色,從 EMR 叢集向 Identity Center 進行身分驗證。本質上而言,Amazon EMR 會使用 SigV4 憑證將 Identity Center 身分轉送至下游服務,例如 AWS 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 整合之服務的許可
AWS 憑證,其使用 IAM 角色中定義的 IAM 政策來呼叫未與 IAM Identity Center 整合的服務。例如,這包括 AWS Key Management Service。您的角色也應該定義您要嘗試存取的任何此類服務的 IAM 許可。目前支援的 IAM Identity Center 整合服務包括 AWS Lake Formation 和 Amazon S3 Access Grants。
若要進一步了解受信任身分傳播,請參閱跨應用程式的受信任身分傳播。
建立已啟用 Identity Center 的安全組態
若要啟動具有 IAM Identity Center 整合的 EMR 叢集,請使用以下範例命令來建立已啟用 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 Runtimes 角色功能。如果您啟用此組態,則每次呼叫 EMR 步驟或 EMRGetClusterSessionCredentials
APIs 時,都需要您 (或發起人 AWS 服務) 指定 IAM 執行期角色。如果 EMR 叢集與 SageMaker Unified Studio 搭配使用,則如果也啟用受信任身分傳播,則需要此選項。 -
EnableLakeFormation
:在叢集上啟用 Lake Formation 授權。
-
若要啟用 Identity Center 與 Amazon EMR 整合,您必須指定 EncryptionConfiguration
和 IntransitEncryptionConfiguration
。
建立並啟動已啟用 Identity Center 的叢集
現在,您已設定使用 Identity Center 執行身分驗證的 IAM 角色,並已建立已啟用 Identity Center 的 Amazon EMR 安全組態,您可以建立和啟動身分感知叢集。如需了解使用所需安全組態來啟動叢集的步驟,請參閱 指定 Amazon EMR 叢集的安全組態。
下列各節說明如何使用 Amazon EMR 支援的安全選項來設定啟用 Identity Center 的叢集: