

# AWS Glue ETL での信頼できる ID 伝播の開始方法
<a name="security-trusted-identity-propagation-getting-started"></a>

このセクションでは、IAM アイデンティセンターと統合し、[信頼できる ID 伝播](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-overview.html)を有効にするためのインタラクティブセッションで AWS Glue アプリケーションを設定するのに役立ちます。

## 前提条件
<a name="security-trusted-identity-propagation-prerequisites"></a>
+ 信頼できる ID 伝播が有効な AWS Glue インタラクティブセッションを作成する AWS リージョンのアイデンティセンターインスタンス。各アイデンティセンターインスタンスは、1 つの AWS アカウントに対して 1 つのリージョンにのみ存在できます。詳細については、「[Enable IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/get-started-enable-identity-center.html)」と「[provision the users and groups from your source of identities into IAM Identity Cente](https://docs.aws.amazon.com/singlesignon/latest/userguide/tutorials.html)」を参照してください。
+ Lake Formation、Amazon S3 Access Grants、Amazon Redshift クラスターなど、インタラクティブなワークロードがデータにアクセスするためにやり取りするダウンストリームサービスに対して、信頼できる ID 伝播を有効にします。

## AWS Glue ETL を IAM アイデンティセンター接続するために必要なアクセス許可
<a name="security-trusted-identity-propagation-permissions"></a>

**IAM ロールを作成する**  
IAM アイデンティティセンター接続を作成するロールには、以下のインラインポリシーのように、AWS Glue と IAM アイデンティセンターでアプリケーション設定を作成および変更するアクセス許可が必要です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:CreateGlueIdentityCenterConfiguration",
                "sso:CreateApplication",
                "sso:PutApplicationAssignmentConfiguration",
                "sso:PutApplicationAuthenticationMethod",
                "sso:PutApplicationGrant",
                "sso:PutApplicationAccessScope",
                "sso:ListInstances"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

以下のインラインポリシーには、AWS Glue と IAM アイデンティセンターの統合のプロパティを表示、更新、削除するために必要な特定の権限が含まれています。

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を表示できるようにします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:GetGlueIdentityCenterConfiguration"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を更新できるようにします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:UpdateGlueIdentityCenterConfiguration",
                "sso:PutApplicationAccessScope",
                "sso:DeleteApplicationAccessScope"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

以下のインラインポリシーを使用して、IAM ロールで AWS Glue と IAM アイデンティセンターの統合を削除できるようにします。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "glue:DeleteGlueIdentityCenterConfiguration",
                "sso:DeleteApplication"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

------

### アクセス許可の説明
<a name="security-trusted-identity-propagation-permissions-description"></a>
+ `glue:CreateGlueIdentityCenterConfiguration` – AWS Glue IdC 設定を作成するためのアクセス許可を付与します。
+ `glue:GetGlueIdentityCenterConfiguration` – 既存の IdC 設定を取得する許可を付与します。
+ `glue:DeleteGlueIdentityCenterConfiguration` – 既存の AWS Glue IdC 設定セットを削除する許可を付与します。
+ `glue:UpdateGlueIdentityCenterConfiguration` – 既存の AWS Glue IdC 設定セットを更新する許可を付与します。
+ `sso:CreateApplication` – AWS Glue マネージド IAM アイデンティセンターアプリケーションを作成するためのアクセス許可を付与します。
+ `sso:DescribeApplication` – AWS Glue マネージド IAM アイデンティセンターアプリケーションを説明するためのアクセス許可を付与します。
+ `sso:DeleteApplication` – AWS Glue マネージド IAM アイデンティセンターアプリケーションを削除するためのアクセス許可を付与します。
+ `sso:UpdateApplication` – AWS Glue マネージド IAM アイデンティセンターアプリケーションを更新するためのアクセス許可を付与します。
+ `sso:PutApplicationGrant` – IdC アプリケーションに token-exchange、introspectToken、refreshToken、RevokeToken 許可を適用するアクセス許可を付与します。
+ `sso:PutApplicationAuthenticationMethod` – AWS Glue サービスプリンシパルが IdC アプリケーションとやり取りできるようにする AWS Glue マネージド IdC アプリケーションに authenticationMethod を配置するアクセス許可を付与します。
+ `sso:PutApplicationAccessScope` – AWS Glue マネージド IdC アプリケーションで承認されたダウンストリームサービススコープのリストを追加または更新するアクセス許可を付与します。
+ `sso:DeleteApplicationAccessScope` – AWS Glue マネージド IdC アプリケーションのスコープが削除された場合にダウンストリームスコープを削除するアクセス許可を付与します。
+ `sso:PutApplicationAssignmentConfiguration` – IdC アプリケーションに「User-assignment-not-required」設定を設定するアクセス許可を付与します。
+ `sso:ListInstances` – インスタンスを一覧表示し、identity-center-configuration パラメータで指定した IdC InstanceArn を検証するアクセス許可を付与します。

## AWS Glue と IAM アイデンティセンターの接続
<a name="security-trusted-identity-propagation-connecting"></a>

AWS Glue が IAM アイデンティセンターに接続されると、アカウントごとにシングルトンマネージド IdC アプリケーションが作成されます。次の例は、AWS Glue と IAM アイデンティセンターを接続する方法を示しています。

```
aws glue create-glue-identity-center-configuration \
--instance-arn arn:aws:sso:::instance/ssoins-123456789 \
--scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'
```

マネージドアプリケーションの範囲を更新するため (通常はダウンストリームサービスに伝播するために)、以下を使用できます。

```
aws glue update-glue-identity-center-configuration \
--scopes '["s3:access_grants:read_write", "redshift:connect","lakeformation:query"]'
```

Scopes パラメータはオプションであり、指定しない場合、すべてのスコープが追加されます。サポートされる値は `s3:access_grants:read_write`、`redshift:connect`、`lakeformation:query` です。

設定の詳細の取得には、以下を使用できます。

```
aws glue get-glue-identity-center-configuration
```

AWS Glue と IAM アイデンティセンター間の接続を削除するには、次のコマンドを使用します。

```
aws glue delete-glue-identity-center-configuration
```

**注記**  
AWS Glue は、サービスが ID 検証とダウンストリームサービスへの ID 伝播に使用するサービスマネージドアイデンティセンターアプリケーションをアカウントに作成します。AWS Glue で作成された作成したマネージドアイデンティセンターアプリケーションは、アカウント内のすべての信頼できる ID 伝播セッションで共有されます。  
**警告:** マネージドアイデンティセンターアプリケーションの設定を変更しないでください。変更は、アカウントで信頼できる ID 伝播が有効なすべての AWS Glue インタラクティブセッションに影響を与える可能性があります。

## 信頼できる ID 伝播を有効にして AWS Glue インタラクティブセッションを作成する
<a name="security-trusted-identity-propagation-creating-session"></a>

AWS Glue と IAM アイデンティセンターを接続すると、[ID が強化されたロール認証情報](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html)を使用して AWS Glue インタラクティブセッションを作成できます。5.0 AWS Glue セッションの作成時に追加のパラメータを渡す必要はありません。AWS Glue は IAM アイデンティセンターに接続されているため、AWS Glue で ID が強化されたロール認証情報が検出されると、ステートメントの一部として呼び出されるダウンストリームサービスに ID 情報が自動的に伝播されます。ただし、セッションのランタイムロールには、以下に示すように `sts:SetContext` アクセス許可が必要です。

**ID を伝播するためのランタイムロールのアクセス許可**  
 AWS Glue セッションでは[ ID が強化された認証情報](https://docs.aws.amazon.com/singlesignon/latest/userguide/trustedidentitypropagation-identity-enhanced-iam-role-sessions.html)を活用して ID をダウンストリームの AWS サービスに伝達するため、ランタイムロールの信頼ポリシーには、ダウンストリームサービス (Amazon S3 Access Grants、Lake Formation、Amazon Redshift) への ID 伝播を可能にするための追加のアクセス許可 `sts:SetContext` が必要です。ランタイムロールの作成方法の詳細については、[ランタイムロールのセットアップ](https://docs.aws.amazon.com/glue/latest/dg/create-service-role.html)について参照してください。

------
#### [ JSON ]

****  

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

------

さらに、ランタイムロールには、ジョブ実行がユーザー ID を使用してデータを取得するために呼び出すダウンストリーム AWS サービスのアクセス許可が必要です。Amazon S3 Access Grants と Lake Formation を設定するには、次のリンクを参照してください。
+ [AWS Glue での Lake Formation の使用](https://docs.aws.amazon.com/glue/latest/dg/security-lake-formation-fgac.html)
+ [AWS Glue での Amazon S3 Access Grants の使用](https://docs.aws.amazon.com/glue/latest/dg/security-s3-access-grants.html)