디지털 서명은 데이터 무결성과 신뢰성을 보장하는 데 사용됩니다. 이 문서에서는 gdcloud CLI를 사용하여 데이터를 서명하고 Key Management System (KMS)에서 관리하는 비대칭 키를 사용하여 서명을 확인하는 방법을 설명합니다.
이 페이지는 Google Distributed Cloud (GDC) 에어 갭 내에서 키 관리 작업을 수행할 때 DevOps팀과 같은 애플리케이션 운영자 그룹 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 그룹을 참고하세요.
시작하기 전에
키를 사용하여 데이터에 서명하고 데이터를 확인하려면 필요한 권한을 요청하고, 환경을 준비하고, 서명 키가 아직 없는 경우 서명 키를 만듭니다.
IAM 역할 요청
조직 IAM 관리자에게 프로젝트 네임스페이스에서 다음 역할을 부여해 달라고 요청하세요.
- KMS 개발자 (
kms-developer): 키를 보고 프로젝트 내에서 데이터 암호화, 복호화, 서명, 확인과 같은 암호화 작업을 수행합니다.
개발 환경 준비
아직 수행하지 않았다면 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
서명 키가 있는지 확인
데이터에 서명하고 데이터를 확인하려면 서명 키를 사용해야 합니다. 키 생성 및 확인에는 연결된 페이지에 자세히 설명된 대로 별도의 IAM 권한이 필요합니다.
- 서명 키를 만들어야 하는 경우 서명 키 만들기의 안내를 따르세요.
- 서명 키가 있는지 확인하려면 서명 키 생성 확인의 안내를 따르세요.
데이터 서명
데이터에 서명하려면 gdcloud kms keys asymmetric-sign 명령어를 사용합니다. 이 명령어는 서명 키를 사용하여 입력 파일의 디지털 서명을 만들고 base64로 인코딩된 서명을 저장합니다.
gdcloud kms keys asymmetric-sign \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
다음을 바꿉니다.
- NAMESPACE: 프로젝트 네임스페이스(예:
kms-test1) - KEY_NAME: 서명에 사용된 키의 이름(예:
key-1) - INPUT_PATH: 서명하려는 입력 파일의 경로
- SIGNATURE_FILE: base64로 인코딩된 서명을 저장할 출력 파일의 경로
명령어를 실행하면 base64로 인코딩된 서명이 포함된 --signature-file 플래그에 지정한 출력 파일이 표시됩니다.
데이터 확인
데이터에 서명한 후 gdcloud kms keys asymmetric-verify 명령어를 사용하여 base64 디지털 서명을 확인합니다. 이 명령어는 gdcloud kms keys asymmetric-sign 명령어를 실행한 후 수신하는 base64로 인코딩된 디지털 서명이 유효한지 확인합니다.
gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
--input-file=INPUT_PATH \
--signature-file=SIGNATURE_FILE
다음을 바꿉니다.
- NAMESPACE: 프로젝트 네임스페이스(예:
kms-test1) - KEY_NAME: 서명에 사용된 키의 이름(예:
key-1) - INPUT_PATH: 서명된 원래 입력 파일의 경로
- SIGNATURE_FILE: 확인할 base64로 인코딩된 서명이 포함된 파일의 경로
명령어를 실행하면 성공 시 Verification OK 출력이 표시됩니다. 성공하지 못하면 실패 출력 Verification Failure가 표시됩니다.