개요
AWS용 GKE는 고객 관리 AWS 키 관리 서비스(KMS) 대칭 키를 사용하여 다음을 암호화합니다.
- etcd의 Kubernetes 상태 데이터
- EC2 인스턴스 사용자 데이터
- 제어 영역 및 노드 풀 데이터의 저장 데이터를 암호화하는 데 사용되는 EBS 볼륨
프로덕션 환경의 경우 구성 및 볼륨 암호화에 서로 다른 키를 사용하는 것이 좋습니다. 또한 키가 손상된 경우 위험을 최소화하려면 다음 중 하나에 대해 다른 키를 만들 수 있습니다.
추가 보안을 위해 필요한 최소 권한 집합만 할당하는 AWS KMS 키 정책을 만들 수 있습니다. 자세한 내용은 특정 권한으로 KMS 키 만들기를 참조하세요.
AWS KMS 키 만들기
키를 만들려면 다음 명령어를 실행합니다.
aws --region AWS_REGION kms create-key \
--description "KEY_DESC"
다음을 바꿉니다.
AWS_REGION
을 AWS 리전 이름으로 바꿉니다.KEY_DESC
를 키에 대한 텍스트 설명으로 바꿉니다.
만든 키마다 나중에 사용할 수 있도록 이 명령어 출력에 KeyMetadata.Arn
라는 값을 저장합니다.
특정 권한으로 KMS 키 만들기
함수마다 별도의 키를 만드는 경우 해당 키에 적합한 권한을 부여하는 KMS 키 정책을 각 키에 제공해야 합니다. 키를 만들 때 키 정책을 지정하지 않으면 AWS KMS가 소유 계정의 모든 주 구성원에 키의 모든 작업에 대한 무제한 액세스를 제공하는 기본 키 정책을 만듭니다.
키 정책을 만들 때는 AWS IAM 정책에 키 정책에 대한 액세스를 허용해야 합니다. 키 정책은 또한 IAM 정책을 사용할 수 있는 권한을 계정에 제공해야 합니다. 키 정책의 권한이 없으면 권한을 허용하는 IAM 정책이 효과가 없습니다. 자세한 내용은 AWS KMS의 키 정책을 참조하세요.
다음 표에서는 AWS용 GKE가 사용하는 각 AWS IAM 역할에 대한 권한을 설명합니다.
GKE Multi-Cloud API 서비스 에이전트 역할 | 제어 영역 역할 | 노드 풀 역할 | 자동 확장을 위한 AWS 서비스 역할 | |
---|---|---|---|---|
클러스터 제어 영역 구성 암호화 | kms:Encrypt | kms:Decrypt | 해당 사항 없음 | 해당 사항 없음 |
클러스터 제어 영역 데이터베이스 암호화 | 해당 사항 없음 | kms:Encrypt kms:Decrypt |
해당 사항 없음 | 해당 사항 없음 |
클러스터 제어 영역 기본 볼륨 암호화 | kms:GenerateDataKeyWithoutPlaintext | kms:CreateGrant | 해당 사항 없음 | 해당 사항 없음 |
클러스터 제어 영역 루트 볼륨 암호화 | 해당 사항 없음 | 해당 사항 없음 | 해당 사항 없음 | 고객 관리 키에 대해 액세스를 허용하는 키 정책 섹션 참조 |
노드 풀 구성 암호화 | kms:Encrypt | 해당 사항 없음 | kms:Decrypt | 해당 사항 없음 |
노드 풀 루트 볼륨 암호화 | 해당 사항 없음 | 해당 사항 없음 | 해당 사항 없음 | 고객 관리 키에 대해 액세스를 허용하는 키 정책 섹션 참조 |
기타 요구사항 | kms:DescribeKey | 해당 사항 없음 | 해당 사항 없음 | 해당 사항 없음 |