

# リソースベースのポリシーを DynamoDB ストリームにアタッチする
<a name="rbac-attach-resource-policy-streams"></a>

DynamoDB コンソール、[PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html) API、AWS CLI、AWS SDK、または [CloudFormation テンプレート](rbac-create-table.md#rbac-create-table-cfn)を使用して、リソースベースのポリシーを既存のテーブルのストリームにアタッチしたり、既存のポリシーを変更したりできます。

**注記**  
[CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) API や [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html) API で作成中のストリームには、ポリシーをアタッチできません。ただし、テーブルの削除後にポリシーを変更または削除することはできます。また、無効になっているストリームのポリシーは変更または削除できます。



## AWS CLI
<a name="rbac-attach-policy-stream-CLI"></a>

次の IAM ポリシーの例では、`put-resource-policy` AWS CLI コマンドを使用して、*MusicCollection* という名前のテーブルのストリームにリソースベースのポリシーをアタッチしています。この例では、ユーザー *John* に対して、該当ストリームで [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)、[GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)、[DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html) の API アクションを実行することを許可しています。

*イタリック体*のテキストを、リソース固有の情報に必ず置き換えてください。

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492 \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetRecords\",
                        \"dynamodb:GetShardIterator\",
                        \"dynamodb:DescribeStream\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492\"
                }
            ]
        }"
```

## AWS マネジメントコンソール
<a name="rbac-attach-policy-stream-console"></a>

1. AWS マネジメントコンソール にサインインして DynamoDB コンソール ([https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)) を開きます。

1. DynamoDB コンソールのダッシュボードで **[テーブル]** を選択し、既存のテーブルを選択します。

   ストリームが有効になっているテーブルを選択してください。テーブルのストリームを有効にする方法については、「[ストリームの有効化](Streams.md#Streams.Enabling)」を参照してください。

1. **[アクセス許可]** タブを選択します。

1. **[アクティブストリームについてのリソースベースのポリシー]** で、**[ストリームポリシーを作成]** を選択します。

1. **[リソースベースのポリシー]** エディターで、ストリームに対するアクセス許可を定義するポリシーを追加します。このポリシーでは、ストリームにアクセスできるユーザーと、ストリームに対して実行できるアクションを指定します。ポリシーを追加するには、以下のいずれかを実行します。
   + JSON ポリシードキュメントを入力するか貼り付けます。IAM ポリシー言語の詳細については、「IAM ユーザーガイド**」の「[JSON エディターを使用したポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)」を参照してください。
**ヒント**  
「Amazon DynamoDB デベロッパーガイド」のリソースベースのポリシーの例を確認するには、**[ポリシーの例]** を選択してください。
   + **[新しいステートメントを追加]** を選択して新しいステートメントを追加し、提示されたフィールドに情報を入力します。このステップを、追加するステートメントの数だけ繰り返します。
**重要**  
セキュリティ警告、エラー、提案がある場合は、ポリシーを保存する前に解決してください。

1. (オプション) 新しいポリシーがリソースへのパブリックアクセスおよびクロスアカウントアクセスにどのように影響するかをプレビューするには、**[外部アクセスをプレビュー]** を選択します。ポリシーを保存する前に、新しい IAM Access Analyzer の結果が導入されているかどうかや、既存の結果を解決するかどうかを確認できます。アクティブなアナライザーが表示されない場合は、**[Access Analyzer へ移動]** を選択し、[[IAM Access Analyzer]](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) でアカウントアナライザーを作成します。詳細については、「[アクセスのプレビュー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html)」を参照してください。

1. [**Create policy**] (ポリシーの作成) を選択します。

次の IAM ポリシーの例では、*MusicCollection* という名前のテーブルのストリームにリソースベースのポリシーをアタッチします。この例では、ユーザー *John* に対して、該当ストリームで [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)、[GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)、[DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html) の API アクションを実行することを許可しています。

*イタリック体*のテキストを、リソース固有の情報に必ず置き換えてください。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/username"
      },
      "Action": [
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator",
        "dynamodb:DescribeStream"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492"
      ]
    }
  ]
}
```

------