Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

IAM 許可の設定

フォーカスモード
IAM 許可の設定 - Amazon Redshift

Amazon Redshift は、AmazonRedshiftDataFullAccessマネージドポリシーを提供します。このポリシーは、Amazon Redshift Data API オペレーションへのフルアクセスを提供します。このポリシーでは、Amazon Redshift クラスターまたは Redshift Serverless ワークグループの認証とアクセスに必要な特定の Amazon Redshift、AWS Secrets Manager、IAM API オペレーションへのスコープ付きアクセスも許可されます。

特定のリソースへのアクセスを許可する独自の IAM ポリシーを作成することもできます。ポリシーを作成するには、AmazonRedshiftDataFullAccessポリシーを開始テンプレートとして使用します。作成したポリシーは、Data API にアクセスする必要がある各ユーザーに追加します。

ユーザーに関連付けられた IAM ポリシーの以下の要件を考慮してください。

  • AWS Secrets Manager を使用して認証する場合、ポリシーでは secretsmanager:GetSecretValue アクションの使用が許可され、キー RedshiftDataFullAccess でタグ付けされたシークレットを取得できることを確認します。

  • 一時的な認証情報を使用してクラスターに対して認証する場合、ポリシーでは、クラスター内の任意のデータベースのデータベースユーザー名 redshift_data_api_user に対する redshift:GetClusterCredentials アクションの使用が許可されることを確認します。このユーザー名は、データベースにすでに作成されている必要があります。

  • 一時的な認証情報を使用してサーバーレスワークグループへの認証を行う場合は、ポリシーで redshift-serverless:GetCredentials キーでタグ付けされたワークグループを取得するための RedshiftDataFullAccess アクションの使用が許可されていることを確認します。データベースユーザーが、ソース AWS Identity and Access Management (IAM) ID に対して 1:1 にマップされています。例えば、ユーザー sample_user はデータベースユーザー IAM:sample_user にマップされ、IAM ロール sample_role は IAMR:sample_role にマップされます。IAM ID の詳細については、「IAM ユーザーガイド」の「IAM ID (ユーザー、ユーザーグループ、ロール)」を参照してください。

  • IAM アクション redshift-data:GetStatementResult は、GetStatementResult および GetStatementResultV2 API オペレーションの両方へのアクセスを許可します。

次のリンクから、IAM ユーザーガイドで AWS Identity and Access Management についての詳細情報をご覧いただけます。

別のアカウントが所有するクラスターでクエリを実行する

別のアカウントが所有するクラスターでクエリを実行するには、呼び出すアカウントで Data API がロールを引き受けることができる IAM ロールを所有アカウントより提供してもらう必要があります。例えば、アカウント A がアクセスする必要のあるクラスターを、アカウント B が所有しているとします。アカウント B は、AWS マネージドポリシーの AmazonRedshiftDataFullAccess をアカウント B の IAM ロールにアタッチできます。次に、アカウント B は、次のような信頼ポリシーを使用してアカウント A を信頼します:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::accountID-of-account-A:role/someRoleA" ] }, "Action": "sts:AssumeRole" } ] }

最後に、アカウント A の IAM ロールでアカウント B の IAM ロールを引き受けることができなければなりません。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::accountID-of-account-B:role/someRoleB" } }

AWS アカウント 内のリソースを Amazon Redshift Serverless ワークグループおよび Amazon Redshift クラスターに制限する IAM ロールを指定します。

アイデンティティベースのポリシーでリソース ARN を指定して、AWS アカウントの Redshift Serverless ワークグループと Amazon Redshift クラスターへのアクセスを制御できます。この例では、指定した AWS アカウントのワークグループとクラスターのみに対して Data API へのアクセスを許可するポリシーを作成する方法を示します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "*" }, { "Effect": "Allow", "Action": "redshift-data:*", "Resource": [ "arn:arn-partition:redshift-serverless:*:AWS アカウント:workgroup/*", "arn:arn-partition:redshift:*:AWS アカウント:cluster:*" ] } ] }

SQL ステートメント情報へのアクセスをステートメント所有者のみに制限する IAM ポリシーを設定する

デフォルトでは、Amazon Redshift Data API は、ExecuteStatement および BatchExecuteStatement を呼び出すときに使用される IAM ロールを SQL ステートメントの所有者として扱います。ロールを引き受けることが許可されているユーザーは、結果を含む SQL ステートメントに関する情報にアクセスできます。特定の所有者との IAM ロールセッションへの SQL ステートメント情報アクセスを制限するには、条件 redshift-data:statement-owner-iam-userid: "${aws:userid}" を追加します。次の IAM ポリシーは、アクセスを制限します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:CancelStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "*", "Condition": { "StringEquals": { "redshift-data:statement-owner-iam-userid": "${aws:userid}" } } } ] }

statement-owner-iam-userid 条件は CancelStatementDescribeStatementGetStatementResult、および ListStatements で使用することができます。詳細については、「Amazon Redshift Data API で定義されるアクション」を参照してください。

SQL 結果へのアクセスをセッション所有者のみに制限する IAM ポリシーを設定する

デフォルトでは、Amazon Redshift Data API は、ExecuteStatementBatchExecuteStatement を呼び出すときに使用される IAM ロールを、SQL ステートメントを実行するデータベースセッションの所有者として扱います。ロールを引き受けることが許可されているユーザーは、データベースセッションにクエリを送信できます。特定の所有者との IAM ロールセッションへのセッションアクセスを制限するには、条件 redshift-data:session-owner-iam-userid: "${aws:userid}" を追加します。次の IAM ポリシーは、アクセスを制限します。

次の IAM ポリシーでは、セッション所有者のみがステートメントの結果を取得できます。条件 session-owner-iam-userid は、指定された userid へのリソースアクセスを制限するために使用されます。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:BatchExecuteStatement" ], "Resource": "*", "Condition": { "StringEquals": { "redshift-data:session-owner-iam-userid": "${aws:userid}" } } } ] }

ExecuteStatement および BatchExecuteStatementsession-owner-iam-userid 条件を使用することができます。詳細については、「Amazon Redshift Data API で定義されるアクション」を参照してください。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.