키 생성 - AWS Key Management Service

키 생성

AWS CloudFormation은 AWS KMS keys에서, 또는 CreateKey 작업이나 AWS Management Console 템플릿을 사용하여 생성할 수 있습니다. 이 프로세스 중에 KMS 키의 암호화 구성과 주요 구성 요소의 출처를 결정합니다. KMS 키가 생성된 후에는 이러한 속성을 변경할 수 없습니다. 또한 KMS 키에 대한 키 정책을 설정합니다. 이 정책은 언제든지 변경할 수 있습니다.

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

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

자세히 알아보기:

KMS 키를 생성하기 위한 사용 권한

콘솔에서 또는 API를 사용하여 KMS 키를 생성하려면 IAM 정책에서 다음 권한이 있어야 합니다. 가능하면 조건 키를 사용하여 사용 권한을 제한합니다. 키를 생성하는 보안 주체에 대한 IAM 정책의 예는 사용자가 KMS 키를 생성할 수 있도록 허용 단원을 참조하십시오.

참고

보안 주체에게 태그 및 별칭을 관리할 수 있는 권한을 부여하는 데 주의해야 합니다. 태그 또는 별칭을 변경하면 고객 관리 키에 대한 권한을 허용하거나 거부할 수 있습니다. 자세한 내용은 AWS KMS의 ABAC 단원을 참조하십시오.

kms:PutKeyPolicy 권한은 KMS 키를 만드는 데 필요하지 않습니다. kms:CreateKey 권한에는 초기 키 정책을 설정할 수 있는 권한이 포함됩니다. 그러나 KMS 키에 대한 액세스를 제어할 수 있도록 KMS 키를 만드는 동안 이 권한을 키 정책에 추가해야 합니다. 또 다른 방법은 BypassLockoutSafetyCheck 파라미터를 사용하는 것이지만, 이는 사용하지 않는 것이 좋습니다.

KMS 키는 해당 키가 생성된 AWS 계정에 속합니다. KMS 키를 생성하는 IAM 사용자는 키 소유자로 간주되지 않으며, 사용자가 생성한 KMS 키를 사용하거나 관리할 수 있는 권한이 자동으로 부여되지 않습니다. 다른 보안 주체와 마찬가지로 키 생성자는 키 정책, IAM 정책 또는 권한 부여를 통해 권한을 받아야 합니다. 그러나 kms:CreateKey 권한이 있는 보안 주체는 초기 키 정책을 설정하고 키를 사용하거나 관리할 권한을 자신에게 부여할 수 있습니다.

대칭 KMS 키 생성

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

대칭 KMS 키 만들기(콘솔)

AWS Management Console을 사용하여 AWS KMS keys(KMS 키)를 만들 수 있습니다.

  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. 대칭 KMS 키를 생성하려면 키 유형(Key type)대칭(Symmetric)을 선택합니다.

    AWS KMS 콘솔에서 비대칭 KMS 키를 생성하는 방법에 대한 자세한 내용은 비대칭 KMS 키 만들기(콘솔) 단원을 참조하십시오.

  6. 다음을 선택합니다.

  7. KMS 키의 별칭을 입력합니다. 별칭은 aws/로 시작할 수 없습니다. aws/ 접두사는 Amazon Web Services에서 계정에서 AWS 관리형 키를 나타내기 위해 예약한 것입니다.

    참고

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

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

    AWS Management Console에서 KMS 키를 생성할 때 별칭이 필요합니다. 이들은 CreateKey 작업을 사용할 때 선택 사항입니다.

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

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

  9. 다음을 선택합니다.

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

    참고

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

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

  11. 다음을 선택합니다.

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

    참고

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

  13. (선택 사항) 선택한 IAM 사용자와 역할이 페이지 하단의 키 삭제 섹션에서 이 KMS 키를 삭제하지 못하도록 하려면 키 관리자가 이 키를 삭제하도록 허용(Allow key administrators to delete this key) 확인란의 선택을 취소합니다.

  14. 다음을 선택합니다.

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

    참고

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

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

    참고

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

  17. 다음을 선택합니다.

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

  19. 마침(Finish)을 선택하여 KMS 키를 생성합니다.

대칭 KMS 키 만들기(AWS KMS API)

CreateKey 작업을 사용하여 새 대칭 AWS KMS keys를 생성할 수 있습니다. 이 예제들은 AWS Command Line Interface(AWS CLI)를 사용하지만, 사용자는 어떤 지원되는 프로그래밍 언어라도 사용할 수 있습니다.

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

CreateKey 작업을 사용하면 별칭을 지정할 수 없지만 CreateAlias 작업을 사용하여 새 KMS 키의 별칭을 만들 수 있습니다.

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

$ aws kms create-key { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeySpec": "SYMMETRIC_DEFAULT", "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", "MultiRegion": false "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ], } }

새 KMS 키에 대한 키 정책을 지정하지 않으면 CreateKey가 적용하는 기본 키 정책은 콘솔을 사용하여 새 KMS 키를 생성할 때 적용하는 기본 키 정책과 다릅니다.

예를 들어 이 GetKeyPolicy 작업 호출은 CreateKey가 적용하는 키 정책을 반환합니다. 이는 AWS 계정에게 KMS 키에 대한 액세스 권한을 부여하고 KMS 키에 대한 AWS Identity and Access Management(IAM) 정책을 생성하도록 허용합니다. IAM 정책 및 KMS 키의 키 정책에 대한 자세한 내용은 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 policies", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ] }