EMR Serverless 的 Trusted-Identity Propagation 入門 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

EMR Serverless 的 Trusted-Identity Propagation 入門

本節可協助您使用 Apache Livy 端點設定 EMR-Serverless 應用程式,以與 AWS IAM Identity Center 整合,並啟用受信任身分傳播

先決條件

建立啟用信任身分傳播的 EMR Serverless 應用程式所需的許可

除了存取 EMR Serverless 所需的基本許可之外,您還必須為 IAM 身分或角色設定其他許可,用於建立啟用受信任身分傳播的 EMR Serverless 應用程式。對於受信任身分傳播,EMR Serverless 會在您的帳戶中建立/引導單一服務受管身分中心應用程式,該應用程式會利用該應用程式將身分驗證和身分傳播到下游。

"sso:DescribeInstance", "sso:CreateApplication", "sso:DeleteApplication", "sso:PutApplicationAuthenticationMethod", "sso:PutApplicationAssignmentConfiguration", "sso:PutApplicationGrant", "sso:PutApplicationAccessScope"
  • sso:DescribeInstance – 准許描述和驗證您在 identity-center-configuration 參數中指定的 IAM Identity Center instanceArn。

  • sso:CreateApplication – 准許建立用於trusted-identity-propatgion Center 應用程式。

  • sso:DeleteApplication – 准許清除 EMR Serverless 受管 IAM Identity Center 應用程式

  • sso:PutApplicationAuthenticationMethod – 准許在 EMR Serverless 受管 IAM Identity Center 應用程式上放置 authenticationMethod,以允許 emr-serverless 服務主體與 IAM Identity Center 應用程式互動。

  • sso:PutApplicationAssignmentConfiguration – 准許在 IAM Identity Center 應用程式上設定「User-assignment-not-required」設定。

  • sso:PutApplicationGrant – 准許在 IAM Identity Center 應用程式上套用 Token-exchange、introspectToken、refreshToken 和 revokeToken 授予。

  • sso:PutApplicationAccessScope – 准許將啟用信任身分傳播的下游範圍套用至 IAM Identity Center 應用程式。我們套用「redshift:connect」、「lakeformation:query」和「s3:read_write」範圍,以啟用這些服務的trusted-identity-propagation。

建立啟用信任身分傳播的 EMR Serverless 應用程式

您需要使用 指定 —identity-center-configuration 欄位identityCenterInstanceArn,才能在應用程式中啟用信任身分傳播。使用下列範例命令來建立已啟用信任身分傳播的 EMR Serverless 應用程式。

注意

您也需要指定 ,--interactive-configuration '{"livyEndpointEnabled":true}'因為僅針對 Apache Livy 端點啟用信任身分傳播。

aws emr-serverless create-application \ --release-label emr-7.8.0 \ --type "SPARK" \ --identity-center-configuration '{"identityCenterInstanceArn" : "arn:aws:sso:::instance/ssoins-123456789"}' \ --interactive-configuration '{"livyEndpointEnabled":true}'
  • identity-center-configuration – (選用) 指定時啟用 Identity Center 信任的身分傳播。

  • identityCenterInstanceArn:(必要) Identity Center 執行個體 ARN。

如果您沒有必要的 Identity Center 許可 (上述),您應該先在沒有信任身分傳播的情況下建立 EMR Serverless 應用程式 (例如,不要指定—identity-center-configuration參數),然後請 Identity Center Admin 透過叫用 update-application API 來啟用信任身分傳播,請參閱以下範例:

aws emr-serverless update-application \ --application-id applicationId \ --identity-center-configuration '{"identityCenterInstanceArn" : "arn:aws:sso:::instance/ssoins-123456789"}'

EMR Serverless 會在您的帳戶中建立服務受管的 Identity Center 應用程式,服務會利用該應用程式來驗證身分,並將身分傳播到下游服務。EMR Serverless 建立的受管 Identity Center 應用程式會與您帳戶中所有trusted-identity-propagation的 EMR Serverless 應用程式共用。

注意

請勿手動修改受管 Identity Center 應用程式上的設定。任何變更都可能會影響您帳戶中所有啟用trusted-identity-propagation的 EMR Serverless 應用程式。

任務執行角色傳播身分的許可

由於 EMR-Serverless 利用 Identity-enhanced job-execution-role 登入資料將身分傳播到下游 AWS 服務,因此 Job Execution Role 的 Trust-policy 必須具有額外的許可sts:SetContext,以使用身分增強任務執行角色登入資料,以允許受trusted-identity-propagation到下游服務,例如 S3 Access-grant、Lake Formation 或 Amazon Redshift。若要進一步了解如何建立角色,請參閱建立任務執行時間角色

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "emr-serverless.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:SetContext"] } ] }

此外,JobExecutionRole 需要下游 AWS 服務的許可,任務執行會使用使用者身分來擷取資料。請參閱以下連結來設定 S3 Access Grant、Lake Formation。