AWS KMS keys
자체 암호화 애플리케이션에서 사용하기 위해 생성하고 관리하는 KMS 키는 고객 관리형 키라고 하는 유형입니다. 고객 관리형 키는 KMS 키를 사용해 서비스에서 사용자를 대신하여 저장하는 데이터를 암호화하는 AWS 서비스와 함께 사용할 수도 있습니다. 고객 관리형 키는 해당 키의 수명 주기와 사용을 완전히 제어하려는 고객에게 권장됩니다. 계정에 고객 관리형 키를 보유하는 데는 월별 비용이 발생합니다. 또한 요청 사용 및/또는 키 관리에는 사용 비용이 발생합니다. 자세한 내용은 AWS Key Management Service 요금
고객이 AWS 서비스에서 데이터를 암호화하기를 원하지만 키 관리 오버헤드를 원하지 않고 키 비용을 지불하고 싶지 않은 경우가 있습니다. AWS 관리형 키는 계정에 존재하지만 특정 상황에서만 사용할 수 있는 KMS 키입니다. 특히 운영 중인 AWS 서비스의 컨텍스트에서만 사용할 수 있으며 키가 있는 계정 내의 위탁자만 이 키를 사용할 수 있습니다. 이러한 키의 수명 주기 또는 권한은 관리할 수 없습니다. AWS 서비스에서 암호화 기능을 사용하면 AWS 관리형 키가 표시될 수 있습니다. 이 키는 ‘aws<service code>’ 형식의 별칭을 사용합니다. 예를 들어 aws/ebs 키는 EBS 볼륨을 암호화하는 데만 사용할 수 있으며 키와 동일한 계정의 IAM 위탁자가 사용하는 볼륨에만 사용할 수 있습니다. 계정의 사용자만 계정의 리소스에 사용할 수 있도록 범위가 축소된 AWS 관리형 키를 생각해 보세요. AWS 관리형 키는 암호화된 리소스를 다른 계정과 공유할 수 없습니다. AWS 관리형 키는 계정에 무료로 존재하지만 키에 할당된 AWS 서비스에서 이 키 유형을 사용하는 경우 요금이 부과됩니다.
AWS 관리형 키는 2021년부터 새로운 AWS 서비스에 대해 더 이상 생성되지 않는 레거시 키 유형입니다. 대신 새로운(및 레거시) AWS 서비스는 기본적으로 AWS 소유 키라고 하는 키를 사용하여 고객 데이터를 암호화합니다. AWS 소유 키는 AWS 서비스에서 관리하는 계정에 있는 KMS 키이므로 서비스 운영자는 수명 주기 및 사용 권한을 관리할 수 있습니다. AWS 소유 키를 사용하면 AWS 서비스가 데이터를 원활하게 암호화하고 키 권한에 대해 걱정할 필요 없이 크로스 계정 또는 크로스 리전 간 데이터 공유를 용이하게 할 수 있습니다. 더 쉽고, 더 자동화된 데이터 보호를 제공하는 기본 암호화 워크로드에 AWS 소유 키를 사용합니다. 이러한 키는 AWS에서 소유 및 관리하므로 해당 키의 존재 또는 사용에 대한 요금이 부과되지 않으며, 정책을 변경할 수 없고, 이러한 키에 대한 활동을 감사할 수 없으며, 삭제할 수 없습니다. 제어가 중요한 경우 고객 관리형 키를 사용하고 편의성이 가장 중요한 경우 AWS 소유 키를 사용합니다.
| 고객 관리형 키 | AWS 관리형 키 | AWS 소유 키 | |
| 키 정책 | 고객이 독점적으로 제어 | 서비스에서 제어, 고객이 볼 수 있음 | 데이터를 암호화하는 AWS 서비스에서만 독점적으로 제어되고 볼 수 있음 |
| 로깅 | CloudTrail 고객 추적 또는 이벤트 데이터 저장소 | CloudTrail 고객 추적 또는 이벤트 데이터 저장소 | 고객이 볼 수 없음 |
| 수명 주기 관리 | 고객이 교체, 삭제 및 리전 위치 관리 | AWS KMS에서 교체(연간), 삭제 및 리전 위치 관리 | AWS 서비스에서 교체, 삭제 및 리전 위치 관리 |
| 요금. |
키 존재에 대한 월별 요금(시간당 비례 배분 기준). 키 사용에 대해서도 요금이 부과됨 |
월별 수수료는 없지만 호출자에게 이러한 키의 API 사용에 대한 요금이 부과됨 | 고객에게 부과되는 요금 없음 |
사용자가 생성하는 KMS 키는 고객 관리형 키입니다. KMS 키를 사용하여 서비스 리소스를 암호화하는 AWS 서비스는 종종 사용자를 위해 키를 만듭니다. AWS 서비스가 AWS 계정에서 생성하는 KMS 키는 AWS 관리형 키입니다. AWS 서비스가 서비스 계정에서 생성하는 KMS 키는 AWS 소유 키입니다.
AWS KMS에 통합된 AWS 서비스는 KMS 키 지원에 있어 차이가 있습니다. 일부 AWS 서비스는 AWS 소유 키 또는 AWS 관리형 키를 사용하여 기본적으로 데이터를 암호화합니다. 일부 AWS 서비스는 고객 관리형 키를 지원합니다. 다른 AWS 서비스는 AWS 소유 키의 용이성, AWS 관리형 키의 가시성, 고객 관리형 키의 제어 기능을 제공할 수 있도록 모든 유형의 KMS 키를 지원합니다. AWS 서비스에서 제공하는 암호화 옵션에 대한 자세한 내용은 해당 서비스 사용 설명서 또는 개발자 안내서의 저장된 데이터 암호화 주제를 참조하세요.
고객 관리형 키
사용자가 생성하는 KMS 키는 고객 관리형 키입니다. 고객 관리형 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 KMS 키입니다. 사용자는 키 정책, IAM 정책 및 권한 부여의 설정 및 유지 관리, 활성화 및 비활성화, 암호화 구성 요소 교체, 태그 추가, KMS 키를 가리키는 별칭 생성, KMS 키 삭제 예약 등을 포함해 이러한 KMS 키에 대한 완전한 제어 권한을 가집니다.
고객 관리형 키는 AWS KMS에 대한 AWS Management 콘솔의 고객 관리형 키 페이지에 나타납니다. 고객 관리형 키를 명확하게 식별하려면 DescribeKey 작업을 사용합니다. 고객 관리형 키에서는 DescribeKey 응답의 KeyManager 필드 값이 CUSTOMER입니다.
암호화 작업에서 사용자 관리형 키를 사용하고 AWS CloudTrail 로그에서 사용을 감사할 수 있습니다. 뿐만 아니라 AWS KMS에 통합된 다양한 AWS 서비스 덕분에 사용자를 위해 저장 및 관리하는 데이터를 보호하도록 고객 관리형 키를 지정할 수 있습니다.
고객 관리형 키는 매달 요금이 발생하며, 프리 티어를 초과해서 사용한 만큼 요금이 부과됩니다. 계정의 AWS KMS 할당량에 대해 요금이 계산됩니다. 자세한 내용은 AWS Key Management Service 요금
AWS 관리형 키
AWS 관리형 키는 AWS KMS와 통합된 AWS 서비스
일부 AWS 서비스는 해당 서비스에서 리소스를 보호하기 위한 AWS 관리형 키 또는 고객 관리형 키를 선택할 수 있도록 지원합니다. 일반적으로 리소스를 보호하는 암호화 키를 제어할 필요가 없을 경우, AWS 관리형 키를 선택하는 것이 좋습니다. 키 또는 키 정책을 만들거나 유지할 필요가 없으며 AWS 관리형 키에 대한 월 요금도 없습니다.
계정에서 AWS 관리형 키를 확인하고, 키 정책을 확인하고, AWS CloudTrail 로그에서 사용을 감사할 권한이 있습니다. 하지만 AWS 관리형 키의 속성을 변경하거나, 교체하거나, 키 정책을 변경하거나 삭제를 예약할 수 없습니다. 그리고 암호화 작업에서 직접 AWS 관리형 키를 사용할 수 없습니다. 즉, 이러한 키를 생성하는 서비스는 사용자를 대신해 이들을 사용합니다.
조직의 리소스 제어 정책은 AWS 관리형 키에 적용되지 않습니다.
AWS 관리형 키는 AWS Management 콘솔에서 AWS KMS에 대한 AWS 관리형 키 페이지에 나타납니다. 또한 AWS 관리형 키은 aws/ 형식(예: service-nameaws/redshift)을 갖는 별칭으로 식별할 수도 있습니다. AWS 관리형 키를 명확하게 식별하려면 DescribeKey 작업을 사용합니다. AWS 관리형 키에서는 DescribeKey 응답의 KeyManager 필드 값이 AWS입니다.
모든 AWS 관리형 키는 매년 자동으로 교체됩니다. 이 교체 일정은 변경할 수 없습니다.
참고
2022년 5월, AWS KMS는 AWS 관리형 키에 대한 교체 일정을 3년(약 1,095일)에서 매년(약 365일)으로 변경했습니다.
AWS 관리형 키에 대한 월 요금은 없습니다. 프리 티어를 초과하는 사용에 대해서 요금이 부과될 수 있으며, 일부 AWS 서비스는 이러한 요금을 사용자 대신 부담합니다. 자세한 내용은 서비스에 대한 사용 설명서 또는 개발자 안내서의 저장 시 암호화 주제를 참조하세요. 자세한 내용은 AWS Key Management Service 요금
AWS 관리형 키는 계정의 리전별 KMS 키 수에 대한 리소스 할당량에 포함되지 않습니다. 그러나 계정의 보안 주체 대신 사용되는 KMS 키는 요청 할당량에 포함됩니다. 자세한 내용은 할당량 섹션을 참조하세요.
AWS 소유 키
AWS 소유 키는 AWS 서비스가 여러 AWS 계정에서 사용하기 위해 소유하고 관리하는 KMS 키 모음입니다. AWS 소유 키는 AWS 계정에 없지만 AWS 서비스는 AWS 소유 키를 사용하여 계정의 리소스를 보호할 수 있습니다.
일부 AWS 서비스에서는 AWS 소유 키 또는 고객 관리형 키를 선택할 수 있습니다. 일반적으로 리소스를 보호하는 암호화 키를 감사하거나 제어할 필요가 없는 경우, AWS 소유 키를 선택하는 것이 좋습니다. AWS 소유 키는 완전히 무료(월 요금 또는 사용 요금 없음)이고 계정에 대한 AWS KMS 할당량을 적용하지 않으므로 사용하기 쉽습니다. 키 또는 키 정책을 만들거나 유지하지 않아도 됩니다.
AWS 소유 키의 교체는 서비스에 따라 다릅니다. 특정 AWS 소유 키의 교체에 대한 자세한 내용은 서비스 사용 설명서 또는 개발자 안내서의 저장된 데이터 암호화 주제를 참조하세요.
AWS KMS key 계층 구조
계층 구조는 최상위 논리적 키인 AWS KMS key부터 시작됩니다. KMS 키는 최상위 키 구성 요소의 컨테이너를 나타내며, Amazon 리소스 이름(ARN)을 사용하여 AWS 서비스 네임스페이스에 고유하게 정의됩니다. ARN에는 고유하게 생성된 키 식별자인 키 ID가 포함되어 있습니다. KMS 키는 AWS KMS를 통해 사용자가 시작한 요청에 따라 생성됩니다. 요청이 수신되면 AWS KMS가 KMS 키 컨테이너에 배치될 초기 HSM 백업 키(HBK)의 생성을 요청합니다. HBK는 도메인의 HSM에 생성되며 HSM에서 일반 텍스트로 내보낼 수 없도록 설계되었습니다. 대신 HBK는 HSM 관리 도메인 키로 암호화되어 내보내집니다. 이러한 내보낸 HBK를 내보낸 키 토큰(EKT)이라고 합니다.
EKT는 내구성이 높고 대기 시간이 짧은 스토리지로 내보내집니다. 예를 들어 논리적 KMS 키에 대한 ARN 수신한다고 가정합니다. 이는 키 계층 구조 또는 암호화 컨텍스트의 최상위를 나타냅니다. 계정 내에서 여러 KMS 키를 생성하고 다른 AWS 명명된 리소스와 마찬가지로 KMS 키에 대한 정책을 설정할 수 있습니다.
특정 KMS 키의 계층 구조 내에서 HBK는 KMS 키의 한 버전이라고 할 수 있습니다. AWS KMS를 통해 KMS 키를 교체하려는 경우 새 HBK가 생성되어 KMS 키의 활성 HBK로서 KMS 키와 연결됩니다. 이전 HBK는 보존되며 이전에 보호된 데이터를 복호화하고 확인하는 데 사용할 수 있습니다. 단, 새 정보를 보호하는 데에는 활성 암호화 키만 사용할 수 있습니다.
KMS 키를 사용하여 정보를 직접 보호하거나 KMS 키로 보호되는 추가 HSM 생성 키를 요청하도록 AWS KMS를 통해 요청할 수 있습니다. 이러한 키를 고객 데이터 키(CDK)라고 합니다. CDK는 암호화 텍스트(CT), 일반 텍스트 또는 두 가지 형식 모두로 암호화된 상태로 반환될 수 있습니다. KMS 키(고객 제공 데이터 또는 HSM 생성 키)로 암호화된 모든 객체는 AWS KMS를 통한 호출을 통해서만 HSM에서 복호화할 수 있습니다.
반환된 암호화 텍스트 또는 복호화된 페이로로드는 AWS KMS에 저장되지 않습니다. 이 정보는 AWS KMS에 대한 TLS 연결을 통해 사용자에게 반환됩니다. 이는 사용자를 대신하여 AWS 서비스가 실행하는 호출에도 적용됩니다.
다음 표에는 키 계층 구조 및 특정 키 속성이 나와 있습니다.
| 키 | 설명 | 수명 주기 |
|---|---|---|
|
도메인 키 |
HSM 메모리에만 있는 256비트 AES-GCM 키로, KMS 키의 버전, 즉 HSM 백업 키를 래핑하는 데 사용됩니다. |
매일 교체됨1 |
|
HSM 백업 키 |
256비트 대칭 키 또는 RSA 또는 타원 곡선 개인 키로, 고객 데이터 및 키를 보호하는 데 사용되며 도메인 키로 암호화됩니다. 하나 이상의 HSM 백업 키가 KMS 키를 구성하며 keyId로 표시됩니다. |
매년 교체됨2(선택적 구성) |
|
추출된 암호화 키 |
HSM 메모리에만 있는 256비트 AES-GCM 키로, 고객 데이터 및 키를 암호화하는 데 사용됩니다. 각 암호화에 대해 HBK에서 추출됩니다. |
암호화당 한 번 사용되며 복호화할 때 다시 생성됩니다. |
|
고객 데이터 키 |
HSM에서 일반 텍스트 및 암호화 텍스트 형식으로 내보낸 사용자 정의 대칭 또는 비대칭 키입니다. HSM 백업 키로 암호화되며, TLS 채널을 통해 권한 있는 사용자에게 반환됩니다. |
교체 및 애플리케이션에 의한 통제된 사용 |
1 AWS KMS는 도메인 관리 및 구성 작업을 감안하여 종종 도메인 키 교체를 최대 주 1회 수준으로 완화할 수 있습니다.
2 AWS KMS가 생성하고 관리하는 기본값 AWS 관리형 키는 매년 자동으로 교체됩니다.
키 식별자(KeyId)
키 식별자는 KMS 키의 이름과 같은 역할을 합니다. 콘솔에서 KMS 키를 인식하는 데 도움이 됩니다. 이를 사용하여 AWS KMS API 작업, 키 정책, IAM 정책 및 권한 부여에 사용할 KMS 키를 나타냅니다. 키 식별자 값은 KMS 키와 연결된 키 자료와 전혀 관련이 없습니다.
AWS KMS는 몇 가지 키 식별자를 정의합니다. KMS 키를 생성할 때 AWS KMS에서는 KMS 키의 속성인 키 ARN 및 키 ID를 생성합니다. 별칭을 만들면 정의한 별칭 이름을 기반으로 AWS KMS가 별칭 ARN을 생성합니다. AWS Management 콘솔 및 AWS KMS API에서 키 및 별칭 식별자를 볼 수 있습니다.
AWS KMS 콘솔에서 KMS 키를 키 ARN, 키 ID 또는 별칭 이름으로 보고 필터링하고 키 ID 및 별칭 이름을 기준으로 정렬할 수 있습니다. 콘솔에서 키 식별자를 찾는 방법에 대한 도움말은 키 ID 및 키 ARN 찾기 섹션을 참조하세요.
AWS KMS API에서 KMS 키를 식별하는 데 사용하는 파라미터는 KeyId 또는 변형(예: TargetKeyId 또는 DestinationKeyId)입니다. 그러나 이러한 파라미터의 값은 키 ID로 제한되지 않습니다. 일부는 유효한 키 식별자를 취할 수 있습니다. 각 파라미터의 값에 대한 자세한 내용은 AWS Key Management Service API 참조의 파라미터 설명을 참조하세요.
참고
AWS KMS API를 사용할 때는 사용하는 키 식별자를 주의해야 합니다. API에 따라 다른 키 식별자가 필요합니다. 일반적으로 작업에 가장 완전하고 실용적인 키 식별자를 사용하십시오.
AWS KMS는 다음 키 식별자를 지원합니다.
- 키 ARN
-
키 ARN은 KMS 키의 Amazon 리소스 이름(ARN)입니다. KMS 키에 대한 고유한 정규화된 식별자입니다. 키 ARN에는 AWS 계정, 리전 및 키 ID가 포함됩니다. KMS 키의 키 ARN을 찾는 방법에 대한 도움말은 키 ID 및 키 ARN 찾기 섹션을 참조하세요.
키 ARN의 형식은 다음과 같습니다.
arn:<partition>:kms:<region>:<account-id>:key/<key-id>다음은 단일 리전 KMS 키의 키 ARN 예입니다.
arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab다중 리전 키의 키 ARN의
key-id요소는mrk-접두사로 시작합니다. 다음은 다중 리전 키에 대한 예제 키 ARN입니다.arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab
- 키 ID
-
키 ID는 계정 및 리전 내의 KMS 키를 고유하게 식별합니다. KMS 키의 키 ID를 찾는 방법에 대한 도움말은 키 ID 및 키 ARN 찾기 섹션을 참조하세요.
다음은 단일 리전 KMS 키의 키 ID 예입니다.
1234abcd-12ab-34cd-56ef-1234567890ab다중 리전 키의 키 ID는
mrk-접두사로 시작합니다. 다음은 다중 리전 키에 대한 예제 키 ID입니다.mrk-1234abcd12ab34cd56ef1234567890ab - 별칭 ARN
-
별칭 ARN은 별칭 AWS KMS의 Amazon 리소스 이름(ARN)입니다. 별칭 및 해당 별칭이 나타내는 KMS 키에 대한 고유한 정규화된 식별자입니다. 별칭 ARN에는 AWS 계정, 리전 및 별칭 이름이 포함됩니다.
지정된 시간에 별칭 ARN은 하나의 특정 KMS 키를 식별합니다. 그러나 별칭과 연결된 KMS 키를 변경할 수 있으므로 별칭 ARN이 서로 다른 시간에 서로 다른 KMS 키를 식별할 수 있습니다. KMS 키의 별칭 ARN을 찾는 방법에 대한 도움말은 KMS 키의 별칭 이름 및 별칭 ARN 찾기 섹션을 참조하세요.
별칭 ARN의 형식은 다음과 같습니다.
arn:<partition>:kms:<region>:<account-id>:alias/<alias-name>다음은 가상
ExampleAlias의 별칭 ARN입니다.arn:aws:kms:us-west-2:111122223333:alias/ExampleAlias - 별칭 이름
-
별칭 이름은 최대 256자의 문자열입니다. 계정 및 리전 내의 연결된 KMS 키를 고유하게 식별합니다. AWS KMS API에서 별칭 이름은 항상
alias/로 시작합니다. KMS 키의 별칭 이름을 찾는 방법에 대한 도움말은 KMS 키의 별칭 이름 및 별칭 ARN 찾기 섹션을 참조하세요.별칭 이름의 형식은 다음과 같습니다.
alias/<alias-name>예:
alias/ExampleAlias별칭 이름의
aws/접두사는 AWS 관리형 키용으로 예약됩니다. 이 접두사를 가진 별칭은 만들 수 없습니다. 예를 들어 Amazon Simple Storage Service(Amazon S3)에 대한 AWS 관리형 키의 별칭 이름은 다음과 같습니다.alias/aws/s3