DynamoDB 用 PartiQL における IAM セキュリティポリシー
以下のアクセス権限が必要です。
-
DynamoDB 用の PartiQL を使用して項目を読み込むには、
dynamodb:PartiQLSelect
アクセス許可を、テーブルまたはインデックスに付与します。 -
DynamoDB 用の PartiQL を使用して項目を挿入するには、
dynamodb:PartiQLInsert
アクセス許可をテーブルまたはインデックスに付与します。 -
DynamoDB 用の PartiQL を使用して項目を更新するには、
dynamodb:PartiQLUpdate
アクセス許可をテーブルまたはインデックスに付与します。 -
DynamoDB 用の PartiQL を使用して項目を削除するには、
dynamodb:PartiQLDelete
アクセス許可をテーブルまたはインデックスに付与します。
例: テーブルに対して、すべての DynamoDB 用の PartiQL ステートメントを許可する (選択、挿入、更新、削除)
次の IAM ポリシーは、すべての DynamoDB 用の PartiQL ステートメントをテーブルに対して実行するための、アクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }
例: テーブルに対して、DynamoDB 用の PartiQL 選択ステートメントを許可する
次の IAM ポリシーは、特定のテーブルに対して select
ステートメントを実行するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }
例: インデックスに対して、DynamoDB 用の PartiQL 挿入ステートメントを許可する
次の IAM ポリシーは、特定のインデックスに対して insert
ステートメントを実行するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music/index/index1" ] } ] }
例: テーブルに対して、DynamoDB 用の PartiQL トランザクションステートメントを許可する
次の IAM ポリシーは、特定のテーブルに対してトランザクションステートメントだけを実行するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ], "Condition":{ "StringEquals":{ "dynamodb:EnclosingOperation":[ "ExecuteTransaction" ] } } } ] }
例: テーブルに対して、DynamoDB 用の PartiQL 非トランザクションの読み込み/書き込みステートメントを許可し、PartiQL 読み込み/書き込みトランザクションをブロックします。
次の IAM ポリシーは、DynamoDB 用の PartiQL トランザクション読み込み/書き込みをブロックしている間に、DynamoDB 用の PartiQL 非トランザクションの読み込み/書き込みを実行するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ], "Condition":{ "StringEquals":{ "dynamodb:EnclosingOperation":[ "ExecuteTransaction" ] } } }, { "Effect":"Allow", "Action":[ "dynamodb:PartiQLInsert", "dynamodb:PartiQLUpdate", "dynamodb:PartiQLDelete", "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/Music" ] } ] }
例: DynamoDB 用の PartiQL で ステートメントの選択を許可し、テーブル全体のスキャンを行うステートメントを拒否する
次の IAM ポリシーは、テーブル全体のスキャンを行う select
ステートメントをブロックしている間に、特定のテーブルに対して select
ステートメントを実行するためのアクセス許可を付与します。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Deny", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList" ], "Condition":{ "Bool":{ "dynamodb:FullTableScan":[ "true" ] } } }, { "Effect":"Allow", "Action":[ "dynamodb:PartiQLSelect" ], "Resource":[ "arn:aws:dynamodb:us-west-2:123456789012:table/WatchList" ] } ] }