

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS IAM アイデンティティセンター と Amazon EMR の開始方法
<a name="emr-idc-start"></a>

このセクションでは、 と統合するように Amazon EMR を設定するのに役立ちます AWS IAM アイデンティティセンター。

**Topics**
+ [

## Identity Center インスタンスを作成する
](#emr-idc-start-instance)
+ [

## Identity Center 用の IAM ロールを作成します。
](#emr-idc-start-role)
+ [

## IAM アイデンティティセンターと統合されていないサービスのアクセス許可を追加する
](#emr-idc-start-securityconfig-nonidc)
+ [

## Identity Center 対応のセキュリティ設定を作成します。
](#emr-idc-start-securityconfig)
+ [

## Identify 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)

**注記**  
アイデンティティセンターと EMR の統合を使用するには、Lake Formation または S3 Access Grants を有効にする必要があります。両方を使用することもできます。どちらも有効になっていない場合、アイデンティティセンターの統合はサポートされません。

## Identity Center インスタンスを作成する
<a name="emr-idc-start-instance"></a>

Identity Center インスタンスをまだお持ちでない場合は、EMR クラスターを起動する AWS リージョン に Identity Center インスタンスを作成します。各 Identity Center インスタンスは、 AWS アカウントの 1 つのリージョンにのみ存在できます。

次の AWS CLI コマンドを使用して、 という名前の新しいインスタンスを作成します`MyInstance`。

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

## Identity Center 用の IAM ロールを作成します。
<a name="emr-idc-start-role"></a>

Amazon EMR を と統合するには AWS IAM アイデンティティセンター、EMR クラスターから Identity Center で認証する IAM ロールを作成します。内部的には、Amazon EMR は SigV4 認証情報を使用して、Identity Center ID を 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` に設定します。以下は、`principalId` を表示する CloudTrail イベントのスニペットです。

```
{
    "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 アイデンティティセンターと統合されていないサービスのアクセス許可を追加する
<a name="emr-idc-start-securityconfig-nonidc"></a>

AWS Trusted Identity Propagation を使用する 認証情報 IAM アイデンティティセンターと統合されていないサービスに対して行われた呼び出しに対して IAM ロールで定義された IAM ポリシー。これには、 などが含まれます AWS Key Management Service。また、ロールは、例 AWS Key Management Serviceへのアクセスを試みるサービスに対する IAM アクセス許可も定義する必要があります。現在サポートされている IAM アイデンティティセンター統合サービスには、 AWS Lake Formation および Amazon S3 Access Grants が含まれます。

信頼された ID の伝播の詳細については、「[Trusted identity propagation across applications](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`** - (オプション) アイデンティティセンターインスタンス ARN。これが含まれていない場合、既存の IAM アイデンティティセンターインスタンス ARN は設定ステップの一部として検索されます。
+ **`IAMRoleForEMRIdentityCenterApplicationARN`** - (必須) クラスターから Identity Center トークンを取得する IAM ロール。
+ **`IdentityCenterApplicationAssignmentRequired `** - (ブーリアン型) Identity Center アプリケーションを使用するために割り当てが必要かどうかを制御します。このフィールドはオプションです。値が指定されていない場合、デフォルトは `false` です。
+ **`AuthorizationConfiguration` / `LakeFormationConfiguration`** – オプションで、認証を設定します。
  + **`IAMConfiguration`** — TIP ID に加えて EMR ランタイムロール機能を使用できるようにします。この設定を有効にすると、ユーザー (または発信者 AWS サービス) は EMR ステップまたは EMR `GetClusterSessionCredentials` APIs への各呼び出しで IAM ランタイムロールを指定する必要があります。EMR クラスターが SageMaker Unified Studio で使用されている場合は、信頼された ID の伝播も有効になっている場合にこのオプションが必要です。
  + **`EnableLakeFormation`** - クラスター上で Lake Formation 認可を有効にします。

Identity Center と Amazon EMR の統合を有効にするには、`EncryptionConfiguration` と `IntransitEncryptionConfiguration` を指定する必要があります。

## Identify Center 対応クラスターを作成して起動します。
<a name="emr-idc-cluster"></a>

ここまでで、Identity Center で認証する IAM ロールを設定し、Identity Center を有効にする Amazon EMR セキュリティ設定を作成できたので、Identify Center 対応クラスターを作成して起動できます。必要なセキュリティ設定を使用してクラスターを起動するステップについては、「[Amazon EMR クラスターのセキュリティ設定を指定する](emr-specify-security-configuration.md)」を参照してください。

以下のセクションでは、Amazon EMR がサポートするセキュリティオプションを使用してアイデンティティセンター対応クラスターを設定する方法について説明します。
+ [IAM Identity Center 対応 EMR クラスターでの S3 Access Grants の使用](emr-idc-s3ag.md)
+ [IAM Identity Center 対応 EMR クラスター用の Lake Formation を設定する](emr-idc-lf.md)

# IAM Identity Center 対応 EMR クラスター用の Lake Formation を設定する
<a name="emr-idc-lf"></a>

 AWS IAM アイデンティティセンター を有効にした EMR クラスター[AWS Lake Formation](https://docs.aws.amazon.com/lake-formation/latest/dg/)と統合できます。

まず、クラスターと同じリージョンに Identity Center インスタンスが設定されていることを確認します。詳細については、「[Identity Center インスタンスを作成する](emr-idc-start.md#emr-idc-start-instance)」を参照してください。IAM Identity Center コンソールでインスタンスの詳細を確認するか、または以下のコマンドを使用して CLI からすべてのインスタンスの詳細を確認することにより、インスタンス ARN を見つけます。

```
aws sso-admin list-instances
```

次に、次のコマンドで ARN と AWS アカウント ID を使用して、IAM Identity Center と互換性を持つように Lake Formation を設定します。

```
aws lakeformation create-lake-formation-identity-center-configuration --cli-input-json file://create-lake-fromation-idc-config.json 
json input:
{
    "CatalogId": "account-id/org-account-id",
    "InstanceArn": "identity-center-instance-arn"
}
```

次に、`put-data-lake-settings` を呼び出して、Lake Formation に対して `AllowFullTableExternalDataAccess` を有効にします。

```
aws lakeformation put-data-lake-settings --cli-input-json file://put-data-lake-settings.json 
json input:
{
    "DataLakeSettings": {
        "DataLakeAdmins": [
            {
                "DataLakePrincipalIdentifier": "admin-ARN"
            }
        ],
        "CreateDatabaseDefaultPermissions": [...],
        "CreateTableDefaultPermissions": [...],
        "AllowExternalDataFiltering": true,
        "AllowFullTableExternalDataAccess": true
    }
}
```

最後に、EMR クラスターにアクセスするユーザーの ID ARN に、フルテーブルアクセス許可を付与します。ARN には Identity Center から取得したユーザー ID が含まれます。コンソールで Identity Center に移動し、**[ユーザー]**を選択し、該当するユーザーを選択して**[一般情報]**設定を表示します。

ユーザー ID をコピーして、以下の `user-id` 用 ARN に貼り付けます。

```
arn:aws:identitystore:::user/user-id
```

**注記**  
EMR クラスターへのクエリは、その IAM Identity Center ID が、Lake Formation で保護されたテーブルに対するフルテーブルアクセス許可を持っている場合にのみ機能します。ID がフルテーブルアクセス許可を持っていない場合、クエリは失敗します。

以下のコマンドを使用して、ユーザーにフルテーブルアクセス許可を付与します。

```
aws lakeformation grant-permissions --cli-input-json file://grantpermissions.json
json input:
{
    "Principal": {
        "DataLakePrincipalIdentifier": "arn:aws:identitystore:::user/user-id"
    },
    "Resource": {
        "Table": {
            "DatabaseName": "tip_db",
            "Name": "tip_table"
        }
    },
    "Permissions": [
        "ALL"
    ],
    "PermissionsWithGrantOption": [
        "ALL"
    ]
}
```

## Lake Formation 統合のためにアプリケーション ARN の IDC への追加
<a name="emr-idc-enabled-idc"></a>

Lake Formation が有効なリソースをクエリするには、IDC アプリケーションのアプリケーション ARN を追加しなければなりません。これを実行するには、以下の手順を実行します。

1. コンソールで、**[AWS Lake Formation]** を選択します。

1. アプリケーション ARN を一致させて、**[IAM Identity Center 統合]** と **[Lake Formation アプリケーション統合]** を選択します。ARN が **[アプリケーション ID]** リストに表示されます。

# IAM Identity Center 対応 EMR クラスターでの S3 Access Grants の使用
<a name="emr-idc-s3ag"></a>

[S3 Access Grants ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-grants.html)を有効に AWS IAM アイデンティティセンター した EMR クラスターと統合できます。

S3 Access Grants を使用して、Identity Center を使用するクラスターからのデータセットへのアクセスを許可します。許可を作成して、IAM ユーザー、グループ、ロール、または社内ディレクトリ用に設定した権限を補強します。詳細については、「[Amazon EMR での S3 Access Grants の使用](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html)」を参照してください。

**Topics**
+ [

## S3 Access Grants インスタンスおよびロケーションを作成する
](#emr-idc-s3ag-instance)
+ [

## Identity Center の ID 用許可を作成します。
](#emr-idc-s3ag-identities)

## S3 Access Grants インスタンスおよびロケーションを作成する
<a name="emr-idc-s3ag-instance"></a>

まだ S3 Access Grants インスタンスを作成していない場合は、EMR クラスターを起動する AWS リージョン に S3 Access Grants インスタンスを作成します。

次の AWS CLI コマンドを使用して、 という名前の新しいインスタンスを作成します`MyInstance`。

```
aws s3control-access-grants create-access-grants-instance \
--account-id 12345678912 \
--identity-center-arn "identity-center-instance-arn" \
```

次に S3 Access Grants ロケーションを作成し、赤色の値を自分の使用する値に置き換えます。

```
aws s3control-access-grants create-access-grants-location \
--account-id 12345678912 \
--location-scope s3:// \
--iam-role-arn "access-grant-role-arn" \
--region aa-example-1
```

**注記**  
`iam-role-arn` パラメータを `accessGrantRole` ARN として定義します。

## Identity Center の ID 用許可を作成します。
<a name="emr-idc-s3ag-identities"></a>

最後に、クラスターにアクセスできる ID の権限を作成します。

```
aws s3control-access-grants create-access-grant \
--account-id 12345678912 \
--access-grants-location-id "default" \
--access-grants-location-configuration S3SubPrefix="s3-bucket-prefix"
--permission READ \
--grantee GranteeType=DIRECTORY_USER,GranteeIdentifier="your-identity-center-user-id"
```

出力例:

```
{
"CreatedAt": "2023-09-21T23:47:24.870000+00:00",
"AccessGrantId": "1234-12345-1234-1234567",
"AccessGrantArn": "arn:aws:s3:aa-example-1-1:123456789012:access-grants/default/grant/xxxx1234-1234-5678-1234-1234567890",
"Grantee": {
"GranteeType": "DIRECTORY_USER",
"GranteeIdentifier": "5678-56789-5678-567890"
},
"AccessGrantsLocationId": "default",
"AccessGrantsLocationConfiguration": {
"S3SubPrefix": "myprefix/*"
},
"Permission": "READ",
"GrantScope": "s3://myprefix/*"
}
```