

# Amazon DynamoDB でのアイデンティティベースポリシーの使用
<a name="using-identity-based-policies"></a>

このトピックでは、Amazon DynamoDB でのアイデンティティベースの AWS Identity and Access Management (IAM) ポリシーの使用についての説明と、例を示します。これらの例は、アカウント管理者が IAM アイデンティティ (ユーザー、グループ、およびロール) に許可ポリシーをアタッチし、それによって Amazon DynamoDB リソースに対するオペレーションを実行するための許可を付与する方法を示しています。

このセクションでは、次のトピックを対象としています。
+ [Amazon DynamoDB コンソールの使用に必要な IAM 許可](#console-permissions)
+ [Amazon DynamoDB の AWS マネージド (事前定義) IAM ポリシー](#access-policy-examples-aws-managed)
+ [カスタマーマネージドポリシーの例](#access-policy-examples-for-sdk-cli)



以下は、アクセス権限ポリシーの例です。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeQueryScanBooksTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:Query",
                "dynamodb:Scan"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:{{111122223333}}:table/Books"
        }
    ]
}
```

------

 上記のポリシーには、`us-west-2` AWS リージョンのテーブルで 3 つの DynamoDB アクション (`dynamodb:DescribeTable`、`dynamodb:Query`、`dynamodb:Scan`) を許可する 1 つのステートメントがあります。これは、`{{account-id}}` で指定される AWS アカウントで所有されています。`Resource` 値の *Amazon リソースネーム (ARN)* では、アクセス許可が適用されるテーブルを指定します。

## Amazon DynamoDB コンソールの使用に必要な IAM 許可
<a name="console-permissions"></a>

ユーザーが DynamoDB コンソールを使用するには、AWS アカウントで DynamoDB リソースの使用を許可する最小限の許可セットが必要です。これらの DynamoDB 許可に加えて、コンソールでは次の許可が必要になります。
+ メトリクスとグラフを表示する Amazon CloudWatch 許可。
+ AWS Data PipelineDynamoDB データをエクスポートおよびインポートする アクセス許可。
+  AWS Identity and Access Managementエクスポートおよびインポートに必要なロールにアクセスする アクセス許可。
+ CloudWatch アラームがトリガーされるたびに通知する Amazon Simple Notification Service 許可。
+ AWS LambdaDynamoDB Streams レコードを処理するための 許可。

これらの最小限必要なアクセス権限よりも制限された IAM ポリシーを作成している場合、その IAM ポリシーを使用するユーザーに対してコンソールは意図したとおりには機能しません。[Amazon DynamoDB の AWS マネージド (事前定義) IAM ポリシー](#access-policy-examples-aws-managed) で説明されている通り、ユーザーが引き続き DynamoDB コンソールを使用できること、および `AmazonDynamoDBReadOnlyAccess`AWS マネージドポリシーがユーザーにアタッチされていることを確認してください。

AWS CLI または Amazon DynamoDB API のみを呼び出すユーザーには、最小限のコンソール許可を付与する必要はありません。

**注記**  
 VPC エンドポイントを参照する場合、IAM アクション (dynamodb:DescribeEndpoints) を使用して、リクエストしている IAM プリンシパルの DescribeEndpoints API コールを認可する必要もあります。詳細については、「[エンドポイントに必要なポリシー](inter-network-traffic-privacy.md#inter-network-traffic-DescribeEndpoints)」を参照してください。

## Amazon DynamoDB の AWS マネージド (事前定義) IAM ポリシー
<a name="access-policy-examples-aws-managed"></a>

AWS は、 によって作成され管理されるスタンドアロンの IAM ポリシーが提供する多くの一般的ユースケースに対応します。AWSこれらの AWS 管理ポリシーは、一般的ユースケースに必要なアクセス権限を付与することで、どの権限が必要なのかをユーザーが調査する必要をなくすことができます。詳細については、*IAM ユーザーガイド*の「[AWS 管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)」を参照してください。

アカウントのユーザーにアタッチ可能な以下の AWS マネージドポリシーは、DynamoDB 固有のもので、ユースケースシナリオ別にグループ化されます。
+ **AmazonDynamoDBReadOnlyAccess** – AWS マネジメントコンソール を介して DynamoDB リソース への読み込み専用アクセスを許可します。
+ **AmazonDynamoDBFullAccess** – AWS マネジメントコンソール を介して DynamoDB リソースへのフルアクセスを許可します。

IAM コンソールにサインインし、特定のポリシーを検索することで、これらの AWS マネージド許可ポリシーを確認できます。

**重要**  
ベストプラクティスは、ユーザー、ロール、またはそれらを必要とするグループに[最小特権](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege)を付与するカスタム IAM ポリシーを作成することです。

## カスタマーマネージドポリシーの例
<a name="access-policy-examples-for-sdk-cli"></a>

このセクションでは、さまざまな DynamoDB アクションの許可を付与するポリシー例を示しています。これらのポリシーは、AWS SDK または AWS CLI を使用しているときに機能します。コンソールを使用している場合は、コンソールに固有の追加許可を付与する必要があります。詳細については、「[Amazon DynamoDB コンソールの使用に必要な IAM 許可](#console-permissions)」を参照してください。

**注記**  
以下のすべてのポリシー例では、AWS リージョンの 1 つを使用しており、架空のアカウント ID とテーブル名が含まれています。

例:
+ [テーブル上のすべての DynamoDB アクションに許可を付与する IAM ポリシー](grant-permissions-to-any-action-on-table.md)
+ [DynamoDB テーブルの項目に読み込み専用許可を付与する IAM ポリシー](read-only-permissions-on-table-items.md)
+ [特定の DynamoDB テーブルとそのインデックスへのアクセスを付与する IAM ポリシー](iam-policy-specific-table-indexes.md)
+ [DynamoDB テーブルに対するアクセスの読み込み、書き込み、更新、削除を行う IAM ポリシー](iam-policy-example-data-crud.md)
+ [同じ AWS アカウントで DynamoDB 環境を分離する IAM ポリシー](iam-policy-separate-environments.md)
+ [DynamoDB リザーブドキャパシティの購入を防止する IAM ポリシー](iam-prevent-purchase-reserved-capacity.md)
+ [DynamoDB ストリームのみの読み込みアクセスを付与する IAM ポリシー (テーブルを除く)](iam-policy-read-stream-only.md)
+ [AWS Lambda 関数が DynamoDB ストリームレコードへのアクセスを許可する IAM ポリシー](iam-policy-example-lamda-process-dynamodb-streams.md)
+ [DynamoDB アクセラレーター (DAX) クラスターへの読み込みおよび書き込みアクセスに関する IAM ポリシー](iam-policy-example-read-write-dax-access.md)

 「*IAM ユーザーガイド*」には、[追加の DynamoDB 例が 3 つ](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html)含まれています。
+ [Amazon DynamoDB: 特定のテーブルへのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_specific-table.html)
+ [Amazon DynamoDB: 特定の列へのアクセスの許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_columns.html)
+ [Amazon DynamoDB: Amazon Cognito ID に基づいて DynamoDB への行レベルのアクセスを許可する](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_rows.html)