Google Cloud CLI를 사용하여 인증서 발급
이 페이지에서는 Google Cloud CLI를 사용하여 Certificate Authority Service를 통해 인증서를 생성하거나 발급하는 방법을 설명합니다.
CA Service를 사용하면 인프라를 관리하지 않고도 비공개 CA를 배포하고 관리할 수 있습니다.
시작하기 전에
-
Google Cloud CLI를 설치합니다. 설치 후 Google Cloud CLI를 초기화하려면 다음 명령어를 실행합니다.
gcloud init외부 ID 공급업체 (IdP)를 사용하는 경우 먼저 제휴 ID로 gcloud CLI에 로그인해야 합니다.
프로젝트를 만들거나 Google Cloud 선택합니다.
프로젝트를 선택하거나 만드는 데 필요한 역할
- 프로젝트 선택: 프로젝트를 선택하는 데 특정 IAM 역할이 필요하지 않습니다. 역할이 부여된 프로젝트를 선택할 수 있습니다.
-
프로젝트 만들기: 프로젝트를 만들려면
resourcemanager.projects.create권한이 포함된 프로젝트 생성자 역할 (roles/resourcemanager.projectCreator)이 필요합니다. 역할을 부여하는 방법을 알아보세요.
-
프로젝트 만들기: Google Cloud
gcloud projects create PROJECT_ID
PROJECT_ID를 만들려는 Google Cloud 프로젝트의 이름으로 바꿉니다. -
생성한 Google Cloud 프로젝트를 선택합니다.
gcloud config set project PROJECT_ID
PROJECT_ID를 프로젝트 이름으로 바꿉니다. Google Cloud
Certificate Authority Service API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면 역할 (
roles/serviceusage.serviceUsageAdmin)이 포함된 서비스 사용량 관리자 IAMserviceusage.services.enable권한이 필요합니다. 역할을 부여하는 방법을 알아보세요.gcloud services enable privateca.googleapis.com
이 빠른 시작의
gcloud명령어에 사용할 기본 위치를 구성합니다.gcloud config set privateca/location LOCATIONCA 풀 및 CA와 같은 CA Service 리소스는 이러한 리소스를 만든 후에는 변경할 수 없는 단일 Google Cloud 위치에 있습니다.
CA 풀 만들기
인증 기관(CA) 풀은 여러 CA의 모음입니다. CA 풀은 워크로드의 중단 또는 다운타임 없이 신뢰 체인을 순환하는 기능을 제공합니다.
Enterprise 등급에서 CA 풀을 만들려면 다음 명령어를 실행합니다.
gcloud privateca pools create POOL_ID --location LOCATION --tier "enterprise"
다음을 바꿉니다.
- POOL_ID: CA 풀의 이름입니다.
- LOCATION: CA 풀의 위치입니다. 전체 위치 목록은 위치를 참조하세요.
리소스 이름은 글자, 숫자, 하이픈 (-), 밑줄 (_)을 포함할 수 있으며 최대 63자까지 지정할 수 있습니다.
루트 CA 만들기
CA 풀은 빈 상태로 생성됩니다. CA 풀에서 인증서를 요청하려면 CA를 추가해야 합니다.
루트 CA를 만들고 생성된 CA 풀에 추가하려면 다음 명령어를 실행합니다.
gcloud privateca roots create CA_ID --pool POOL_ID --location LOCATION --subject "CN=Example Prod Root CA,O=Google"
다음을 바꿉니다.
- CA_ID: 루트 CA의 이름입니다.
- POOL_ID: CA 풀의 이름입니다.
- LOCATION: CA 풀의 위치입니다. 전체 위치 목록은 위치를 참조하세요.
CA Service는 루트 CA를 만들 때 다음 출력을 반환합니다.
Created Certificate Authority [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificateAuthorities/CA_ID]
gcloud CLI에서 메시지가 표시되면 y를 입력하여 루트 CA를 사용 설정합니다.
선택사항: 하위 CA 풀 만들기
하위 CA 풀을 만들려면 다음 명령어를 실행합니다.
gcloud privateca pools create SUBORDINATE_POOL_ID
--location LOCATION
--tier TIER
다음을 바꿉니다.
- SUBORDINATE_POOL_ID: 하위 CA 풀의 ID입니다.
- LOCATION: 하위 CA 풀의 위치입니다. 전체 위치 목록은 위치를 참조하세요.
- TIER: 하위 CA 등급(devops 또는 enterprise)입니다.
선택사항: 에 저장된 루트 CA로 서명된 하위 CA 만들기 Google Cloud
이전 단계에서 만든 하위 CA 풀에 하위 CA를 만들려면 다음 명령어를 실행합니다.
gcloud privateca subordinates create SUBORDINATE_CA_ID \
--location=LOCATION \
--pool=SUBORDINATE_POOL_ID \
--issuer-pool=POOL_ID \
--issuer-location=ISSUER_LOCATION \
--from-ca=EXISTING_CA_ID \
--kms-key-version projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/KEY_VERSION
다음을 바꿉니다.
- SUBORDINATE_CA_ID: 하위 CA의 ID입니다.
- LOCATION: 하위 CA의 위치입니다. 전체 위치 목록은 위치를 참조하세요.
- SUBORDINATE_POOL_ID: 이전 섹션에서 만든 하위 CA 풀의 ID입니다.
- POOL_ID: 상위 CA 풀의 ID입니다.
- ISSUER_LOCATION: 인증서의 위치입니다.
- EXISTING_CA_ID: 소스 CA의 ID입니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION_ID: 키링의 위치입니다.
- KEY_RING: 키가 있는 키링의 이름입니다.
- KEY: 키의 이름입니다.
- KEY_VERSION: 키의 버전입니다.
하위 CA가 생성되면 다음 문이 반환됩니다.
Created Certificate Authority [projects/my-project-pki/locations/us-west1/caPools/SUBORDINATE_POOL_ID/certificateAuthorities/SUBORDINATE_CA_ID].
gcloud CLI에서 메시지가 표시되면 y를 입력하여 하위 CA를 사용 설정합니다.
인증서 만들기
새로 만든 CA를 사용하여 인증서를 만들려면 다음을 수행합니다.
pip명령어를 사용하여 Pyca 암호화 라이브러리를 설치합니다.pip install --user "cryptography>=2.2.0"CA Service는 Pyca 암호화 라이브러리를 사용하여 로컬 머신에서 새 비대칭 키 쌍을 생성하고 저장합니다. 이 키는 CA Service로 전송되지 않습니다.
Google Cloud SDK에서 Pyca 암호화 라이브러리를 사용하도록 허용하려면 사이트 패키지를 사용 설정해야 합니다.
macOS 또는 Linux
export CLOUDSDK_PYTHON_SITEPACKAGES=1Windows
set CLOUDSDK_PYTHON_SITEPACKAGES=1인증서를 만듭니다.
gcloud privateca certificates create \ --issuer-pool POOL_ID \ --issuer-location ISSUER_LOCATION \ --subject "CN=Example Prod,O=Google" \ --generate-key \ --key-output-file=./key \ --cert-output-file=./cert.pem다음을 바꿉니다.
- POOL_ID: 생성한 CA 풀의 리소스 ID입니다.
- ISSUER_LOCATION: 디지털 인증서를 발급한 인증 기관의 위치입니다.
CA Service는 다음 응답을 반환합니다.
Created Certificate [projects/PROJECT_ID/locations/LOCATION/caPools/POOL_ID/certificates/CERTIFICATE_ID]
삭제
이 빠른 시작에서 만든 CA 풀, CA, 프로젝트를 삭제하여 정리합니다.
인증서를 취소합니다.
- CERT_NAME: 취소하려는 인증서의 이름입니다.
- POOL_ID: 인증서를 발급한 CA 풀의 이름입니다.
- LOCATION: CA 풀의 위치입니다.
인증서를 취소하려면 다음 명령어를 실행합니다.
gcloud privateca certificates revoke --certificate CERT_NAME --issuer-pool POOL_ID --location LOCATION
다음을 바꿉니다.
CA를 삭제합니다.
CA에서 발급한 모든 인증서를 취소한 후에만 CA를 삭제할 수 있습니다.
CA를 사용 중지합니다.
gcloud privateca roots disable CA_ID --pool=POOL_ID --location=LOCATION다음을 바꿉니다.
- CA_ID: CA의 리소스 ID입니다.
- POOL_ID: CA 풀의 리소스 ID입니다.
- LOCATION: CA 풀의 위치입니다. 전체 위치 목록은 위치를 참조하세요.
CA를 삭제합니다.
gcloud privateca roots delete CA_ID --pool=POOL_ID --location=LOCATION
CA 상태가
Deleted로 변경됩니다. CA Service는 삭제를 시작한 후 30일 후에 CA를 영구적으로 삭제합니다.CA 풀을 삭제합니다.
CA 풀의 CA가 영구적으로 삭제된 후에만 CA 풀을 삭제할 수 있습니다.
gcloud privateca pools delete POOL_ID --location=LOCATION프로젝트를 삭제합니다.
프로젝트 삭제: Google Cloud
gcloud projects delete PROJECT_ID
다음 단계
- CA 풀 자세히 알아보기
- CA 풀을 만드는 방법 자세히 알아보기
- CA를 만드는 방법 자세히 알아보기.
- 인증서 요청 자세히 알아보기
- CA 풀에서 발급할 수 있는 인증서 유형을 제어하는 방법을 알아보세요.