IAM ロールを使用した COPY、UNLOAD、CREATE EXTERNAL FUNCTION、および CREATE EXTERNAL SCHEMA オペレーションの承認 - Amazon Redshift

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

IAM ロールを使用した COPY、UNLOAD、CREATE EXTERNAL FUNCTION、および CREATE EXTERNAL SCHEMA オペレーションの承認

COPY コマンドを使用してデータを Amazon Redshift にロード (またはインポート) および UNLOAD コマンドを使用してデータを Amazon Redshift. からアンロード (またはエクスポート) できます。CREATE EXTERAL FUNCTION コマンドを使用して、 から関数を呼び出すユーザー定義関数を作成できますAWS Lambda。

Amazon Redshift Spectrum を使用する場合は、CREATE EXTERNAL SCHEMA コマンドを使用して、データを含む Amazon S3 バケットの場所を指定します。COPY、UNLOAD、または CREATE EXTERNAL SCHEMA コマンドを実行するときは、セキュリティ認証情報を指定します。これらの資格証明により、Amazon Redshift バケットなどのターゲット宛先との間でデータを読み書きする権限が Amazon S3 クラスタに付与されます。

CREATE EXTERNAL FUNCTION を実行するときは、IAM ロールパラメータを使用してセキュリティ認証情報を指定します。これらの認証情報は、 から Amazon Redshift 関数を呼び出すことをLambdaクラスターに許可AWS Lambdaします。セキュリティ認証情報を提供するには、 AWS Identity and Access Management (IAM) ロールを指定することをお勧めします。COPY と UNLOAD には、AWS アクセスキーを指定することもできます。IAM ロールの作成の詳細については、「」を参照してください。ユーザーに代わって Amazon Redshift が他の AWS サービスにアクセスすることを許可する.

IAM ロールを使用する手順は次のとおりです。

  • Amazon Redshift クラスターで使用する IAM ロールを作成します。

  • IAM ロールをクラスターに関連付けます。

  • COPY、UNLOAD、または CREATE EXTERNAL SCHEMA コマンドを呼び出す場合、IAM ロールの ARN を含めます。

このトピックでは、IAM ロールを Amazon Redshift クラスターに関連付ける方法について説明します。

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

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

IAM ロールをクラスターに関連付けるために必要なアクセス許可

IAM ロールをクラスターに関連付けるには、IAM ユーザーは、その IAM ロールの iam:PassRole アクセス許可が必要です。このアクセス許可により、ユーザーが IAM ロールを Amazon Redshift クラスターに関連付けることを管理者が制限できます。

次の例は、ユーザーがアクションを実行することを許可する IAM ユーザーにアタッチできる IAM ポリシーを示します。

  • そのユーザーアカウントによって所有されるすべての Amazon Redshift クラスターの詳細を取得します。

  • 3 つの IAM ロールのいずれかを 2 つの Amazon Redshift クラスターのいずれかに関連付けます。

{ "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 ユーザーが適切なアクセス許可を取得したら、そのユーザーは IAM ロールを Amazon Redshift クラスターに関連付けることができます。これで、IAM ロールは COPY や UNLOAD などの Amazon Redshift コマンドで使用できるようになります。

IAM ポリシーの詳細については、IAM ユーザーガイドの「IAM ポリシーの概要」を参照してください

クラスターに関連付けられる IAM ロールの管理

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

以下の点に注意してください。

  • 最大 10 の IAM ロールを Amazon Redshift クラスターに関連付けることができます。

  • IAM ロールは複数の Amazon Redshift クラスターと関連付けることができます。

  • IAM ロールとクラスターの両方が同じ AWS アカウントによって所有されている場合にのみ、IAM ロールを Amazon Redshift クラスターに関連付けることができます。

IAM ロールの関連付けを管理するコンソールの使用

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

注記

Amazon Redshift 用の新しいコンソールが利用可能です。使用しているコンソールに基づき、[新しいコンソール] または [元のコンソール] の手順を選択します。新しいコンソールの手順はデフォルトで開いています。

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

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

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

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

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

  5. [完了] を選択して変更を保存します。

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

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

  2. ナビゲーションペインで [Clusters.] を選択します。

  3. リストで、IAM ロールの関連付けを管理するクラスターを選択します。

  4. See IAM Roles (IAM ロールの参照).] を選択します。

  5. IAM ロールをクラスターに関連付けるには、[使用可能なロール.] リストから IAM ロールを選択します。リストに表示されない場合は (IAM ロールがまだ作成されていない場合など)、手動で IAM ロールを入力することもできます。

  6. IAM ロールとクラスターの関連付けを解除するには、関連付けを解除する IAM ロールの [X] を選択します。

  7. クラスターの IAM ロールの関連付けの変更が完了したら、[変更の適用] を選択して、クラスターに関連付けられている IAM ロールを更新します。

[Manage IAM Roles (IAM ロールの管理)] パネルには、クラスター IAM ロールの関連付けのステータスが表示されます。クラスターに関連付けられたロールは、 のステータスを示しますin-sync。 クラスターに関連付けられている処理中のロールは、 のステータスを示しますadding。 クラスターから関連付けが解除されているロールは、 のステータスを示しますremoving

AWS CLI を使用して IAM ロールの関連付けを管理する

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

を使用して IAM ロールをクラスターに関連付けるAWS CLI

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

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

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

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

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

次の例では、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 ロールの関連付けを解除するAWS CLI

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

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

aws redshift modify-cluster-iam-roles \ --cluster-identifier "my-redshift-cluster" \ --remove-iam-roles "arn:aws:iam::123456789012:role/RedshiftCopyUnload"
を使用してクラスターの IAM ロールの関連付けをリスト化するAWS CLI

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

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

{ "Clusters": [ { "ClusterIdentifier": "my-redshift-cluster", "NodeType": "dc1.large", "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": "dc1.large", "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 Command Line Interface ユーザーガイド. を参照してください。