인증(Attestation)을 위한 AWS KMS 준비하기
인증(Attestation)을 위한 AWS KMS 준비하기
Note
서드파티 서비스에 인증을 제공한다면 Attestation Documents를 수신, 구문 분석, 검증하기 위한 자체 사용자 지정 메커니즘을 구축해야 해요. 자세한 내용은 Validate a NitroTPM Attestation Document를 참고하세요.
Attestable AMI를 만든 뒤에는 Amazon EC2 인스턴스의 요청을 검증하는 데 사용할 수 있는 **참조 측정값(reference measurements)**이 있어야 합니다. AWS KMS는 NitroTPM과 함께 인증을 위한 기본 지원을 제공합니다.
출처: 문서
본문
Thrid-party service에 인증을 제공한다면 Attestation Documents를 수신, 구문 분석, 검증하기 위한 자체 사용자 지정 메커니즘을 구축해야 해요. 자세한 내용은 Validate a NitroTPM Attestation Document를 참고하세요.
Attestable AMI를 만든 뒤에는 Amazon EC2 인스턴스의 요청을 검증하는 데 사용할 참조 측정값이 있어야 합니다. AWS KMS는 NitroTPM과 함께 인증을 위한 기본 지원을 제공합니다.
비밀 데이터를 암호화하는 데 사용한 AWS KMS 키에 키 정책을 추가해, API 요청이 Attestable AMI 생성 과정에서 생성한 참조 측정값과 일치하는 측정값을 가진 Attestation Document를 포함하는 경우에만 키 액세스를 허용하도록 해요. 표준 부팅에는 PCR4 및 PCR12 측정값을, Secure Boot에는 PCR7 측정값을 사용합니다. 이렇게 하면 Attestable AMI로 시작된 인스턴스의 요청만 AWS KMS 키로 암호화 작업을 수행할 수 있습니다.
AWS KMS는 kms:RecipientAttestation:NitroTPMPCR4, kms:RecipientAttestation:NitroTPMPCR7, kms:RecipientAttestation:NitroTPMPCR12 조건 키를 제공해 NitroTPM KMS 키 정책에 인증 기반 조건을 만들 수 있게 해줍니다. 자세한 내용은 Condition keys for NitroTPM을 참고하세요.
예를 들어 다음 AWS KMS 키 정책은 요청이 MyEC2InstanceRole 인스턴스 프로필이 연결된 인스턴스에서 시작되고, 요청이 특정 PCR 4 및 PCR 12 값을 가진 Attestation Document를 포함하는 경우에만 키 액세스를 허용합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Allow requests from instances with attested AMI only",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/MyEC2InstanceRole"
},
"Action": [
"kms:Decrypt",
"kms:GenerateDataKey",
"kms:GenerateRandom"
],
"Resource": "*",
"Condition": {
"StringEqualsIgnoreCase": {
"kms:RecipientAttestation:NitroTPMPCR4":"EXAMPLE6b9b3d89a53b13f5dfd14a1049ec0b80a9ae4b159adde479e9f7f512f33e835a0b9023ca51ada02160EXAMPLE",
"kms:RecipientAttestation:NitroTPMPCR12":"000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
}
}
}
]
}