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

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:workgroup-name/user-name

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

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

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

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

    { "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 ロールを使用するアクセス許可を持つよう指定されます。

    { "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. 信頼ポリシーの更新を選択します。