データ共有 API 操作へのアクセスを制御するには、IAM アクションベースのポリシーを使用します。IAM ポリシーの管理方法については、IAM ユーザーガイド の IAM ポリシーの管理を参照してください。
データ共有 API オペレーションを使用するために必要な許可については、「Amazon Redshift 管理ガイド」の「データ共有 API オペレーションを使用するために必要な許可」を参照してください。
クロスアカウントデータ共有をより安全にするためには、API オペレーションの AuthorizeDataShare
および DeauthorizeDataShare
で条件付きキー ConsumerIdentifier
が使用できます。これを利用することで、どの AWS アカウント が 2 つの API オペレーションを呼び出すことができるのかを明示的に制御できます。
自身のアカウント以外のコンシューマーに対して、データ共有の承認を拒否したり承認を解除したりできます。これを行うには、IAM ポリシー内で AWS アカウント の数を指定します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Deny",
"Action": [
"redshift:AuthorizeDataShare",
"redshift:DeauthorizeDataShare"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"redshift:ConsumerIdentifier": "555555555555"
}
}
}
]
}
DataShareArn testshare2
でプロデューサーを許可して、IAM ポリシーの AWS アカウント番号が 111122223333 のコンシューマーと明示的に共有することができます。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"redshift:AuthorizeDataShare",
"redshift:DeauthorizeDataShare"
],
"Resource": "arn:aws:redshift:us-east-1:666666666666:datashare:af06285e-8a45-4ee9-b598-648c218c8ff1/testshare2",
"Condition": {
"StringEquals": {
"redshift:ConsumerIdentifier": "111122223333"
}
}
}
]
}