

# 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) 또는 [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 Management Console
<a name="rbac-attach-policy-stream-console"></a>

1. AWS Management Console에 로그인하고 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. **정책 생성**을 선택합니다.

다음 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"
      ]
    }
  ]
}
```

------