認可パラメータ - Amazon Redshift

Amazon Redshift は、2025 年 11 月 1 日以降、新しい Python UDF の作成をサポートしなくなります。Python UDF を使用する場合は、その日付より前に UDF を作成してください。既存の Python UDF は引き続き通常どおり機能します。詳細については、ブログ記事を参照してください。

認可パラメータ

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

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

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

IAM_ROLE パラメータの使用

IAM_ROLE

デフォルトキーワードを使用して、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 および SECRET_ACCESS_KEY パラメータの使用

ACCESS_KEY_ID、SECRET_ACCESS_KEY

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

注記

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

SESSION_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 は使用できません。

CREDENTIALS パラメータの使用

CREDENTIALS

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

次に示すのは CREDENTIALS パラメータの構文です。

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

柔軟性を強化するために、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>'

一時的な認証情報でロールベースのアクセスコントロールを使用する COPY コマンドは、次のサンプルステートメントのようになります。

COPY customer FROM 's3://amzn-s3-demo-bucket/mydata' CREDENTIALS 'aws_access_key_id=<temporary-access-key-id>;aws_secret_access_key=<temporary-secret-access-key-id>;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>'