

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# IAM ロールをクラスターに関連付ける
<a name="copy-unload-iam-role-associating-with-clusters"></a>

Amazon Redshift が他の AWS のサービスにアクセスすることを許可する IAM ロールを作成した後、そのロールを Amazon Redshift クラスターに関連付ける必要があります。ロールを使用してデータをロードまたはアンロードする前に、これを行う必要があります。

## IAM ロールをクラスターに関連付けるために必要なアクセス許可
<a name="copy-unload-iam-role-associating-with-clusters-perms"></a>

IAM ロールをクラスターに関連付ける場合、ユーザーには、その IAM ロールの `iam:PassRole` アクセス許可が必要です。このアクセス許可により、ユーザーが IAM ロールを Amazon Redshift クラスターに関連付けることを管理者が制限できます。ベストプラクティスとして、アクセス許可ポリシーを IAM ロールにアタッチし、それを必要に応じてユーザーやグループに割り当てることをお勧めします。詳細については、「[Amazon Redshift での Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)」を参照してください。

次の例に示す IAM ポリシーは、以下のアクションの実行を許可するユーザーにアタッチできます。
+ そのユーザーアカウントによって所有されるすべての Amazon Redshift クラスターの詳細を取得します。
+ 3 つの IAM ロールのいずれかを 2 つの Amazon Redshift クラスターのいずれかに関連付けます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "redshift:DescribeClusters",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                 "redshift:ModifyClusterIamRoles",
                 "redshift:CreateCluster"
            ],
            "Resource": [
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-redshift-cluster",
                 "arn:aws:redshift:us-east-1:123456789012:cluster:my-second-redshift-cluster"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::123456789012:role/MyRedshiftRole",
                "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                "arn:aws:iam::123456789012:role/ThirdRedshiftRole"
             ]
        }
    ]
}
```

------

ユーザーは、適切なアクセス許可を取得すると、IAM ロールを Amazon Redshift クラスターに関連付けることができます。これで、IAM ロールは COPY や UNLOAD などの Amazon Redshift コマンドで使用できるようになります。

IAM ポリシーの詳細については、 *IAM ユーザーガイド*の [IAM ポリシーの概要](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) を参照してください。

## クラスターに関連付けられる IAM ロールの管理
<a name="managing-iam-role-association-with-cluster"></a>

IAM ロールは、Amazon Redshift クラスターの作成時にクラスターに関連付けることができます。または、既存のクラスターを変更し、1 つまたは複数の IAM ロールの関連付けを追加または削除できます。

以下の点に注意してください。
+ 関連付けることができる IAM ロールの最大数は、クォータの対象となります。
+ IAM ロールは複数の Amazon Redshift クラスターと関連付けることができます。
+ IAM ロールとクラスターの両方が同じ AWS アカウントによって所有されている場合にのみ、IAM ロールを Amazon Redshift クラスターに関連付けることができます。

次の手順を使用して、コンソールでクラスターに対する IAM ロールの関連付けを管理できます。

**IAM ロールの関連付けを管理するには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/redshiftv2/](https://console.aws.amazon.com/redshiftv2/) で Amazon Redshift コンソールを開きます。

1. ナビゲーションメニューで **[Clusters]** (クラスター) を選択し、更新するクラスターを選択します。

1. **アクション**で **IAM ロールの管理** を選択し、クラスターに現在関連付けられている IAM ロールのリストを表示します。

1. **IAM ロールの管理** ページで、追加する IAMロールを使用可能なオプションから選択した後、 **IAM ロールの追加**を選択します。

1. **完了** を選択して変更を保存します。

次のアプローチを使用して、 AWS CLI でクラスターに対する IAM ロールの関連付けを管理できます。

クラスターの作成時に IAM ロールをクラスターに関連付けるには、 `--iam-role-arns` コマンドの `create-cluster` パラメータで IAM ロールの Amazon リソースネーム (ARN) を指定します。`create-cluster` コマンドを呼び出すときに追加できる IAM ロールの最大数は、クォータの対象となります。

IAM ロールの Amazon Redshift クラスターへの関連付けおよび関連付けの解除は非同期処理です。`describe-clusters` コマンドを呼び出して、すべての IAM ロールのクラスター関連付けのステータスを取得できます。

次の例では、2 つの IAM ロールを `my-redshift-cluster` という名前の新しく作成されたクラスターに関連付けます。

```
aws redshift create-cluster \
    --cluster-identifier "my-redshift-cluster" \
    --node-type "ra3.4xlarge" \
    --number-of-nodes 16 \
    --iam-role-arns "arn:aws:iam::123456789012:role/RedshiftCopyUnload" \
                    "arn:aws:iam::123456789012:role/SecondRedshiftRole"
```

既存の Amazon Redshift クラスターに IAM ロールを関連付けるには、 `modify-cluster-iam-roles` コマンドの `--add-iam-roles` パラメータで IAM ロールの Amazon リソースネーム (ARN) を指定します。`modify-cluster-iam-roles` コマンドを呼び出すときに追加できる IAM ロールの最大数は、クォータの対象となります。

次の例では、IAM ロールを `my-redshift-cluster`という名前の既存のクラスターに関連付けます。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --add-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

クラスターから IAM ロールの関連付けを解除するには、`modify-cluster-iam-roles` コマンドの `--remove-iam-roles` パラメータで IAM ロールの ARN を指定します。`modify-cluster-iam-roles``modify-cluster-iam-roles` コマンドを呼び出すときに削除できる IAM ロールの最大数は、クォータの対象となります。

次の例では、 `my-redshift-cluster`という名前のクラスターから `123456789012` AWS アカウントの IAM ロールの関連付けを削除します。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier "my-redshift-cluster" \
    --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
```

### AWS CLIを使用してクラスターの IAM ロールの関連付けをリスト化する
<a name="w2aac37c30c30c35c31b7b9c29"></a>

Amazon Redshift クラスターに関連付けられている IAM ロールおよび IAM ロールの関連付けのステータスをリスト化するには、 `describe-clusters` コマンドを呼び出します。クラスターに関連付けられた各 IAM ロールの ARN は、次の出力例のように、 `IamRoles` リストで返されます。

クラスターに関連付けられているロールは、`in-sync` のステータスを示します。クラスターとの関連付けの途中であるロールは、`adding` のステータスを示します。クラスターから関連付けを解除されるロールは、`removing` のステータスを示します。

```
{
    "Clusters": [
        {
            "ClusterIdentifier": "my-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 16,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        },
        {
            "ClusterIdentifier": "my-second-redshift-cluster",
            "NodeType": "ra3.4xlarge",
            "NumberOfNodes": 10,
            "IamRoles": [
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/MyRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/SecondRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                },
                {
                    "IamRoleArn": "arn:aws:iam::123456789012:role/ThirdRedshiftRole",
                    "IamRoleApplyStatus": "in-sync"
                }
            ],
            ...
        }
    ]
}
```

AWS CLIの使用の詳細については、 *[AWS CLI ユーザーガイド](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)*を参照してください。