

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 사용자 생성 KMS 키 사용 권한
<a name="permissions-user-key-KMS"></a>

사용자 생성 KMS 키로 서버 측 암호화를 사용하려면 먼저 스트림 암호화와 스트림 레코드 암호화 및 복호화를 허용하도록 AWS KMS 키 정책을 구성해야 합니다. AWS KMS 권한에 대한 예제와 자세한 내용은 [AWS KMS API 권한: 작업 및 리소스 참조를 참조하세요](https://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html).

**참고**  
암호화에 기본 서비스 키를 사용할 때는 사용자 지정 IAM 권한을 적용할 필요가 없습니다.

사용자 생성 KMS 마스터 키를 사용하려면 먼저 Kinesis 스트림 생산자 및 소비자(IAM 보안 주체)가 KMS 마스터 키 정책에 속한 사용자여야 합니다. 그렇지 않으면 스트림에서 읽기 및 쓰기가 실패하여 궁극적으로 데이터 손실, 처리 지연 또는 애플리케이션 중단이 발생할 수 있습니다. IAM 정책을 사용하여 KMS 키 권한을 관리할 수 있습니다. 자세한 내용은 [AWS KMS에서 IAM 정책 사용을](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) 참조하세요.

## Kinesis Data Streams 암호화 컨텍스트
<a name="sse-kms-encryption-context"></a>

Amazon Kinesis Data Streams가 AWS KMS 사용자를 대신하여를 호출하면 키 정책 및 권한 부여의 권한 부여 조건으로 사용할 수 AWS KMS 있는 암호화 컨텍스트를에 전달합니다. Kinesis Data Streams는 모든 AWS KMS 호출에서 스트림 ARN을 암호화 컨텍스트로 사용합니다.

```
"encryptionContext": {
    "aws:kinesis:arn": "arn:aws:kinesis:{{region}}:{{account-id}}:stream/{{stream-name}}"
}
```

암호화 컨텍스트를 사용하여 감사 레코드 및 로그에서 KMS 키의 사용을 식별할 수 있습니다. 와 같은 로그의 일반 텍스트로도 표시됩니다 AWS CloudTrail.

KMS 키 사용을 특정 스트림에 대한 Kinesis Data Streams의 요청으로 제한하려면 KMS 키 정책 또는 IAM 정책의 `kms:EncryptionContext:aws:kinesis:arn` 조건 키를 사용합니다.

## 예제 생산자 권한
<a name="example-producer-permissions"></a>

Kinesis 스트림 생산자에 `kms:GenerateDataKey` 권한이 있어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:GenerateDataKey"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:PutRecord",
            "kinesis:PutRecords"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

## 예제 소비자 권한
<a name="example-consumer-permissions"></a>

Kinesis 스트림 소비자에 `kms:Decrypt` 권한이 있어야 합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    {
        "Effect": "Allow",
        "Action": [
            "kinesis:GetRecords",
            "kinesis:DescribeStream"
        ],
        "Resource": "arn:aws:kinesis:*:123456789012:MyStream"
    }
  ]
}
```

------

Amazon Managed Service for Apache Flink 및는 역할을 AWS Lambda 사용하여 Kinesis 스트림을 사용합니다. 이 소비자가 사용하는 역할에 `kms:Decrypt` 권한을 추가해야 합니다.

## 스트림 관리자 권한
<a name="stream-administrator-permissions"></a>

Kinesis 스트림 관리자는 `kms:List*` 및 ```kms:DescribeKey*`를 직접적으로 호출할 수 있는 권한 부여가 필요합니다.