키 관리 시스템 (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
gdcloud CLI를 사용하여 Management API 서버의 kubeconfig 파일을 가져옵니다.
키 만들기
다양한 암호화 용도로 키를 만들 수 있습니다.
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: Management 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키가 성공적으로 삭제되면 명령어가 키 객체를 반환하지 않습니다.