本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
本節可協助您設定要與 整合的 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",
"IAMRoleForEMRIdentityCenterApplicationARN": "arn:aws:iam::123456789012:role/tip-role"
}
},
"AuthorizationConfiguration": {
"LakeFormationConfiguration": {
"EnableLakeFormation": 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
– 選擇性地設定授權:-
EnableLakeFormation
:在叢集上啟用 Lake Formation 授權。
-
若要啟用 Identity Center 與 Amazon EMR 整合,您必須指定 EncryptionConfiguration
和 IntransitEncryptionConfiguration
。
建立並啟動已啟用 Identity Center 的叢集
現在,您已設定使用 Identity Center 執行身分驗證的 IAM 角色,並已建立已啟用 Identity Center 的 Amazon EMR 安全組態,您可以建立和啟動身分感知叢集。如需了解使用所需安全組態來啟動叢集的步驟,請參閱 指定 Amazon EMR 叢集的安全組態。
下列各節說明如何使用 Amazon EMR 支援的安全選項來設定啟用 Identity Center 的叢集: