

 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/)を参照してください。

# Amazon Redshift 用にデフォルトの IAM ロールを作成する
<a name="default-iam-role"></a>

 Redshift コンソールから IAM ロールを作成すると、Amazon Redshift が AWS アカウント 内でプログラム的にロールを作成します。その後、作成したロールに対し、既存の AWS 管理ポリシーを自動的にアタッチします。このアプローチにより、ユーザーは Redshift コンソール内に留まることができ、IAM コンソールに切り替えることなくロールを作成できます Amazon Redshift コンソールで作成された既存の IAM ロールにおいて、アクセス許可をより詳細に制御する場合には、カスタマイズされた管理ポリシーを IAM ロールにアタッチします。

## コンソールで作成された IAM ロール
<a name="default-iam-role-overview"></a>

Amazon Redshift コンソールを使用して作成されたすべての IAM ロールは、Amazon Redshift により追跡されます。Amazon Redshift は、新しいすべてのクラスターの作成と、スナップショットからのクラスター復元のために、最新のデフォルトの IAM ロールを事前に選択します。

IAM ロールは、SQL コマンドを実行することが許可されたポリシーを持つコンソールから作成できます。ここで実行されるコマンドには、COPY、UNLOAD、CREATE EXTERNAL FUNCTION、CREATE EXTERNAL TABLE、CREATE EXTERNAL SCHEMA、CREATE MODEL、および CREATE LIBRARY などがあります オプションで、カスタムポリシーを作成し IAM ロールにアタッチすることで、AWS リソースへのユーザーアクセスをより詳細に制御できます。

コンソールを使用して IAM ロールを作成し、クラスターのデフォルトとして設定した場合には、認証と認可を実行するために IAM ロールの Amazon リソースネーム (ARN) を指定する必要はありません。

クラスター用としてコンソールから作成する IAM ロールには、`AmazonRedshiftAllCommandsFullAccess` マネージドのポリシーが自動的にアタッチされます。この IAM ロールにより Amazon Redshift は、IAM アカウントにある AWS リソースにおいて、データのコピー、解放、クエリ、および分析を行えるようになります。このマネージドポリシーは、[COPY](https://docs.aws.amazon.com/redshift/latest/dg/copy-parameters-authorization.html)、[UNLOAD](https://docs.aws.amazon.com/redshift/latest/dg/r_UNLOAD.html)、[CREATE EXTERNAL FUNCTION](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html)、[CREATE EXTERNAL SCHEMA](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_SCHEMA.html)、[CREATE MODEL](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_MODEL.html)、[CREATE LIBRARY](https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_LIBRARY.html) の各オペレーションへのアクセスを提供します。また、このポリシーでは、関連する AWS サービス (Amazon S3、Amazon CloudWatch Logs、Amazon SageMaker AI、AWS Glue など) のために SELECT ステートメントを実行するアクセス許可も付与します。

CREATE EXTERNAL FUNCTION、CREATE EXTERNAL SCHEMA、CREATE MODEL、および CREATE LIBRARY コマンドには、`default` キーワードが付加されています。これらのコマンドにこのキーワードがある場合、Amazon Redshift は、コマンドの実行時にデフォルトとして設定され、クラスターに関連付けられた IAM ロールを使用します。[DEFAULT\_IAM\_ROLE](https://docs.aws.amazon.com/redshift/latest/dg/r_DEFAULT_IAM_ROLE.html) コマンドを実行すると、クラスターにアタッチされている現在のデフォルトの IAM ロールを確認できます。

Redshift クラスターのデフォルトとして作成ならびに設定された IAM ロールのアクセス権限を制御する場合は、ASSUMEROLE 権限を使用します。このアクセス制御は、先に一覧で示したコマンドを実行する際に、データベースユーザーおよびグループに対し適用されます。IAM ロールのユーザーまたはグループに ASSUMEROLE 権限を付与すると、そのユーザーまたはグループは、コマンドの実行時にそのロールを引き受けることができるようになります。ASSUMEROLE 権限を使用することにより、必要に応じて適切なコマンドにアクセス許可を付与することができます。

Amazon Redshift コンソールを使用すると、以下の操作を実行できます。
+ [IAM ロールをデフォルトとして作成する](#create-iam)
+ [クラスターかのら IAM ロールの削除](#remove-iam)
+ [クラスターへの IAM ロールの関連付け](#associate-iam)
+ [IAM ロールをデフォルトとして設定する](#set-default-iam)
+ [クラスターでの IAM ロールのデフォルト解除](#clear-default-iam)

## AmazonRedshiftAllCommandsFullAccess 管理ポリシーによるアクセスの許可
<a name="default-iam-role-permissions"></a>

次に、クラスターのデフォルトとして設定された IAM ロールに特定のアクションを許可する、`AmazonRedshiftAllCommandsFullAccess` 管理ポリシーでのアクセス許可の例を示します。許可ポリシーがアタッチされた IAM ロールにより、ユーザーまたはグループで実行可能なことと不可能なことが制御されます。これらのアクセス許可が付与されることで、Amazon S3 からの COPY コマンドや、UNLOAD、CREATE MODEL コマンドの実行が可能になります。

```
{
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketAcl",
                "s3:GetBucketCors",
                "s3:GetEncryptionConfiguration",
                "s3:GetBucketLocation",
                "s3:ListBucket",
                "s3:ListAllMyBuckets",
                "s3:ListMultipartUploadParts",
                "s3:ListBucketMultipartUploads",
                "s3:PutObject",
                "s3:PutBucketAcl",
                "s3:PutBucketCors",
                "s3:DeleteObject",
                "s3:AbortMultipartUpload",
                "s3:CreateBucket"
            ],
            "Resource": [
                "arn:aws:s3:::redshift-downloads",
                "arn:aws:s3:::redshift-downloads/*",
                "arn:aws:s3:::*redshift*",
                "arn:aws:s3:::*redshift*/*"
            ]
}
```

次の例では、クラスターのデフォルトとして設定された IAM ロールのために特定のアクションを許可する、`AmazonRedshiftAllCommandsFullAccess` 管理ポリシーにより付与されるアクセス許可を表示します。許可ポリシーがアタッチされた IAM ロールにより、ユーザーまたはグループで実行可能なことと不可能なことが制御されます。次のアクセス許可が付与されている場合には、CREATE EXTERNAL FUNCTION コマンドを実行できます。

```
{
    "Action": [
        "lambda:InvokeFunction"
    ],
    "Resource": "arn:aws:lambda:*:*:function:*redshift*"
}
```

次の例では、クラスターのデフォルトとして設定された IAM ロールのために特定のアクションを許可する、`AmazonRedshiftAllCommandsFullAccess` 管理ポリシーにより付与されるアクセス許可を表示します。許可ポリシーがアタッチされた IAM ロールにより、ユーザーまたはグループで実行可能なことと不可能なことが制御されます。次のアクセス許可では、Amazon Redshift Spectrum に必要な、CREATE EXTERNAL SCHEMA コマンドおよび CREATE EXTERNAL コマンドを実行できます。

```
{
            "Effect": "Allow",
            "Action": [
                "glue:CreateDatabase",
                "glue:DeleteDatabase",
                "glue:GetDatabase",
                "glue:GetDatabases",
                "glue:UpdateDatabase",
                "glue:CreateTable",
                "glue:DeleteTable",
                "glue:BatchDeleteTable",
                "glue:UpdateTable",
                "glue:GetTable",
                "glue:GetTables",
                "glue:BatchCreatePartition",
                "glue:CreatePartition",
                "glue:DeletePartition",
                "glue:BatchDeletePartition",
                "glue:UpdatePartition",
                "glue:GetPartition",
                "glue:GetPartitions",
                "glue:BatchGetPartition"
            ],
            "Resource": [
                "arn:aws:glue:*:*:table/*redshift*/*",
                "arn:aws:glue:*:*:catalog",
                "arn:aws:glue:*:*:database/*redshift*"
            ]
}
```

次に、クラスターのデフォルトとして設定された IAM ロールに対する特定のアクションを許可する、`AmazonRedshiftAllCommandsFullAccess` 管理ポリシーでのアクセス許可の例を示します。許可ポリシーがアタッチされた IAM ロールにより、ユーザーまたはグループで実行可能なことと不可能なことが制御されます。次の権限が付与されている場合は、横串検索を使用する CREATE EXTERNAL SCHEMA コマンドを実行できます。

```
{
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetResourcePolicy",
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:ListSecretVersionIds"
            ],
            "Resource": [
                "arn:aws:secretsmanager:*:*:secret:*Redshift*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetRandomPassword",
                "secretsmanager:ListSecrets"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "secretsmanager:ResourceTag/Redshift": "true"
                }
            }
},
```

## コンソールを使用してクラスター用に作成された IAM ロールの管理
<a name="managing-iam-role-console"></a>

Amazon Redshift コンソールから IAM ロールを作成し、変更、および削除するには、コンソールの　**[Clusters]** (クラスター) セクションを使用します。

### IAM ロールをデフォルトとして作成する
<a name="create-iam"></a>

コンソールでは、`AmazonRedshiftAllCommandsFullAccess` ポリシーを自動的にアタッチしながら、クラスター用の IAM ロールを作成できます。作成した新しい IAM ロールにより、IAM アカウントの Amazon リソースからデータをコピー、ロード、クエリ、分析することが、Amazon Redshift に許可されます。

クラスターのデフォルトとしては、IAM ロールを 1 つだけ設定できます。既存の IAM ロールがデフォルトとして既に割り当てられている状態で、別の IAM ロールをクラスターのデフォルトとして作成すると、新しい IAM ロールがデフォルトとしてもう一方の IAM ロールを置き換えます。

**新しいクラスターと IAM ロールセットを新しいクラスターのデフォルトとして作成するには**

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

1. ナビゲーションメニューで **[クラスター]** を選択します。現在の AWS リージョン にあるアカウントのクラスターがリストされています。各クラスターのプロパティのサブセットが、リストの列に表示されます。

1. **[クラスターを作成]** を選択して、クラスターを作成します。

1. コンソールページの指示に従って **[クラスター設定]** のプロパティを入力します。この手順の詳細については、「[クラスターの作成](create-cluster.md)」を参照してください。

1. (オプション) **[Load sample data]** (サンプルデータをロード) をクリックし Amazon Redshift クラスターにサンプルのデータセットをロードして、データをクエリするためのクエリエディタの使用を開始します。

   ファイアウォールの内側にいる場合、データベースポートはインバウンド接続を受け入れる、開いているポートである必要があります。

1. コンソールページの指示に従って **[Database configurations]** (データベース設定) にプロパティを入力します。

1. **[Cluster permissions]** (クラスターのアクセス許可) で、**[Manage IAM roles]** (IAM ロールの管理) から **[Create IAM role]** (IAM ロールの作成) を選択します。

1. 以下のいずれかの方法を選択して、IAM ロールがアクセスする Amazon S3 バケットを指定します。
   + **[No additional Amazon S3 bucket]** (追加の Amazon S3 バケットはありません) を選択し、特定の Amazon S3 バケットを指定せずに IAM ロールを作成します。
   + Amazon Redshift クラスターへのアクセス権を持つユーザーが、AWS アカウント 内の任意の Amazon S3 バケットとそのコンテンツにもアクセスできるようにするには、**[Any Amazon S3 bucket]** (すべての Amazon S3 バケット) を選択します。
   + IAM ロールを作成中の (1 つ以上の) Amazon S3 バケットに、ユーザーがアクセスできるようにするには、**[Specific Amazon S3 buckets]** (特定の Amazon S3 バケット) を選択します。次に、テーブルから Amazon S3 バケットを 1 つ以上選択します。

1. **[Create IAM role as default]** (デフォルトとして IAM ロールを作成する) をクリックします。Amazon Redshift は、クラスター用に IAM ロールを自動的に作成し、デフォルトとして設定します。

1. **[クラスターを作成]** を選択して、クラスターを作成します。クラスターの使用準備ができるまで、数分かかることがあります。

### クラスターかのら IAM ロールの削除
<a name="remove-iam"></a>

クラスターからは、1 つ以上の IAM ロールを削除できます。

**クラスターから IAM ロールを削除するには**

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

1. ナビゲーションメニューで **[クラスター]** を選択します。現在の AWS リージョン にあるアカウントのクラスターがリストされています。各クラスターのプロパティのサブセットが、リストの列に表示されます。

1. IAM ロールを削除するクラスターを選択します。

1. **[Cluster permissions]** (クラスターのアクセス許可) で、クラスターから削除する 1 つ以上の IAM ロールを選択します。

1. **[Manage IAM roles]** (IAM ロールの管理) で、**[Remove IAM roles]** (IAM ロールを削除) をクリックします。

### クラスターへの IAM ロールの関連付け
<a name="associate-iam"></a>

クラスターには、1 つ以上の IAM ロールを関連付けることができます。

**IAM ロールをクラスターに関連付けるには**

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

1. ナビゲーションメニューで **[クラスター]** を選択します。現在の AWS リージョン にあるアカウントのクラスターがリストされています。各クラスターのプロパティのサブセットが、リストの列に表示されます。

1. IAM ロールを関連付けるクラスターを選択します。

1. **[Cluster permissions]** (クラスターのアクセス許可) で、クラスターに関連付ける IAM ロールを 1 つ以上選択します。

1. **[Manage IAM roles]** (IAM ロールの管理) で、**[Associate IAM roles]** (IAM ロールを関連付ける) を選択します。

1. クラスターに関連付ける IAM ロールを 1 つ以上選択します。

1. その後、**[Associate IAM roles]** (IAM ロールの関連付け) をクリックします。

### IAM ロールをデフォルトとして設定する
<a name="set-default-iam"></a>

IAM ロールをクラスターのデフォルトに設定することができます。

**IAM ロールをクラスターのデフォルトにするには**

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

1. ナビゲーションメニューで **[クラスター]** を選択します。現在の AWS リージョン にあるアカウントのクラスターがリストされています。各クラスターのプロパティのサブセットが、リストの列に表示されます。

1. IAM ロールをデフォルトに設定するクラスターを選択します。

1. **[Cluster permissions]** (クラスターのアクセス許可) にある **[Associated IAM roles]** (関連付けられた IAM ロール) から、クラスターのデフォルトとして設定する IAM ロールを選択します。

1. **[Set default]** (デフォルトの設定) で、**[Make default]** (デフォルトにする) をクリックします。

1. プロンプトが表示されたら、**[Set default]** (デフォルトに設定) をクリックして、指定した IAM ロールをデフォルトにすることを確認します。

### クラスターでの IAM ロールのデフォルト解除
<a name="clear-default-iam"></a>

クラスターのデフォルトとしての IAM ロールの使用を終了することができます。

**クラスターでの IAM ロールのデフォルト使用をクリアするには**

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

1. ナビゲーションメニューで **[クラスター]** を選択します。現在の AWS リージョン にあるアカウントのクラスターがリストされています。各クラスターのプロパティのサブセットが、リストの列に表示されます。

1. IAM ロールを関連付けるクラスターを選択します。

1. **[Cluster permissions]** (クラスターのアクセス許可) にある **[Associated IAM roles]** (関連付けられた IAM ロール) から、デフォルトの IAM ロールを選択します。

1. **[Set default]** (デフォルトの設定) で、**[Clear default]** (デフォルトをクリアする) をクリックします。

1. プロンプトが表示されたら、**[Clear default]** (デフォルトをクリア) をクリックして、指定された IAM ロールのデフォルト使用を解除することを確認します。

## クラスターで作成された IAM ロールの AWS CLI による管理
<a name="managing-iam-role-association-with-cluster-cli"></a>

クラスターで作成された IAM ロールを、AWS CLI を使用して管理することができます。

### IAM ロールをデフォルトとして設定しながら Amazon Redshift クラスターを作成するには
<a name="create-cluster-iam"></a>

IAM ロールをデフォルトとして設定しながら、Amazon Redshift クラスターを作成するには、AWS CLI の `aws redshift create-cluster` コマンドを使用します。

以下の AWS CLI コマンドは、Amazon Redshift クラスターと myrole1 という名前の IAM ロールを作成します。この AWS CLI コマンドでは、同時に myrole1 をクラスターのデフォルトとして設定します。

```
aws redshift create-cluster \
    --node-type dc2.large \
    --number-of-nodes 2 \
    --master-username adminuser \
    --master-user-password TopSecret1 \
    --cluster-identifier mycluster \
    --iam-roles 'arn:aws:iam::012345678910:role/myrole1' 'arn:aws:iam::012345678910:role/myrole2' \
    --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole1'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",      
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "adding"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "adding"
            }
        ]
        ...
    }
}
```

### Amazon Redshift クラスターに IAM ロールを 1 つ以上追加するには
<a name="modify-cluster-add-iam"></a>

クラスターに 1 つ以上の IAM ロールを追加し関連付けを行うには、AWS CLI の `aws redshift modify-cluster-iam-roles` コマンドを使用します。

以下の AWS CLI コマンドでは、クラスターに `myrole3` および `myrole4` が追加されます。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier mycluster \
    --add-iam-roles 'arn:aws:iam::012345678910:role/myrole3' 'arn:aws:iam::012345678910:role/myrole4'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3",
                "ApplyStatus": "adding"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole4",
                "ApplyStatus": "adding"
            }
        ],
        ...
    }
}
```

### Amazon Redshift クラスターから 1 つ以上の IAM ロールを削除するには
<a name="modify-cluster-remove-iam"></a>

クラスターに関連付けられた 1 つ以上の IAM ロールを削除するには、AWS CLI の `aws redshift modify-cluster-iam-roles` コマンドを使用します。

以下の AWS CLI コマンドにより、クラスターから `myrole3` および `myrole4` が削除されます。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier mycluster \
    --remove-iam-roles 'arn:aws:iam::012345678910:role/myrole3' 'arn:aws:iam::012345678910:role/myrole4'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3",
                "ApplyStatus": "removing"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole4",
                "ApplyStatus": "removing"
            }
        ],
        ...
    }
}
```

### 関連付けられた IAM ロールをクラスターのデフォルトとして設定するには
<a name="modify-cluster-default-iam-associated"></a>

関連付けられた IAM ロールをクラスターのデフォルトとして設定するには、AWS CLI の `aws redshift modify-cluster-iam-roles` コマンドを使用します。

以下の AWS CLI コマンドでは、`myrole2` がクラスターのデフォルトとして指定されます。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier mycluster \
    --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole2'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "in-sync"
            }
        ],
        ...
    }
}
```

### 関連付けられていない IAM ロールをクラスターのデフォルトに設定するには
<a name="modify-cluster-default-iam-not-associated"></a>

関連付けられていない IAM ロールをクラスターのデフォルトとして設定する場合は、AWS CLI の `aws redshift modify-cluster-iam-roles` コマンドを使用します。

以下の AWS CLI コマンドは、`myrole2` を Amazon Redshift クラスターに追加した上で、そのクラスターのデフォルトとして設定します。

```
aws redshift modify-cluster-iam-roles \
    --cluster-identifier mycluster \
    --add-iam-roles 'arn:aws:iam::012345678910:role/myrole3' \
    --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole3'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole3",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "in-sync"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole3",
                "ApplyStatus": "adding"
            }
        ],
        ...
    }
}
```

### スナップショットからクラスターを復元し、そこに IAM ロールをデフォルトとして設定するには
<a name="restore-cluster-iam"></a>

スナップショットからクラスターを復元する際、既存の IAM ロールを関連付けるか、新しい IAM ロールを作成しクラスターのデフォルトとして設定することができます。

スナップショットから復元した Amazon Redshift クラスターに、IAM ロールをデフォルトとして設定するには、AWS CLI の `aws redshift restore-from-cluster-snapshot` コマンドを使用します。

以下の AWS CLI コマンドは、スナップショットからクラスターを復元した上で、そのクラスターのデフォルトとして `myrole2` を設定します。

```
aws redshift restore-from-cluster-snapshot \
    --cluster-identifier mycluster-clone \
    --snapshot-identifier my-snapshot-id
    --iam-roles 'arn:aws:iam::012345678910:role/myrole1' 'arn:aws:iam::012345678910:role/myrole2' \
    --default-iam-role-arn 'arn:aws:iam::012345678910:role/myrole1'
```

以下のスニペットに、この応答例を示します。

```
{
    "Cluster": {
        "ClusterIdentifier": "mycluster-clone",
        "NodeType": "dc2.large",
        "MasterUsername": "adminuser",
        "DefaultIamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
        "IamRoles": [
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole1",
                "ApplyStatus": "adding"
            },
            {
                "IamRoleArn": "arn:aws:iam::012345678910:role/myrole2",
                "ApplyStatus": "adding"
            }
        ],
        ...
    }
}
```