

# IAM と CloudWatch Contributor Insights for DynamoDB の使用
<a name="Contributor_Insights_IAM"></a>

Amazon DynamoDB の Amazon CloudWatch Contributor Insights を初めて有効にすると、DynamoDB は AWS Identity and Access Management (IAM) サービスリンクロールを自動的に作成します。このロール (`AWSServiceRoleForDynamoDBCloudWatchContributorInsights`) により、DynamoDB がユーザーに代わって CloudWatch Contributor Insights ルールを管理できます。このサービスリンクロールは削除しないでください。ロールを削除してしまうと、テーブルまたはグローバルセカンダリインデックスを削除したときに、すべてのユーザー管理ルールがクリーンアップされなくなります。

サービスリンクロールの詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)」を参照してください。

以下のアクセス権限が必要です。
+ CloudWatch Contributor Insights for DynamoDB を有効または無効にするには、テーブルまたはインデックスに対する `dynamodb:UpdateContributorInsights` 許可が必要です。
+ DynamoDB グラフの CloudWatch Contributor Insights を表示するには、`cloudwatch:GetInsightRuleReport` の権限が必要です。
+ 特定の DynamoDB テーブルまたはインデックスに関して、DynamoDB の CloudWatch Contributor Insights を記述するには、`dynamodb:DescribeContributorInsights` 許可が必要です。
+ 各テーブルおよびグローバルセカンダリインデックスに関して、DynamoDB ステータスの CloudWatch Contributor Insights を一覧表示するには、`dynamodb:ListContributorInsights` の権限が必要です。

## 例: DynamoDB の CloudWatch Contributor Insights を有効または無効にする
<a name="access-policy-Contributor_Insights-example1"></a>

以下の IAM ポリシーは、DynamoDB の CloudWatch Contributor Insights を有効または無効にするための許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {"StringLike": {"iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"}}
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        }
    ]
}
```

------

 KMS キーで暗号化されたテーブルの場合、Contributor Insights を更新するには、ユーザーが kms:Decrypt アクセス許可を持っている必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iam:CreateServiceLinkedRole",
            "Resource": "arn:aws:iam::*:role/aws-service-role/contributorinsights.dynamodb.amazonaws.com/AWSServiceRoleForDynamoDBCloudWatchContributorInsights",
            "Condition": {
                "StringLike": {
                    "iam:AWSServiceName": "contributorinsights.dynamodb.amazonaws.com"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*"
        },
        {
            "Effect": "Allow",
            "Resource": "arn:aws:kms:*:*:key/*",
            "Action": [
                "kms:Decrypt"
            ]
        }
    ]
}
```

------

## 例: CloudWatch Contributor Insights のルールレポートを取得する
<a name="access-policy-Contributor_Insights-example2"></a>

以下の IAM ポリシーは、CloudWatch Contributor Insights のルールレポートを取得するための許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetInsightRuleReport"
            ],
            "Resource": "arn:aws:cloudwatch:*:*:insight-rule/DynamoDBContributorInsights*"
        }
    ]
}
```

------

## 例: リソースに基づいて DynamoDB の CloudWatch Contributor Insights の許可を選択的に適用する
<a name="access-policy-Contributor_Insights-example3"></a>

以下の IAM ポリシーは、`ListContributorInsights` と `DescribeContributorInsights` のアクションを許可するアクセス権限を付与し、特定のグローバルセカンダリインデックスに対する `UpdateContributorInsights` アクションを拒否します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:ListContributorInsights",
                "dynamodb:DescribeContributorInsights"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "dynamodb:UpdateContributorInsights"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/Author-index"
        }
    ]
}
```

------

## CloudWatch Contributor Insights for DynamoDB のサービスリンクロールの使用
<a name="contributorinsights-service-linked-roles"></a>

CloudWatch Contributor Insights for DynamoDB は、AWS Identity and Access Management (IAM) [サービスリンクロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)を使用します。サービスリンクロールは、CloudWatch Contributor Insights for DynamoDB に直接リンクされた一意のタイプの IAM ロールです。サービスリンクロールは、CloudWatch Contributor Insights for DynamoDB で事前定義され、ユーザーの代わりに該当サービスから他の AWS のサービスを呼び出すために必要なすべての許可が含まれされます。

サービスリンクロールを使用することで、必要なアクセス権限を手動で追加する必要がなくなるため、CloudWatch Contributor Insights for DynamoDB の設定が簡単になります。CloudWatch Contributor Insights for DynamoDB は、サービスリンクロールの許可を定義します。特に定義されている場合を除き、DynamoDB の CloudWatch Contributor Insights のみがそのロールを引き受けることができます。定義される許可は、信頼ポリシーと許可ポリシーに含まれており、その許可ポリシーを他の IAM エンティティにアタッチすることはできません。

サービスにリンクされたロールをサポートする他のサービスについては、「[IAM と連携する AWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照して、**[サービスにリンクされたロール]** 列が **[はい]** になっているサービスを見つけてください。サービスリンクロールに関するドキュメントをサービスで表示するには、**[Yes]** (はい) リンクを選択します。

### CloudWatch Contributor Insights for DynamoDB のサービスリンクロールの許可
<a name="slr-permissions"></a>

CloudWatch Contributor Insights for DynamoDB は、サービスリンクロール **AWSServiceRoleForDynamoDBCloudWatchContributorInsights** を使用します。サービスリンクロールの目的は、Amazon DynamoDB が DynamoDB テーブルおよびグローバルセカンダリインデックス用に作成された Amazon CloudWatch Contributor Insights ルールをユーザーに代わって管理できるようにすることです。

`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` サービスリンクロールは、ロールの引き受けについて以下のサービスを信頼します。
+ `contributorinsights.dynamodb.amazonaws.com `

このロールの許可ポリシーは、CloudWatch Contributor Insights for DynamoDB が指定されたリソースで以下のアクションを実行できるようにします。
+ アクション: `DynamoDBContributorInsights` での `Create and manage Insight Rules`

サービスにリンクされたロールの作成、編集、削除を IAM エンティティ (ユーザー、グループ、ロールなど) に許可するには、権限を設定する必要があります。詳細については、*IAM ユーザーガイド*の「[サービスにリンクされたロールのアクセス権限](https://docs.aws.amazon.com/IAM/latest/UserGuide/contributorinsights-service-linked-roles.html#service-linked-role-permissions)」を参照してください。

### CloudWatch Contributor Insights for DynamoDB のサービスリンクロールの作成
<a name="create-slr"></a>

サービスリンクロールを手動で作成する必要はありません。AWS マネジメントコンソール、AWS CLI、または AWS API でコントリビューターインサイトを有効にすると、CloudWatch Contributor Insights for DynamoDB によってサービスリンクロールが作成されます。

このサービスリンクロールを削除した後で再度作成する必要が生じた場合は、同じ方法でアカウントにロールを再作成できます。Contributor Insights を有効にすると、CloudWatch Contributor Insights for DynamoDB によって、サービスリンクロールが再度作成されます。

### CloudWatch Contributor Insights for DynamoDB のサービスリンクロールの編集
<a name="edit-slr"></a>

CloudWatch Contributor Insights for DynamoDB では、`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` サービスリンクロールを編集することはできません。サービスリンクロールを作成すると、多くのエンティティによってロールが参照される可能性があるため、ロール名を変更することはできません。ただし、IAM を使用してロールの説明を編集することはできます。詳細については、「*IAM ユーザーガイド*」の「[サービスリンクロールの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)」を参照してください。

### CloudWatch Contributor Insights for DynamoDB のサービスリンクロールの削除
<a name="delete-slr"></a>

`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` ロールを手動で削除する必要はありません。AWS マネジメントコンソール、AWS CLI、または AWS API で Contributor Insights を無効にすると、CloudWatch Contributor Insights for DynamoDB によってリソースがクリーンアップされます。

サービスリンクロールは、IAM コンソール、AWS CLI、または AWS API を使用して手動で削除することもできます。そのためにはまず、サービスリンクロールのリソースをクリーンアップする必要があります。その後で、手動で削除できます。

**注記**  
リソースを削除する際に、CloudWatch Contributor Insights for DynamoDB サービスでロールが使用されている場合、削除が失敗することがあります。失敗した場合は、数分待ってから再度オペレーションを実行してください。

**IAM を使用してサービスリンクロールを手動で削除するには**

IAM コンソール、AWS CLI、または AWS API を使用して、`AWSServiceRoleForDynamoDBCloudWatchContributorInsights` サービスリンクロールを削除します。詳細については、「*IAM ユーザーガイド*」の「[サービスにリンクされたロールの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)」を参照してください。