키 생성 - AWS Key Management Service

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

키 생성

생성할 수 있습니다.대칭 및 비대칭 고객 마스터 키AWS Management Console 사용 또는CreateKey작업을 사용합니다. 이 프로세스 중에 CMK의 암호화 구성과 주요 구성 요소의 출처를 결정합니다. CMK가 생성된 후에는 이러한 속성을 변경할 수 없습니다. 또한 CMK에 대한 키 정책을 설정합니다. 이 정책은 언제든지 변경할 수 있습니다.

AWS 서비스에 저장하거나 관리하는 데이터를 암호화하기 위해 CMK를 생성하는 경우에는 대칭 CMK를 생성합니다. AWS KMS와 통합되는 AWS 서비스대칭 CMK를 사용하여 데이터를 암호화합니다. 이러한 서비스는 비대칭 CMK를 사용한 암호화를 지원하지 않습니다. 생성할 CMK 유형을 결정하는 데 도움이 필요하면 CMK 구성을 선택하는 방법 단원을 참조하십시오.

AWS KMS 콘솔에서 CMK를 생성할 때는 별칭 (알기 쉬운 이름) 을 지정해야 합니다. CreateKey 작업은 새 CMK에 대한 별칭을 생성하지 않습니다. 새 CMK나 기존 CMK에 대한 별칭을 생성하려면CreateAlias작업을 사용합니다. AWS KMS 의 별칭에 대한 자세한 내용은 단원을 참조하십시오.별칭 사용를 선택합니다.

자세히 알아보기:

CMK 생성 권한

콘솔에서 또는 API를 사용하여 CMK를 생성하려면 IAM 정책에 대해 다음과 같은 권한이 있어야 합니다. 가능할 때마다조건 키을 클릭하여 사용 권한을 제한합니다. 키를 생성하는 보안 주체에 대한 IAM 정책 예는 단원을 참조하십시오.사용자가 CMK를 생성하도록 허용를 선택합니다.

참고

보안 주체에 태그와 별칭을 관리할 수 있는 권한을 부여할 때는 주의해야 합니다. 태그나 별칭을 변경하면 CMK에 대한 권한을 허용하거나 거부할 수 있습니다. 세부 정보는 AWS KMS 에 ABAC 사용 단원을 참조하십시오.

KMS:푸트키 정책권한은 CMK를 만드는 데 필요하지 않습니다. 이kms:CreateKey권한에는 초기 키 정책을 설정할 수 있는 권한이 포함됩니다. 그러나 CMK를 만드는 동안 CMK에 대한 액세스를 제어할 수 있도록 이 권한을 키 정책에 추가해야 합니다. 대안은우회 스럭아웃 안전 검사매개 변수를 사용하지 않는 것이 좋습니다.

대칭 CMK 생성

생성할 수 있습니다.대칭 CMKAWS Management Console 사용 또는 AWS KMS API를 사용하여 AWS Management Console 사용. 대칭 키 암호화는 동일한 키를 사용하여 데이터를 암호화하고 해독합니다.

AWS 관리 콘솔을 사용하여 고객 마스터 키 (CMK) 를 생성할 수 있습니다.

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/kms에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다.

  2. AWS 리전을 변경하려면 페이지의 오른쪽 상단에 있는 리전 선택기를 사용합니다.

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

  4. [Create key]를 선택합니다.

  5. 대칭 CMK를 생성하려면 키 유형Symmetric(대칭)을 선택합니다.

    AWS KMS 콘솔에서 비대칭 CMK를 생성하는 방법에 대한 자세한 내용은 단원을 참조하십시오.비대칭 CMK 생성 (콘솔)를 선택합니다.

  6. [Next]를 선택합니다.

  7. CMK의 별칭을 입력합니다. 별칭은 aws/로 시작할 수 없습니다. 이aws/해당 계정에서 AWS 관리형 CMK를 표현하기 위해 Amazon Web Services 가 예약합니다.

    참고

    별칭을 추가, 삭제 또는 업데이트하면 CMK에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 AWS KMS 에 ABAC 사용별칭을 사용하여 CMK에 대한 액세스 제어 단원을 참조하십시오.

    별칭은 CMK를 식별하는 데 사용할 수 있는 표시 이름입니다. 보호하고자 하는 데이터의 유형 또는 CMK와 함께 사용할 애플리케이션을 나타내는 별칭을 선택하는 것이 좋습니다.

    AWS 관리 콘솔에서 CMK를 생성할 때 별칭이 필요합니다. 이들은 CreateKey 작업을 사용할 때 선택 사항입니다.

  8. (선택 사항) CMK에 대한 설명을 입력합니다.

    보호하려는 데이터의 유형 또는 CMK와 함께 사용하려는 애플리케이션을 설명하는 내용을 입력합니다. 에 사용되는 설명 형식은 사용하지 마십시오.AWS 관리형 CMK를 선택합니다. 이다른 키가 정의되지 않은 경우 내... 을 보호하는 기본 마스터 키설명 형식은 AWS 관리형 CMK용으로 예약됩니다.

    키 상태Pending Deletion이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 CMK에 대한 설명을 추가, 변경 또는 삭제하려면설명을 편집합니다.AWS Management Console 사용 또는UpdateKeyDescription작업을 사용합니다.

  9. [Next]를 선택합니다.

  10. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. CMK에 두 개 이상의 태그를 추가하려면 [Add tag]를 선택합니다.

    참고

    CMK를 태깅하거나 태깅 해제하면 CMK에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 AWS KMS 에 ABAC 사용태그를 사용하여 CMK에 대한 액세스 제어 단원을 참조하십시오.

    AWS 리소스에 태그를 추가하면 AWS 사용 내역 및 비용을 태그별로 집계한 비용 할당 보고서를 만듭니다. 태그를 사용하여 CMK에 대한 액세스를 제어할 수도 있습니다. CMK 태그 지정에 대한 자세한 내용은 단원을 참조하십시오.키 태그 지정AWS KMS 에 ABAC 사용를 선택합니다.

  11. [Next]를 선택합니다.

  12. CMK를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.

    참고

    IAM 정책은 다른 IAM 사용자 및 역할에 CMK 관리 권한을 제공할 수 있습니다.

  13. (선택 사항) 선택한 IAM 사용자 및 역할이 이 CMK를 삭제하지 못하도록 하려면키 삭제페이지 맨 아래에 있는 섹션을 지우려면키 관리자가 이 키를 삭제하도록 허용확인란을 선택합니다.

  14. [Next]를 선택합니다.

  15. 에 대한 CMK를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.암호화 작업를 선택합니다.

    참고

    기본적으로 AWS 계정 (루트 사용자) 에게는 모든 권한이 있습니다. 따라서 IAM 정책은 사용자 및 역할에 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여할 수도 있습니다.

  16. (선택 사항) 다른 AWS 계정이 암호화 작업에서 이 CMK를 사용하도록 허용할 수 있습니다. 이렇게 하려면기타 AWS 계정섹션을 페이지 맨 아래에 있는AWS 계정 추가를 클릭하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.

    참고

    외부 계정의 보안 주체가 CMK를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 내용은 다른 계정의 사용자가 CMK를 사용하도록 허용 단원을 참조하세요.

  17. [Next]를 선택합니다.

  18. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

  19. [Finish]를 선택해 CMK를 생성합니다.

CreateKey 작업을 사용하여 새 대칭 고객 마스터 키(CMK)를 생성할 수 있습니다. 이 예제에서는AWS 명령줄 인터페이스(AWS CLI)를 지원하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

이 작업에는 필수 파라미터가 없습니다. 그러나 Policy 파라미터를 사용하여 키 정책을 지정할 수도 있습니다. 언제든 키 정책(PutKeyPolicy)을 변경하고 설명태그 등의 선택적 요소를 추가할 수 있습니다. 또한 가져온 키 구성 요소에 대한 CMK를 생성하거나 사용자 지정 키 스토어에서 CMK를 생성하는 경우 Origin 파라미터가 필요합니다.

CreateKey작업을 사용하면 별칭을 지정할 수 없지만CreateAlias작업을 사용하여 새 CMK에 대한 별칭을 만들 수 있습니다.

다음은 파라미터 없이 CreateKey 작업을 호출하는 예제입니다. 이 명령은 모든 기본값을 사용합니다. AWS KMS 에서 생성한 키 구성 요소를 사용하여 암호화 및 암호 해독을 위한 대칭 CMK를 생성합니다.

$ aws kms create-key { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1502910355.475, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

새 CMK에 대한 키 정책을 지정하지 않으면기본 키 정책CreateKey가 적용되는 기본 키 정책과는 달리 콘솔을 사용하여 새 CMK를 만들 때 적용되는 기본 키 정책과 다릅니다.

예를 들어 이 GetKeyPolicy 작업 호출은 CreateKey가 적용하는 키 정책을 반환합니다. AWS 계정은 CMK에 대한 액세스 권한을 부여하고, CMK에 대한 AWS Identity and Access Management (IAM) 정책을 생성할 수 있습니다. IAM 정책 및 CMK의 키 정책에 대한 자세한 내용은 단원을 참조하십시오.AWS KMS 에 대한 인증 및 액세스 제어

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text { "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }

비대칭 CMK 생성

생성할 수 있습니다.비대칭 CMKAWS Management Console 사용 또는 AWS KMS API를 사용하여 AWS Management Console 사용. 비대칭 CMK는 암호화 또는 서명에 사용할 수 있는 퍼블릭 및 프라이빗 키 페어를 나타냅니다. 프라이빗 키는 AWS KMS 내에 남아 있습니다. AWS KMS 외부에서 사용할 수 있는 퍼블릭 키를 다운로드하려면 단원을 참조하십시오.퍼블릭 키 다운로드를 선택합니다.

AWS 서비스에서 데이터를 암호화하기 위해 CMK를 생성할 때대칭 CMK를 생성합니다.를 선택합니다. AWS 서비스는 암호화에 비대칭 CMK를 지원하지 않습니다. 대칭 또는 비대칭 CMK 중 어느 유형을 생성할지에 결정하는 방법은 CMK 구성을 선택하는 방법을 참조하십시오.

AWS Management Console을 사용하여 비대칭 고객 마스터 키 (CMK) 를 생성할 수 있습니다. 각 비대칭 CMK는 퍼블릭 및 프라이빗 키 페어를 나타냅니다.

  1. AWS Management Console에 로그인하여 https://console.aws.amazon.com/kms에서 AWS Key Management Service(AWS KMS) 콘솔을 엽니다.

  2. AWS 리전을 변경하려면 페이지의 오른쪽 상단에 있는 리전 선택기를 사용합니다.

  3. 탐색 창에서 고객 관리형 키(Customer managed keys)를 선택합니다.

  4. [Create key]를 선택합니다.

  5. 비대칭 CMK를 생성하려면 키 유형에서 Asymmetric(비대칭)을 선택합니다.

    AWS KMS 콘솔에서 대칭 CMK를 생성하는 방법에 대한 자세한 내용은 단원을 참조하십시오.대칭 CMK 생성 (콘솔)를 선택합니다.

  6. 퍼블릭 키 암호화를 위한 비대칭 CMK를 생성하면 Key usage키 사용)에서 Encrypt and decrypt(암호화 및 암호 해독)를 선택합니다. 또는 메시지 서명 및 서명 확인을 위한 비대칭 CMK를 생성하려면 Key usage(키 사용)에서 Sign and verify(서명 및 확인)을 선택합니다.

    키 사용 값 선택에 대한 도움말은 키 사용 선택 단원을 참조하십시오.

  7. 비대칭 CMK에 대한 사양(Key spec(키 사양))을 선택합니다.

    선택하는 키 사양은 규정, 보안 또는 비즈니스 요구 사항에 따라 결정됩니다. 또한 암호화하거나 서명해야 하는 메시지의 크기에 영향을 받을 수 있습니다. 일반적으로 암호화 키가 길수록 무차별 대입 공격에 더 강합니다.

    키 사양 선택에 대한 도움말은 키 사양 선택 단원을 참조하십시오.

  8. [Next]를 선택합니다.

  9. 를 입력합니다.별칭CMK에 대한 정보를 입력합니다. 별칭은 aws/로 시작할 수 없습니다. 이aws/해당 계정에서 AWS 관리형 CMK를 표현하기 위해 Amazon Web Services 가 예약합니다.

    별칭콘솔과 일부 AWS KMS API에서 CMK를 식별하는 데 사용할 수 있는 표시 이름입니다. 보호하고자 하는 데이터의 유형 또는 CMK와 함께 사용할 애플리케이션을 나타내는 별칭을 선택하는 것이 좋습니다.

    AWS 관리 콘솔에서 CMK를 생성할 때 별칭이 필요합니다. 별칭을 지정할 수 없습니다.CreateKey작업을 수행할 수 있지만 콘솔 또는CreateAlias작업을 사용하여 기존 CMK에 대한 별칭을 만들 수 있습니다. 세부 정보는 별칭 사용 단원을 참조하십시오.

  10. (선택 사항) CMK에 대한 설명을 입력합니다.

    보호하려는 데이터의 유형 또는 CMK와 함께 사용하려는 애플리케이션을 설명하는 내용을 입력합니다. 에 사용되는 설명 형식은 사용하지 마십시오.AWS 관리형 CMK를 선택합니다. 이다른 키가 정의되지 않은 경우 내... 을 보호하는 기본 마스터 키설명 형식은 AWS 관리형 CMK용으로 예약됩니다.

    키 상태Pending Deletion이 아닌 한 지금 설명을 추가하거나 언제든지 설명을 업데이트할 수 있습니다. 기존 고객 관리형 CMK에 대한 설명을 추가, 변경 또는 삭제하려면설명을 편집합니다.AWS Management Console 사용 또는UpdateKeyDescription작업을 사용합니다.

  11. (선택 사항) 태그 키와 태그 값(선택)을 입력합니다. CMK에 두 개 이상의 태그를 추가하려면 [Add tag]를 선택합니다.

    AWS 리소스에 태그를 추가하면 AWS 사용 내역 및 비용을 태그별로 집계한 비용 할당 보고서를 만듭니다. 태그를 사용하여 CMK에 대한 액세스를 제어할 수도 있습니다. CMK 태그 지정에 대한 자세한 내용은 단원을 참조하십시오.키 태그 지정AWS KMS 에 ABAC 사용를 선택합니다.

  12. [Next]를 선택합니다.

  13. CMK를 관리할 수 있는 IAM 사용자 및 역할을 선택합니다.

    참고

    IAM 정책은 다른 IAM 사용자 및 역할에 CMK 관리 권한을 제공할 수 있습니다.

  14. (선택 사항) 선택한 IAM 사용자 및 역할이 이 CMK를 삭제하지 못하도록 하려면키 삭제페이지 맨 아래에 있는 섹션을 지우려면키 관리자가 이 키를 삭제하도록 허용확인란을 선택합니다.

  15. [Next]를 선택합니다.

  16. 에 대한 CMK를 사용할 수 있는 IAM 사용자 및 역할을 선택합니다.암호화 작업를 선택합니다.

    참고

    기본적으로 AWS 계정 (루트 사용자) 에게는 모든 권한이 있습니다. 따라서 IAM 정책은 사용자 및 역할에 암호화 작업에서 CMK를 사용할 수 있는 권한을 부여할 수도 있습니다.

  17. (선택 사항) 다른 AWS 계정이 암호화 작업에서 이 CMK를 사용하도록 허용할 수 있습니다. 이렇게 하려면기타 AWS 계정섹션을 페이지 맨 아래에 있는AWS 계정 추가를 클릭하고 외부 계정의 AWS 계정 식별 번호를 입력합니다. 외부 계정을 여러 개 추가하려면 이 단계를 반복합니다.

    참고

    외부 계정의 보안 주체가 CMK를 사용하도록 허용하려면 외부 계정 관리자가 이러한 권한을 제공하는 IAM 정책을 생성해야 합니다. 자세한 내용은 다른 계정의 사용자가 CMK를 사용하도록 허용 단원을 참조하세요.

  18. [Next]를 선택합니다.

  19. 선택한 키 설정을 검토합니다. 여전히 돌아가서 모든 설정을 변경할 수 있습니다.

  20. [Finish]를 선택해 CMK를 생성합니다.

CreateKey 작업을 사용하여 비대칭 고객 마스터 키(CMK)를 생성할 수 있습니다. 이 예제에서는AWS 명령줄 인터페이스(AWS CLI)를 지원하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

비대칭 CMK를 생성할 때 CustomerMasterKeySpec 파라미터를 지정해야 합니다. 이 파라미터는 생성할 키의 유형을 결정합니다. 또한 KeyUsage 값 ENCRYPT_DECRYPT 또는 SIGN_VERIFY를 지정해야 합니다. CMK가 생성된 후에는 이러한 속성을 변경할 수 없습니다.

CreateKey작업을 사용하면 별칭을 지정할 수 없지만CreateAlias작업을 사용하여 새 CMK에 대한 별칭을 만들 수 있습니다.

다음 예제에서는 CreateKey 작업을 사용하여 퍼블릭 키 암호화를 위해 설계된 4096비트 RSA 키의 비대칭 CMK를 생성합니다.

$ aws kms create-key --customer-master-key-spec RSA_4096 --key-usage ENCRYPT_DECRYPT { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "CustomerMasterKeySpec": "RSA_4096", "KeyManager": "CUSTOMER", "Description": "", "KeyUsage": "ENCRYPT_DECRYPT", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1569973196.214, "EncryptionAlgorithms": [ "RSAES_OAEP_SHA_1", "RSAES_OAEP_SHA_256" ], "AWSAccountId": "111122223333", "Origin": "AWS_KMS", "Enabled": true } }

다음 예제 명령은 서명 및 확인에 사용되는 ECDSA 키 페어를 나타내는 비대칭 CMK를 생성합니다. 암호화 및 암호 해독을 위한 타원 곡선 키 페어는 생성할 수 없습니다.

$ aws kms create-key --customer-master-key-spec ECC_NIST_P521 --key-usage SIGN_VERIFY { "KeyMetadata": { "KeyState": "Enabled", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "CreationDate": 1570824817.837, "Origin": "AWS_KMS", "SigningAlgorithms": [ "ECDSA_SHA_512" ], "Arn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "AWSAccountId": "111122223333", "CustomerMasterKeySpec": "ECC_NIST_P521", "KeyManager": "CUSTOMER", "Description": "", "Enabled": true, "KeyUsage": "SIGN_VERIFY" } }