メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

認証パラメータ

COPY コマンドには、Amazon S3、Amazon EMR、Amazon DynamoDB、Amazon EC2 を含む別の AWS リソースのデータにアクセスするための承認が必要になります。クラスターにアタッチされた http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.htmlAWS Identity and Access Management (IAM) ロールを参照にして (ロールベースのアクセスコントロール)、または、IAM ユーザー用のアクセス認証情報を提供して (キーに基づくアクセスコントロール) アクセス権限を提供できます。 セキュリティと柔軟性を強化するために、IAM ロールベースのアクセスコントロールを使用することをお勧めします。 また、COPY では一時認証情報を使用してロードデータへのアクセスを制限できます。Amazon S3 にあるロードデータを暗号化することもできます。

以下のトピックでは、認証オプションの詳細と例をさらに示します。

以下のいずれかを使用して COPY コマンドに認証を提供します。

IAM_ROLE 'iam-role-arn'

クラスターが認証と認可に使用する IAM ロールの Amazon リソースネーム (ARN)。IAM_ROLE を指定すると、ACCESS_KEY_ID および SECRET_ACCESS_KEY、TOKEN、または CREDENTIALS は使用できません。

以下に、IAM_ROLE パラメータの構文を示します。

Copy
IAM_ROLE 'arn:aws:iam::<aws-account-id>:role/<role-name>'

詳細については、「ロールベースアクセスコントロール」を参照してください。

ACCESS_KEY_ID 'access-key-id ' SECRET_ACCESS_KEY 'secret-access-key'

データが含まれている AWS リソースにアクセスする権限を付与された IAM ユーザーのアクセスキー ID とシークレットアクセスキー。ACCESS_KEY_ID と SECRET_ACCESS_KEY は一緒に使用する必要があります。オプションで、一時的アクセス認証情報を提供し、TOKEN パラメータを指定できます。

いかに、ACCESS_KEY_ID および SECRET_ACCESS_KEY パラメータの構文を示します。

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

詳細については、「キーベースのアクセスコントロール」を参照してください。

ACCESS_KEY_ID と SECRET_ACCESS_KEY を指定すると、IAM_ROLE または CREDENTIALS は使用できません。

注記

アクセス認証情報をプレーンテキストで提供するのではなく、IAM_ROLE パラメータを指定してロールベースの認証を使用することを強くお勧めします。詳細については、「ロールベースアクセスコントロール」を参照してください。

TOKEN 'temporary-token'

一時的アクセス認証情報で使用するセッショントークン。TOKEN を指定した場合、ACCESS_KEY_ID と SECRET_ACCESS_KEY も使用して一時的アクセスキー認証情報を指定する必要があります。TOKEN を指定した場合、IAM_ROLE または CREDENTIALS は使用できません。詳細については、IAM ユーザーガイド の「一時的セキュリティ認証情報」を参照してください。

注記

一時的セキュリティ認証情報を作成するのではなく、ロールベースの認証を使用することを強くお勧めします。IAM ロールを使用して承認すると、Amazon Redshift が自動的に各セッション用の一時的ユーザー認証情報を作成します。詳細については、「ロールベースアクセスコントロール」を参照してください。

以下に、ACCESS_KEY_ID と SECRET_ACCESS_KEY パラメータを使用した TOKEN パラメータの構文を示します。

Copy
ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' TOKEN '<temporary-token>';
TOKEN を指定した場合、CREDENTIALS または IAM_ROLE は使用できません。

[WITH] CREDENTIALS [AS] 'credentials-args'

クラスターが、データファイルまたはマニフェストファイルを含む他の AWS リソースにアクセスするときに使用する方法を示す句です。CREDENTIALS パラメータは、IAM_ROLE または ACCESS_KEY_ID と SECRET_ACCESS_KEY との併用はできません。

注記

柔軟性を強化するために、CREDENTIALS パラメータの代わりに「IAM_ROLE」または「ACCESS_KEY_ID and SECRET_ACCESS_KEY」を使用することをお勧めします。

必要に応じて ENCRYPTED パラメータを使用する場合は、credentials-args 文字列が、暗号化キーを提供します。

credentials-args 文字列では大文字と小文字が区別され、空白を含めることはできません。

キーワード WITH および AS はオプションで、無視されます。

role-based access control または key-based access control のどちらかを指定できます。どちらの場合も、IAM ロールまたは IAM ユーザーは、特定の AWS リソースにアクセスするために必要なアクセス許可が必要です。 詳細については、「COPY、UNLOAD、CREATE LIBRARY のための IAM のアクセス許可」を参照してください。

注記

AWS 認証情報および機密データを保護するには、ロールベースのアクセスコントロールを使用することを強くお勧めします。

ロールベースのアクセスコントロールを指定するには、次の形式で credentials-args 文字列を指定します。

Copy
'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'

キーに基づくアクセスコントロールを指定するには、次の形式で credentials-args を指定します。

Copy
'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>'

一時トークン認証情報を使用するには、一時アクセスキー ID、一時秘密アクセスキー、および一時トークンを提供する必要があります。credentials-args 文字列は次の形式になります。

Copy
CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'
詳細については、「一時的セキュリティ認証情報」を参照してください。

ENCRYPTED パラメータを使用する場合、credentials-args 文字列は次の形式になります。ここで <master_key> はファイルの暗号化に使用されたマスターキーの値です。

Copy
CREDENTIALS '<credentials-args>;master_symmetric_key=<master-key>'

たとえば、次の COPY コマンドが、暗号化キーを含むロールベースのアクセスコントロールを使用するとします。

Copy
copy customer from 's3://mybucket/mydata' credentials 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<master-key>'

次の COPY コマンドは、暗号化キーを含むキーに基づくアクセスコントロールを示します。

Copy
copy customer from 's3://mybucket/mydata' credentials 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>;master_symmetric_key=<master-key>'