DynamoDB 用 PartiQL における IAM セキュリティポリシー - Amazon DynamoDB

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" ] } ] }