

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

# AWS KMS 키링 업데이트
<a name="migrate-keyrings-v2"></a>

의 AWS KMS 키링[AWS Encryption SDK for C](c-language.md), [AWS Encryption SDK for .NET](dot-net.md) 및 [AWS Encryption SDK for JavaScript](javascript.md)는 암호화 및 복호화 시 래핑 키를 지정할 수 있는 [지원 모범 사례를](best-practices.md) 제공합니다. [AWS KMS 검색 키링](use-kms-keyring.md#kms-keyring-discovery)을 생성하는 경우 명시적으로 생성하세요.

**참고**  
 AWS Encryption SDK for .NET의 최신 버전은 버전 3.0.*x*입니다. AWS Encryption SDK for .NET의 모든 버전은의 2.0.*x*에 도입된 보안 모범 사례를 지원합니다 AWS Encryption SDK. 코드나 데이터를 변경하지 않고도 최신 버전으로 안전하게 업그레이드할 수 있습니다.

의 최신 1.*x* 버전으로 업데이트할 때 [검색 필터를](use-kms-keyring.md#kms-keyring-discovery) 사용하여 복호화할 때 [AWS KMS 검색 키링](use-kms-keyring.md#kms-keyring-discovery) 또는 [AWS KMS 리전 검색 키링](use-kms-keyring.md#kms-keyring-regional)이 사용하는 래핑 키를 특정 래핑 키로 제한할 AWS Encryption SDK수 있습니다 AWS 계정. 검색 키링을 필터링하는 것이 AWS Encryption SDK [모범 사례](best-practices.md)입니다.

이 섹션의 예제는 AWS KMS 리전별 검색 키링에 검색 필터를 추가하는 방법을 보여줍니다.

**마이그레이션에 대해 자세히 알아보기**

모든 AWS Encryption SDK 사용자에 대해에서 커밋 정책을 설정하는 방법에 대해 알아봅니다[커밋 정책 설정](migrate-commitment-policy.md).

 AWS Encryption SDK for Java AWS Encryption SDK for Python및 AWS 암호화 CLI 사용자의 경우에서 마스터 키 공급자에 필요한 업데이트에 대해 알아봅니다[AWS KMS 마스터 키 공급자 업데이트](migrate-mkps-v2.md).

 

애플리케이션에 다음과 같은 코드가 있을 수 있습니다. 이 예제에서는 미국 서부(오레곤)(us-west-2) 리전의 래핑 키만 사용할 수 있는 AWS KMS 리전 검색 키링을 생성합니다. 이 예제는 1.7.*x* 이전 AWS Encryption SDK 버전의 코드를 나타냅니다. 하지만 1.7.*x* 이상 버전에서도 여전히 유효합니다.

------
#### [ C ]

```
struct aws_cryptosdk_keyring *kms_regional_keyring = Aws::Cryptosdk::KmsKeyring::Builder()
       .WithKmsClient(create_kms_client(Aws::Region::US_WEST_2)).BuildDiscovery());
```

------
#### [ JavaScript Browser ]

```
const clientProvider = getClient(KMS, { credentials })

const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringBrowser({ clientProvider, discovery })
```

------
#### [ JavaScript Node.js ]

```
const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringNode({ clientProvider, discovery })
```

------

버전 1.7.*x*부터 모든 검색 키링에 AWS KMS 검색 필터를 추가할 수 있습니다. 이 검색 필터는가 복호화에 사용할 AWS Encryption SDK 수 AWS KMS keys 있는를 지정된 파티션 및 계정의 로 제한합니다. 이 코드를 사용하기 전에 필요한 경우 파티션을 변경하고 예제 계정 ID를 유효한 것으로 바꾸세요.

------
#### [ C ]

전체 예제는 [kms\$1discovery.cpp](https://github.com/aws/aws-encryption-sdk-c/blob/master/examples/kms_discovery.cpp)를 참조하세요.

```
std::shared_ptr<KmsKeyring::DiscoveryFilter> discovery_filter(
    KmsKeyring::DiscoveryFilter::Builder("aws")
        .AddAccount("111122223333")
        .AddAccount("444455556666")
        .Build());

struct aws_cryptosdk_keyring *kms_regional_keyring = Aws::Cryptosdk::KmsKeyring::Builder()
       .WithKmsClient(create_kms_client(Aws::Region::US_WEST_2)).BuildDiscovery(discovery_filter));
```

------
#### [ JavaScript Browser ]

```
const clientProvider = getClient(KMS, { credentials })

const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringBrowser(clientProvider, {
    discovery,
    discoveryFilter: { accountIDs: ['111122223333', '444455556666'], partition: 'aws' }
})
```

------
#### [ JavaScript Node.js ]

전체 예제는 [kms\$1filtered\$1discovery.ts](https://github.com/aws/aws-encryption-sdk-javascript/blob/master/modules/example-node/src/kms_filtered_discovery.ts)를 참조하세요.

```
const discovery = true
const clientProvider = limitRegions(['us-west-2'], getKmsClient)
const keyring = new KmsKeyringNode({
    clientProvider,
    discovery,
    discoveryFilter: { accountIDs: ['111122223333', '444455556666'], partition: 'aws' }
})
```

------