EKS Auto Mode용 고객 관리형 KMS 키를 사용하여 EBS 볼륨 암호화 활성화 - Amazon EKS

이 페이지 개선에 도움 주기

이 사용자 가이드에 기여하려면 모든 페이지의 오른쪽 창에 있는 GitHub에서 이 페이지 편집 링크를 선택합니다.

EKS Auto Mode용 고객 관리형 KMS 키를 사용하여 EBS 볼륨 암호화 활성화

고객 관리형 KMS 키를 사용하여 EKS Auto Mode 인스턴스의 임시 루트 볼륨을 암호화할 수 있습니다.

Amazon EKS Auto Mode는 Kubernetes 클러스터의 암호화된 EBS 볼륨을 관리할 때 서비스 연결 역할을 사용하여 다른 AWS 서비스에 권한을 위임합니다. 이 주제에서는 EKS Auto Mode에서 Amazon EBS 암호화용 고객 관리형 키를 지정할 때 필요한 키 정책을 설정하는 방법에 대해 설명합니다.

고려 사항:

  • EKS Auto Mode는 기본 AWS 관리형 키를 사용하여 계정의 암호화된 볼륨을 보호하는 데 추가 승인이 필요하지 않습니다.

  • 이 주제에서는 EC2 인스턴스의 루트 볼륨인 임시 볼륨의 암호화를 다룹니다. 워크로드에 사용되는 데이터 볼륨 암호화에 대한 자세한 내용은 스토리지 클래스 생성 섹션을 참조하세요.

개요

다음 AWS KMS 키는 EKS Auto Mode에서 인스턴스를 시작할 때 Amazon EBS 루트 볼륨 암호화에 사용할 수 있습니다.

  • AWS 관리형 키 - Amazon EBS에서 생성, 소유 및 관리하는 계정의 암호화 키입니다. 이 키는 새 계정을 위한 기본 암호화 키입니다.

  • 고객 관리형 키 - 사용자가 생성, 소유 및 관리하는 사용자 지정 암호화 키입니다.

참고

키는 대칭이어야 합니다. Amazon EBS에서는 비대칭 고객 관리형 키를 지원하지 않습니다.

1단계: 키 정책 구성

KMS 키에는 EKS Auto Mode가 고객 관리형 키로 암호화된 Amazon EBS 볼륨으로 인스턴스를 시작할 수 있도록 허용하는 키 정책이 있어야 합니다.

다음 구조로 키 정책을 구성합니다.

참고

이 정책에는 EKS Auto Mode에 대한 권한만 포함되어 있습니다. 다른 자격 증명이 키를 사용하거나 권한 부여를 관리해야 하는 경우 키 정책에 추가 권한이 필요할 수 있습니다.

{ "Version":"2012-10-17", "Id": "MyKeyPolicy", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::123456789012:role/ClusterServiceRole" ] }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

<account-id>를 실제 AWS 계정 ID로 바꿔야 합니다.

키 정책을 구성할 때:

  • ClusterServiceRole에는 암호화 작업에 KMS 키를 사용하는 데 필요한 IAM 권한이 있어야 합니다.

  • kms:GrantIsForAWSResource 조건은 AWS 서비스에 대해서만 권한 부여를 생성할 수 있도록 합니다.

2단계: 고객 관리형 키를 사용하여 NodeClass 구성

키 정책을 구성한 후 EKS Auto Mode NodeClass 구성에서 KMS 키를 참조합니다.

apiVersion: eks.amazonaws.com/v1 kind: NodeClass metadata: name: my-node-class spec: # Insert existing configuration ephemeralStorage: size: "80Gi" # Range: 1-59000Gi or 1-64000G or 1-58Ti or 1-64T iops: 3000 # Range: 3000-16000 throughput: 125 # Range: 125-1000 # KMS key for encryption kmsKeyID: "arn:aws:kms:<region>:<account-id>:key/<key-id>"

자리 표시자 값을 실제 값으로 바꿉니다.

  • <region>을 실제 AWS 리전으로 바꿈

  • <account-id>를 실제 AWS 계정 ID로 바꿈

  • <key-id>를 실제 KMS 키 ID로 바꿈

다음 형식 중 하나를 사용하여 KMS 키를 지정할 수 있습니다.

  • KMS 키 ID: 1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • KMS 키 ARN: arn:aws:kms:us-west-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d

  • 키 별칭 이름: alias/eks-auto-mode-key

  • 키 별칭 ARN: arn:aws:kms:us-west-2:111122223333:alias/eks-auto-mode-key

kubectl을 사용하여 NodeClass 구성을 적용합니다.

kubectl apply -f nodeclass.yaml