認証パラメータ - Amazon Redshift

認証パラメータ

COPY コマンドが、他の AWS リソース (Amazon S3、Amazon EMR、Amazon DynamoDB、Amazon EC2 など) のデータにアクセスするにためには承認が必要です。この承認は、クラスターにアタッチされた AWS Identity and Access Management (IAM) ロール (ロールベースのアクセスコントロール) を参照することで提供できます。Amazon S3 のロードデータを暗号化できます。

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

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

IAM_ROLE { default | 'arn:aws:iam::<AWS アカウント-id>:role/<role-name>' }

デフォルトキーワードを使用して、COPY コマンドの実行時にデフォルトとして設定され、クラスターに関連付けられた IAM ロールの使用を、Amazon Redshift に指示します。

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

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

IAM_ROLE { default | 'arn:aws:iam::<AWS アカウント-id>:role/<role-name>' }

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

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

この認証方法は推奨されません。

注記

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

SESSION_TOKEN 'temporary-token'

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

注記

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

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

ACCESS_KEY_ID '<access-key-id>' SECRET_ACCESS_KEY '<secret-access-key>' SESSION_TOKEN '<temporary-token>';

SESSION_TOKEN を指定した場合、CREDENTIALS または IAM_ROLE は使用できません。

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

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

注記

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

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

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

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

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

注記

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

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

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

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

CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key>;token=<temporary-token>'

詳細については、「一時的な認証情報」を参照してください。

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

CREDENTIALS '<credentials-args>;master_symmetric_key=<root-key>'

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

copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::<account-id>:role/<role-name>;master_symmetric_key=<root-key>'

次の COPY コマンドでは、暗号化キーを使用したロールベースのアクセスコントロールを出力します。

copy customer from 's3://amzn-s3-demo-bucket/mydata' credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>;master_symmetric_key=<root-key>'