IAM 最小権限
カスタムIAM ポリシーを作成するよりも、定義済みのロールをサービスに使用することを推奨します。Amazon DynamoDB の事前定義されたロールは次のとおりです。
- AmazonDynamoDBReadOnlyAccess- AWS Management Console からDynamoDB リソースへの読み取り専用アクセスを許可します。
- AmazonDynamoDBFullAccess- AWS Management Console からDynamoDB リソースへのフルアクセスを許可します。
IAM ロール | 説明 | |
dynamodb:ListTables | DynamoDB テーブルのリストを取得するために必要です。メタデータの取得時に使用され、テーブルのリストを動的に決定します。このアクションはリソースレベルのアクセス許可をサポートしていないため、All resources を選択する必要があることに注意してください("Resource" の * はそのためです)。 言い換えると、dynamodb:ListTables アクションは* Resource を必要とし、他のアクションはすべてのテーブルarn:aws:dynamodb:us-east-1:987654321098:table/* または特定のテーブルのリストに対してアクセス許可を与えることができます。 "Resource": [ "arn:aws:dynamodb:us-east-1:987654321098:table/Customers", "arn:aws:dynamodb:us-east-1:987654321098:table/Orders" ] | |
dynamodb:DescribeTable | 選択したテーブルのメタデータを取得するために必要です。テーブルのメタデータの取得時に使用され、カラムのリストを動的に決定します。このアクションはリソースレベルのアクセス許可をサポートしているため、メタデータを取得したいテーブルを指定できます。たとえば、リージョンがNorthern Virginia でus-east-1、アカウントが987654321098 のCustomers およびOrders のテーブルの場合:
{ "Effect": "Allow", "Action": [ "dynamodb:DescribeTable" ], "Resource": [ "arn:aws:dynamodb:us-east-1:987654321098:table/Customers", "arn:aws:dynamodb:us-east-1:987654321098:table/Orders" ] } 接続プロパティAWSRegion で指定したリージョンのすべてのテーブルにアクセス許可を与えるには、テーブル名の代わりに * を使用します: "Resource": "arn:aws:dynamodb:us-east-1:987654321098:table/*" | |
dynamodb:Scan | テーブルのすべての項目にアクセスして1つ以上の項目を取得するために必要です。たとえば、SELECT * FROM [Customers] のように、ほとんどのSELECT クエリに使用されます。このアクションはリソースレベルのアクセス許可をサポートしているため、dynamodb:DescribeTable と同様に、データを取得したいテーブルを指定できます。 | |
dynamodb:PartiQLSelect | SELECT クエリを使用して主キーカラムでフィルタリングする際に、テーブルから特定の項目を取得するために必要です。たとえば、SELECT * FROM [Customers] WHERE id=1234 です。このアクションはリソースレベルのアクセス許可をサポートしているため、dynamodb:DescribeTable と同様に、データを取得したいテーブルを指定できます。 | |
dynamodb:PartiQLInsert | テーブルにデータを挿入するために必要です。このアクションはリソースレベルのアクセス許可をサポートしているため、dynamodb:DescribeTable と同様に、データを挿入したいテーブルを指定できます。 | |
dynamodb:PartiQLUpdate | テーブルのデータを変更するために必要です。このアクションはリソースレベルのアクセス許可をサポートしているため、dynamodb:DescribeTable と同様に、データを変更したいテーブルを指定できます。 | |
dynamodb:PartiQLDelete | テーブルからデータを削除するために必要です。このアクションはリソースレベルのアクセス許可をサポートしているため、dynamodb:DescribeTable と同様に、データを削除したいテーブルを指定できます。 | |
dynamodb:CreateTable | テーブルの作成に必要です。このアクションはリソースレベルのアクセス許可をサポートしているため、作成できるテーブル名を指定できます。 |