AWS KMS 키링 업데이트 - AWS Encryption SDK

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

AWS KMS 키링 업데이트

AWS Encryption SDK for C, AWS Encryption SDK for .NETAWS Encryption SDK for JavaScript의 AWS KMS 키링은 암호화 및 복호화 시 래핑 키를 지정하도록 허용해 모범 사례를 지원합니다. AWS KMS 검색 키링을 생성하는 경우 명시적으로 생성하세요.

참고

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

AWS Encryption SDK의 최신 1.x 버전으로 업데이트 하는 경우 검색 필터를 사용하여 AWS KMS 검색 키링 또는 AWS KMS 리전 검색 키링이 특정 AWS 계정에서 복호화할 때 사용하는 래핑 키를 제한할 수 있습니다. 검색 키링을 필터링하는 것이 AWS Encryption SDK의 모범 사례입니다.

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

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

모든 AWS Encryption SDK 사용자가 커밋 정책 설정에서 커밋 정책을 설정하는 방법을 알아보는 것이 좋습니다.

AWS Encryption SDK for Java, AWS Encryption SDK for Python, AWS Encryption CLI 사용자의 경우 AWS KMS 마스터 키 제공자 업데이트의 마스터 키 공급자에 필요한 업데이트에 대해 알아보세요.

 

애플리케이션에 다음과 같은 코드가 있을 수 있습니다. 이 예제에서는 미국 서부(오레곤)(us-west-2) 리전의 래핑 키만 사용할 수 있는 AWS KMS 리전 검색 키링을 생성합니다. 이 예제는 AWS Encryption SDK 1.7.x보다 이하 버전의 코드를 나타냅니다. 하지만 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_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_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' } })