メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012年12月1日)

認証情報とアクセス権限

Amazon S3、Amazon DynamoDB、Amazon EMR、または Amazon EC2 など他の AWS リソースを使用してデータをロードまたはアンロードするには、クラスターがリソースにアクセスし、データにアクセスするのに必要なアクションを実行するアクセス権限が必要です。たとえば、Amazon S3 からデータをロードする場合、COPY はバケットへの LIST アクセスとバケットオブジェクトへの GET アクセスが必要です。

リソースにアクセスする許可を取得するには、クラスターが認証される必要があります。 ロールベースのアクセスコントロールまたはキーに基づくアクセスコントロールのいずれかを選択できます。このセクションは 2 つの方法の概要を示します。詳細と例については、他の AWS リソースにアクセスするアクセス権限 を参照してください。

ロールベースアクセスコントロール

ロールベースのアクセスコントロールを使用して、クラスターはユーザーに代わって一時的に、AWS Identity and Access Management (IAM) ロールを引き受けます。次に、ロールに付与された許可に基づいて、クラスターは必要な AWS のリソースにアクセスできます。

AWS 認証情報を保護することに加えて、AWS のリソースおよび機密ユーザーデータへのアクセスに対してより安全で、きめの細かいコントロールを提供するロールベースのアクセスコントロールを使用することをお勧めします。

ロールベースのアクセスコントロールを使用するには、Amazon Redshift サービスロールタイプを使用して IAM ロールを作成してから、クラスターにロールをアタッチする必要があります。ロールは、少なくとも COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可 に示されたアクセス権限が必要です。IAM ロールを作成し、それをクラスターにアタッチする手順については、Amazon Redshift Cluster Management Guide の「Creating an IAM Role to Allow Your Amazon Redshift Cluster to Access AWS Services」を参照してください。

クラスターにロールを追加するか、Amazon Redshift マネジメントコンソール、CLI、または API を使用してクラスターに関連付けられるロールを表示できます。詳細については、Amazon Redshift Cluster Management Guide の「Authorizing COPY and UNLOAD Operations Using IAM Roles」を参照してください。

IAM ロールを作成する場合、IAM はロールの Amazon リソースネーム (ARN) を返します。IAM ロールを使用して COPY コマンドを実行するには、IAM_ROLE パラメータまたは CREDENTIALS パラメータを使用してロールの ARN を提供します。

次の COPY コマンドの例では、ロール MyRedshiftRole を指定した IAM_ROLE パラメータを認証に使用します。

Copy
copy customer from 's3://mybucket/mydata' aws_iam_role 'arn:aws:iam::12345678901:role/MyRedshiftRole';

キーベースのアクセスコントロール

キーベースのアクセスコントロールを使用して、データが含まれている AWS リソースにアクセスする権限を付与された IAM ユーザーのアクセスキー ID とシークレットアクセスキーを提供します。 

注記

プレーンテキストのアクセスキー IDと シークレットアクセスキーを指定する代わりに、認証のために IAM ロールを使用することを強くお勧めします。キーベースのアクセスコントロールを選択する場合は、AWS アカウント (ルート) 認証情報を使用しないでください。常に IAM ユーザーを作成し、そのユーザーのアクセスキー ID とシークレットアクセスキーを指定します。IAM ユーザーを作成する手順については、AWS アカウント内での IAM ユーザーの作成を参照してください。

IAM ユーザー認証情報を使用して認証するには、次に示すように、承認されたユーザーのアクセスキー ID および完全なシークレットアクセスキーで、ACCESS_KEY_ID パラメータおよび SECRET_ACCESS_KEY パラメータの <access-key-id><secret-access-key> を置き換えます。

Copy
ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>';

AWS IAM ユーザーは、少なくとも COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可 に示されたアクセス権限が必要です。