IAM ロールへのアクセスの制限
デフォルトでは、Amazon Redshift クラスターに使用できる IAM ロールはそのクラスターですべてのユーザーが利用できます。特定のクラスターの特定の Amazon Redshift データベースユーザーまたは特定のリージョンに IAM ロールを制限することもできます。
IAM ロールの使用を特定のデータベースユーザーのみに許可するには、次の手順に従います。
IAM ロールへのアクセス権を持つ特定のデータベースユーザーを特定する
-
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
-
IAM コンソール
を開きます。 -
ナビゲーションペインで [ロール] を選択します。
-
特定の Amazon Redshift データベースユーザーに制限する IAM ロールを選択します。
-
信頼関係 タブを選択し、 信頼関係の編集を選択します。ユーザーに代わって Amazon Redshift が他の AWS サービスにアクセスすることを許可する新しい IAM ロールには、次のような信頼関係があります。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
指定した値に
sts:AssumeRole
フィールドを制限する信頼関係のセクションのsts:ExternalId
アクションに条件を追加します。ロールへのアクセスを許可する各データベースユーザーの ARN を含めます。外部 ID には、任意の一意の文字列を指定できます。たとえば、次の信頼関係では、
user1
リージョンのuser2
クラスターでmy-cluster
とus-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" ] } } }] }
-
信頼ポリシーの更新を選択します。