IAM ロールへのアクセスの制限 - Amazon Redshift

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

IAM ロールへのアクセスの制限

デフォルトでは、Amazon Redshift クラスターに使用できる IAM ロールはそのクラスターですべてのユーザーが利用できます。特定のクラスターの特定の Amazon Redshift データベースユーザーまたは特定のリージョンに IAM ロールを制限することもできます。

IAM ロールの使用を特定のデータベースユーザーのみに許可するには、次の手順に従います。

IAM ロールへのアクセス権を持つ特定のデータベースユーザーを特定する
  1. Amazon Redshift クラスターでデータベースユーザーの Amazon リソースネーム (ARN) を特定します。データベースユーザーの ARN は形式: arn:aws:redshift:region:account-id:dbuser:cluster-name/user-nameになります。

    Amazon Redshift Serverless の場合は、次の ARN 形式を使用します。arn:aws:redshift:region:account-id:dbuser:serverless-account-id-workgroup-id/user-name

  2. IAM コンソールを開きます。

  3. ナビゲーションペインで [ロール] を選択します。

  4. 特定の Amazon Redshift データベースユーザーに制限する IAM ロールを選択します。

  5. 信頼関係 タブを選択し、 信頼関係の編集を選択します。ユーザーに代わって Amazon Redshift が他の AWS サービスにアクセスすることを許可する新しい IAM ロールには、次のような信頼関係があります。

    JSON
    { "Version": "2012-10-17" , "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  6. 指定した値に sts:AssumeRole フィールドを制限する信頼関係のセクションの sts:ExternalId アクションに条件を追加します。ロールへのアクセスを許可する各データベースユーザーの ARN を含めます。外部 ID には、任意の一意の文字列を指定できます。

    たとえば、次の信頼関係では、 user1 リージョンの user2 クラスターで my-clusterus-west-2 データベースユーザーのみがこの IAM ロールを使用するアクセス許可を持つよう指定されます。

    JSON
    { "Version": "2012-10-17" , "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": [ "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user1", "arn:aws:redshift:us-west-2:123456789012:dbuser:my-cluster/user2" ] } } }] }
  7. 信頼ポリシーの更新を選択します。