키 관리 시스템 (KMS)은 암호화, 복호화, 서명, 검증과 같은 암호화 작업을 위한 다양한 키 유형을 지원합니다. 사용 가능한 키 유형 및 알고리즘에 대한 자세한 내용은 지원되는 키 를 참조하세요.
이 페이지는 Google Distributed Cloud (GDC) 에어 갭 내에서 키 관리 작업을 수행할 때 DevOps팀과 같은 애플리케이션 운영자 그룹 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 그룹을 참조하세요.
시작하기 전에
키를 만들고 관리하려면 필요한 권한을 요청하고 환경을 준비하세요.
IAM 역할 요청
조직 IAM 관리자에게 프로젝트 네임스페이스에서 다음 역할을 부여해 달라고 요청하세요.
- KMS 생성자 (
kms-creator): 프로젝트 내에서AEADKey및SigningKey리소스를 보고 만듭니다. - KMS 관리자 (
kms-admin): 프로젝트 내에서 키를 보고 만들고 삭제합니다.
개발 환경 준비
아직 설치하지 않았다면 gdcloud CLI를 설치하고 초기화합니다.
gdcloud CLI를 사용하여 GDC에 인증합니다. 이 프로세스에는 조직 콘솔의 인증 기관 (CA) 인증서가 필요합니다.
CA 인증서를 다운로드합니다.
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH다음을 바꿉니다.
CONSOLE_URL: 조직의 콘솔 URL (예:console.org-1.zone1.google.gdch.test)CA_CERT_PATH: CA 인증서 파일을 저장할 전체 경로 (예:/tmp/my-org-ca.crt)
다운로드한 CA 인증서를 사용하여 로그인합니다.
gdcloud auth login --login-config-cert=CA_CERT_PATH
kubeconfig 파일 을 gdcloud CLI를 사용하여 관리 API 서버에 가져옵니다.
키 만들기
다양한 암호화 목적으로 키를 만들 수 있습니다.
AEAD 키 만들기
연관 데이터로 인증된 암호화 (AEAD)를 수행하려면 프로젝트 네임스페이스에서 AEADKey 리소스를 만듭니다.
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: AES_256_GCM
EOF
다음을 바꿉니다.
KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로KEY_NAME: 만들려는 AEAD 키의 이름(예:key-1)PROJECT: 프로젝트 이름(예:kms-test1)
서명 키 만들기
데이터에 서명하고 데이터를 검증하려면 프로젝트 네임스페이스에서 SigningKey 리소스를 만듭니다.
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: EC_SIGN_P384_SHA384
EOF
다음을 바꿉니다.
KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로KEY_NAME: 만들려는 서명 키의 이름(예:key-1)PROJECT: 프로젝트 이름(예:kms-test1)
키 생성 확인
키를 만든 후 작업이 성공적으로 완료되었고 키 리소스가 준비되었는지 확인합니다.
AEAD 키 생성 확인
AEAD 키의 상태를 확인합니다.
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
다음을 바꿉니다.
KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로KEY_NAME: 확인할 AEAD 키의 이름(예:key-1)PROJECT: 프로젝트 이름(예:kms-test1)
키 생성이 성공하면 상태가 True인 Ready 조건을 출력에서 확인합니다.
서명 키 생성 확인
서명 키의 상태를 확인합니다.
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
다음을 바꿉니다.
KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로KEY_NAME: 확인할 서명 키의 이름(예:key-1)PROJECT: 프로젝트 이름(예:kms-test1)
키 생성이 성공하면 상태가 True인 Ready 조건을 출력에서 확인합니다.
키 삭제
키 리소스를 삭제하려면 키 유형과 이름을 지정합니다.
프로젝트 네임스페이스에서 키를 삭제합니다.
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECT다음을 바꿉니다.
KUBECONFIG_PATH: 관리 API 서버의 kubeconfig 파일 경로KEY_PRIMITIVE: 삭제하려는 키 리소스의 유형(예: AEAD 키의 경우aeadkey, 서명 키의 경우signingkey)KEY_NAME: 삭제하려는 키의 이름(예:key-1)PROJECT: 프로젝트 이름(예:kms-test1)
키를 가져오려고 시도하여 키 삭제를 확인합니다.
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECT키가 삭제되면 명령어는 키 객체를 반환하지 않습니다.