이 문서에서는 루트 키를 순환하는 방법을 설명합니다. 루트 키가 도난당하거나 보안을 강화하기 위해 주기적으로 루트 키를 순환하려는 경우 RotationJob
리소스를 사용하여 키를 새 루트 키로 순환할 수 있습니다.
루트 키를 순환하면 새 루트 키가 생성되며, 이 키는 기본 키가 되어 모든 비루트 키를 래핑합니다. 루트 키는 삭제할 수 없습니다. 순환만이 루트 키를 대체하는 유일한 방법입니다. 루트 키에 대한 자세한 내용은 루트 키 유형을 참고하세요.
KMS API에 관한 자세한 내용은 KMS API 개요를 참고하고 Key Management Service KRM API를 참고하여 전체 API 정의를 확인하세요.
시작하기 전에
계속하기 전에 다음 사항을 확인하세요.
관리 API 서버에 액세스하도록 구성된
kubectl
명령어 이렇게 하려면 gdcloud 명령줄 인터페이스 (CLI)를 사용하여 kubeconfig 파일을 가져옵니다.KMS 순환 작업 관리자 역할 키를 순환하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 KMS 순환 작업 관리자 (
kms-rotationjob-admin
) 역할을 부여해 달라고 요청하세요.
루트 키 순환
새 루트 키를 만들고 키를 순환하려면 다음 단계를 완료하세요.
YAML 파일을 만들고
RotationJob
리소스와 다음 콘텐츠를 추가합니다.apiVersion: "kms.gdc.goog/v1" kind: RotationJob metadata: name: ROTATION_NAME spec: rootKeyResourceName: ROOT_KEY_RESOURCE_NAME
ROTATION_NAME을 순환 작업의 이름으로 바꿉니다(예:
rotate-job1
).ROOT_KEY_RESOURCE_NAME을
namespace/NAMESPACE/secrets/ROOT_KEY_NAME
형식으로 지정된 루트 키 이름으로 바꿉니다.예를 들면
namespaces/kms-system/secrets/ctm-root
입니다.YAML 파일의 콘텐츠를 KMS에 적용합니다.
kubectl apply -f FILENAME.yaml
FILENAME를 YAML 파일 이름으로 바꿉니다.
명령어를 실행하면 KMS가 새 루트 키를 만들고 새 루트 키로 모든 키를 순환합니다.
루트 키 순환이 완료되었는지 확인하려면 다음을 실행하세요.
kubectl get rotationjobs ROTATION_NAME
ROTATION_NAME을 순환 작업의 이름으로 바꿉니다.
명령어를 실행한 후 성공하면 순환 작업 상태가
Completed
로 표시됩니다.루트 키에서
Done
주석을 삭제합니다. 주석을 삭제하면 키를 두 번 이상 순환할 수 있습니다. 인프라 운영자 (IO)가 이 단계를 실행해야 합니다. IO에게 다음을 실행해 달라고 요청합니다.kubectl annotate secret kms-key-ROOT_KEY_NAME -n kms-system gdch.cluster.gke.io/rotation-status-