이 페이지에서는 애플리케이션 운영자 (AO)가 내보낸 키 관리 시스템 (KMS) 키에서 키 가져오기 작업을 실행하는 방법을 설명합니다. AO는 다음 리소스에서 kubectl
명령줄 인터페이스 (CLI)를 사용하여 가져오기 및 내보내기 작업을 실행합니다.
이러한 리소스에 대한 자세한 내용은 KMS API 개요를 참고하세요.
키 관리 시스템 (KMS) 페이지의 지원되는 키 섹션을 참고하여 KMS 지원 키의 전체 목록과 세부정보를 확인하세요.
시작하기 전에
계속하기 전에 다음 사항을 확인하세요.
관리 API 서버에 액세스하도록 구성된
kubectl
명령어 이렇게 하려면 kubeconfig 파일 가져오기 및 gdcloud 명령줄 인터페이스 (CLI) 섹션을 따르세요.KMS 키 가져오기 관리자 및 KMS 키 내보내기 관리자 역할 내보낸 키를 가져오는 데 필요한 권한을 얻으려면 플랫폼 관리자 (PA)에게 KMS 키 가져오기 관리자(
kms-keyimport-admin
) 및 KMS 키 내보내기 관리자 (kms-keyexport-admin
) 역할을 부여해 달라고 요청하세요.
내보낸 키 가져오기
내보낸 키를 가져오려면 다음 단계를 완료하세요.
YAML 파일을 만들고
kind
객체의 값으로KeyImport
리소스를 추가합니다.apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: KEY_IMPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM
다음 변수를 바꿉니다.
- KEY_IMPORT_NAME:
KeyImport
리소스의 이름입니다(예:key-import-test
). - PROJECT: 프로젝트 네임스페이스의 이름입니다(예:
kms-test1
). - MECHANISM: 키의 키 공유 메커니즘입니다(예: `EDCH_P521_AES256`).
- KEY_IMPORT_NAME:
YAML 파일의 콘텐츠를 KMS에 적용하고
KeyImport
리소스를 만듭니다.kubectl apply -f FILENAME.yaml
FILENAME를 YAML 파일 이름으로 바꿉니다.
내부적으로 생성된 키 쌍의 공개 키를 사용하여 KMS는
KeyImport
리소스의 상태를AwaitingKeyToImport
로 업데이트합니다. 계속하려면 리소스의 상태를 확인하고 KMS에서 생성된 공개 키를 가져와야 합니다.KeyImport
리소스의 상태를 확인하고 KMS 생성 공개 키를 가져오려면 다음을 실행하세요.kubectl describe keyimport KEY_IMPORT_NAME --namespace PROJECT
다음 변수를 바꿉니다.
- KEY_IMPORT_NAME:
KeyImport
리소스 이름입니다(예:key-import-test
). - PROJECT: 프로젝트 네임스페이스의 이름입니다(예:
kms-test1
).
명령어를 실행하면 다음과 비슷한 출력이 표시됩니다.
... Status: Conditions: Last Transition Time: 2022-12-14T20:43:50Z Message: waiting for user to provide KeyToImport Observed Generation: 1 Reason: AwaitingKeyToImport Status: False Type: Ready Imported Key Ref: Kind: KeyImport Name: key-import-test Peer Context: Private Key: Public Key: PUBLIC_KEY Events: <none>
PUBLIC_KEY 값은 KMS에서 생성된 공개 키를 나타냅니다. 공개 키를 복사하고 다음 단계에서
KeyExport
리소스에 추가합니다.- KEY_IMPORT_NAME:
다른 YAML 파일을 만들고
KeyExport
리소스를kind
객체의 값으로 추가하고 다음 콘텐츠를 추가합니다.apiVersion: "kms.gdc.goog/v1" kind: KeyExport metadata: name: KEY_EXPORT_NAME namespace: PROJECT spec: context: mechanism: MECHANISM publicKey: PUBLIC_KEY keyToExport: kind: KEY_PRIMITIVE name: KEY_NAME
다음 변수를 바꿉니다.
- KEY_EXPORT_NAME:
KeyExport
리소스의 이름입니다(예:key-export-test
). PROJECT: 프로젝트 네임스페이스의 이름입니다(예:
kms-test1
).MECHANISM: 키의 키 공유 메커니즘입니다(예: `EDCH_P521_AES256`).
PUBLIC_KEY:
keyImport.Status.PeerContext.PublicKey
의 공개 키입니다.KEY_PRIMITIVE: 키의 CRD입니다(예: aeadkey 및 signingkey).
KEY_NAME: 키의 이름(예:
key-1
)
- KEY_EXPORT_NAME:
YAML 파일의 콘텐츠를 KMS에 적용하고
KeyExport
리소스를 만듭니다.kubectl apply -f FILENAME.yaml
FILENAME를 YAML 파일 이름으로 바꿉니다.
명령어를 실행하면 KMS가
KeyExport
리소스의 상태를 업데이트하고 내보낸 키를 생성합니다. 내보낸 키를 가져오려면 리소스의 상태를 확인하세요.리소스의 상태를 확인하려면 다음을 실행하세요.
kubectl describe keyexport KEY_EXPORT_NAME --namespace PROJECT
다음 변수를 바꿉니다.
- KEY_EXPORT_NAME:
KeyExport
리소스의 이름입니다(예:key-export-test
). - PROJECT: 프로젝트 네임스페이스의 이름입니다(예:
kms-test1
).
명령어를 실행하면 다음과 비슷한 출력이 표시됩니다.
... Status: Conditions: Last Transition Time: 2022-12-14T20:45:57Z Message: key successfully exported Observed Generation: 1 Reason: KeyExportCompleted Status: True Type: Ready Exported Key: EXPORTED_KEY
EXPORTED_KEY는 내보낸 키의 메타데이터를 나타냅니다. EXPORTED_KEY의 콘텐츠를 복사하여 다음 단계로 계속 진행합니다.
- KEY_EXPORT_NAME:
KeyImport
리소스가 포함된 YAML 파일을 수정하고keyexport.status.exportedkey
의 출력에서 복사한 콘텐츠를 추가합니다.apiVersion: "kms.gdc.goog/v1" kind: KeyImport metadata: name: key-import-test namespace: kms-test1 spec: context: mechanism: EDCH_P521_AES256 keyToImport: EXPORTED_KEY
YAML 파일을 편집한 후 콘텐츠를 KMS에 적용합니다.
kubectl apply -f FILENAME.yaml
명령어를 실행하면 KMS에서 제공된 내보낸 키를 가져옵니다.
가져온 키에 관한 세부정보를 보려면 다음을 실행하세요.
kubectl get keyimport KEY_IMPORT_NAME
다음과 비슷한 출력이 표시됩니다.
NAMESPACE NAME AGE READY REASON KEY KIND kms-test1 KEY_IMPORT_NAME 60s True KeyImportCompleted KEY_PRIMITIVE
KEY_PRIMITIVE는 가져온 키의 종류를 나타냅니다(AEAD 키와 서명 키 사이).