認証情報とアクセス許可
Amazon S3、Amazon DynamoDB、Amazon EMR、Amazon EC2 など、別の AWS リソースを Amazon Redshift で使用してデータをロードまたはアンロードするには、リソースにアクセスし、必要なアクションを実行してデータを利用するためのアクセス許可が必要です。例えば、Amazon S3 からデータをロードする場合、COPY はバケットへの LIST アクセスとバケットオブジェクトへの GET アクセスが必要です。
リソースへのアクセス認可を取得するには、Amazon Redshift の認証が必要です。ロールベースのアクセスコントロールまたはキーに基づくアクセスコントロールのいずれかを選択できます。このセクションは 2 つの方法の概要を示します。詳細と例については、他の AWS リソースにアクセスするアクセス許可 を参照してください。
ロールベースアクセスコントロール
ロールベースのアクセスコントロールを使用する場合、Amazon Redshift はユーザーに代わって AWS Identity and Access Management (IAM) ロールを一時的に引き受けます。次に、ロールに付与された許可に応じて、Amazon Redshift は必要な AWS リソースにアクセスできます。
ロールベースのアクセスコントロールの利用をお勧めします。これにより、AWS 認証情報が保護されるだけでなく、AWS のリソースと機密性のあるユーザーデータに対するアクセスがより安全になり、きめ細やかなコントロールが行われます。
ロールベースのアクセスコントロールを使用するには、まず Amazon Redshift サービスロールタイプを使用して IAM ロールを作成し、次にロールをデータウェアハウスにアタッチする必要があります。ロールは、少なくとも COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可 に示されたアクセス権限が必要です。IAM ロールを作成してクラスターにアタッチする手順については、「Amazon Redshift 管理ガイド」の「Amazon Redshift クラスターによって AWS のサービスへのアクセスを許可する IAM ロールを作成する」を参照してください。
クラスターにロールを追加するか、Amazon Redshift マネジメントコンソール、CLI、または API を使用してクラスターに関連付けられるロールを表示できます。詳細については、「Amazon Redshift 管理ガイド」の「IAM ロールを使用した COPY および UNLOAD オペレーションの認可」を参照してください。
IAM ロールを作成する場合、IAM はロールの Amazon リソースネーム (ARN) を返します。IAM ロールを使用して COPY コマンドを実行するには、IAM_ROLE パラメータまたは CREDENTIALS パラメータを介してロールの ARN を指定します。
次の COPY コマンドの例では、ロール MyRedshiftRole
を指定した IAM_ROLE パラメータを認証に使用します。
COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' IAM_ROLE 'arn:aws:iam::12345678901:role/MyRedshiftRole';
AWS ユーザーは、少なくとも COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可 に示されたアクセス許可が必要です。
キーベースのアクセスコントロール
キーベースのアクセスコントロールでは、データがある AWS リソースへのアクセスを許可されたユーザーのアクセスキー ID とシークレットアクセスキーを指定します。
注記
プレーンテキストのアクセスキー ID とシークレットアクセスキーを指定する代わりに、認証のために IAM ロールを使用することを強くお勧めします。キーベースのアクセスコントロールを選択する場合は、AWSアカウント (ルート) 認証情報を使用しないでください。常に IAM ユーザーを作成し、そのユーザーのアクセスキー ID とシークレットアクセスキーを指定します。IAM ユーザーを作成する手順については、「AWS アカウントでの IAM ユーザーの作成」を参照してください。