

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

# AWS IAM Identity Center 和 Amazon EMR 入門
<a name="emr-idc-start"></a>

本節可協助您設定 Amazon EMR 與 整合 AWS IAM Identity Center。

**Topics**
+ [建立 Identity Center 執行個體](#emr-idc-start-instance)
+ [為 Identity Center 建立 IAM 角色](#emr-idc-start-role)
+ [新增未與 IAM Identity Center 整合之服務的許可](#emr-idc-start-securityconfig-nonidc)
+ [建立已啟用 Identity Center 的安全組態](#emr-idc-start-securityconfig)
+ [建立並啟動已啟用 Identity Center 的叢集](#emr-idc-cluster)
+ [為已啟用 IAM Identity Center 的 EMR 叢集設定 Lake Formation](emr-idc-lf.md)
+ [在已啟用 IAM Identity Center 的 EMR 叢集上使用 S3 Access Grants](emr-idc-s3ag.md)

**注意**  
若要使用 Identity Center 與 EMR 整合，必須啟用 Lake Formation 或 S3 Access Grants。您也可以同時使用兩者。如果兩者都未啟用，則不支援 Identity Center 整合。

## 建立 Identity Center 執行個體
<a name="emr-idc-start-instance"></a>

如果您還沒有 Identity Center 執行個體，請在要啟動 EMR 叢集的 AWS 區域 中建立 Identity Center 執行個體。Identity Center 執行個體僅能存在於一個 AWS 帳戶的單一區域中。

使用下列 AWS CLI 命令來建立新的執行個體，名為 `MyInstance`：

```
aws sso-admin create-instance --name MyInstance
```

## 為 Identity Center 建立 IAM 角色
<a name="emr-idc-start-role"></a>

若要整合 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`的 設定為 `userID-untrusted`。以下是顯示 的 CloudTrail 事件程式碼片段`principalId`。

```
{
    "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 整合之服務的許可
<a name="emr-idc-start-securityconfig-nonidc"></a>

AWS 對於未與 IAM Identity Center 整合之服務的任何呼叫，使用 IAM 角色中定義之 IAM 政策的 憑證。例如，這包括 AWS Key Management Service。您的角色也應該為嘗試存取範例的任何此類服務定義任何 IAM 許可 AWS Key Management Service。目前支援的 IAM Identity Center 整合服務包括 AWS Lake Formation 和 Amazon S3 Access Grants。

若要進一步了解受信任身分傳播，請參閱[跨應用程式的受信任身分傳播](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation.html)。

## 建立已啟用 Identity Center 的安全組態
<a name="emr-idc-start-securityconfig"></a>

若要啟動具有 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 執行期角色功能。如果您啟用此組態，則每次呼叫 EMR 步驟或 EMR `GetClusterSessionCredentials` APIs 時，都需要您 （或發起人 AWS 服務） 指定 IAM 執行期角色。如果 EMR 叢集正在與 SageMaker Unified Studio 搭配使用，則如果也啟用受信任身分傳播，則需要此選項。
  + **`EnableLakeFormation`**：在叢集上啟用 Lake Formation 授權。

若要啟用 Identity Center 與 Amazon EMR 整合，您必須指定 `EncryptionConfiguration` 和 `IntransitEncryptionConfiguration`。

## 建立並啟動已啟用 Identity Center 的叢集
<a name="emr-idc-cluster"></a>

現在，您已設定使用 Identity Center 執行身分驗證的 IAM 角色，並已建立已啟用 Identity Center 的 Amazon EMR 安全組態，您可以建立和啟動身分感知叢集。如需了解使用所需安全組態來啟動叢集的步驟，請參閱 [指定 Amazon EMR 叢集的安全組態](emr-specify-security-configuration.md)。

下列各節說明如何使用 Amazon EMR 支援的安全選項來設定啟用 Identity Center 的叢集：
+ [在已啟用 IAM Identity Center 的 EMR 叢集上使用 S3 Access Grants](emr-idc-s3ag.md)
+ [為已啟用 IAM Identity Center 的 EMR 叢集設定 Lake Formation](emr-idc-lf.md)