루트 키 순환

이 문서에서는 루트 키를 순환하는 방법을 설명합니다. 루트 키가 도난당하거나 보안을 강화하기 위해 주기적으로 루트 키를 순환하려는 경우 RotationJob 리소스를 사용하여 키를 새 루트 키로 순환할 수 있습니다.

루트 키를 순환하면 새 루트 키가 생성되며, 이 키는 기본 키가 되어 모든 비루트 키를 래핑합니다. 루트 키는 삭제할 수 없습니다. 순환만이 루트 키를 대체하는 유일한 방법입니다. 루트 키에 대한 자세한 내용은 루트 키 유형을 참고하세요.

KMS API에 관한 자세한 내용은 KMS API 개요를 참고하고 Key Management Service KRM API를 참고하여 전체 API 정의를 확인하세요.

시작하기 전에

계속하기 전에 다음 사항을 확인하세요.

  • 관리 API 서버에 액세스하도록 구성된 kubectl 명령어 이렇게 하려면 gdcloud 명령줄 인터페이스 (CLI)를 사용하여 kubeconfig 파일을 가져옵니다.

  • KMS 순환 작업 관리자 역할 키를 순환하는 데 필요한 권한을 얻으려면 조직 IAM 관리자에게 KMS 순환 작업 관리자 (kms-rotationjob-admin) 역할을 부여해 달라고 요청하세요.

루트 키 순환

새 루트 키를 만들고 키를 순환하려면 다음 단계를 완료하세요.

  1. 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_NAMEnamespace/NAMESPACE/secrets/ROOT_KEY_NAME 형식으로 지정된 루트 키 이름으로 바꿉니다.

    예를 들면 namespaces/kms-system/secrets/ctm-root입니다.

  2. YAML 파일의 콘텐츠를 KMS에 적용합니다.

    kubectl apply -f FILENAME.yaml
    

    FILENAME를 YAML 파일 이름으로 바꿉니다.

    명령어를 실행하면 KMS가 새 루트 키를 만들고 새 루트 키로 모든 키를 순환합니다.

  3. 루트 키 순환이 완료되었는지 확인하려면 다음을 실행하세요.

    kubectl get rotationjobs ROTATION_NAME
    

    ROTATION_NAME을 순환 작업의 이름으로 바꿉니다.

    명령어를 실행한 후 성공하면 순환 작업 상태가 Completed로 표시됩니다.

  4. 루트 키에서 Done 주석을 삭제합니다. 주석을 삭제하면 키를 두 번 이상 순환할 수 있습니다. 인프라 운영자 (IO)가 이 단계를 실행해야 합니다. IO에게 다음을 실행해 달라고 요청합니다.

    kubectl annotate secret kms-key-ROOT_KEY_NAME -n kms-system gdch.cluster.gke.io/rotation-status-