이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 내의 시스템 트러스트 번들에 커스텀 인증 기관 (CA) 인증서를 추가하는 방법을 설명합니다. 트러스트 번들은 조직의 서비스에서 다른 서비스의 ID를 확인하는 데 사용하는 신뢰할 수 있는 CA의 모음입니다. 자체 커스텀 CA를 추가하면 조직에서 신뢰하는 인증서를 제어하여 내부 리소스 및 기타 신뢰할 수 있는 엔드포인트에 대한 보안 연결을 사용 설정할 수 있습니다.
이 페이지에서는 trust-store-root-ext 시스템 트러스트 번들에 커스텀 CA를 추가하는 방법을 설명합니다. trust-store-root-ext 트러스트 번들을 수정하면 변경사항이 trust-store-global-root-ext 번들로 자동 전파되어 모든 영역에서 커스텀 CA를 사용할 수 있습니다.
이 페이지는 GDC 내에서 조직의 리소스를 관리하고 보호해야 하는 플랫폼 관리자 그룹 (예: IT 관리자) 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 그룹을 참고하세요.
시작하기 전에
시스템 트러스트 번들에 커스텀 CA 인증서를 추가하려면 필요한 권한을 요청하고 환경을 준비해야 합니다.
IAM 역할 요청
보안 비밀을 만들고, 읽고, 업데이트하고, 삭제하려면 조직 IAM 관리자에게 문의하여 트러스트 저장소 관리자 (trust-store-admin) 역할을 요청하세요.
개발 환경 준비
로그인하여 gdcloud CLI를 사용합니다.
kubeconfig 파일 생성
다음 단계에 따라 조직 인프라 클러스터의 kubeconfig 파일을 생성하고 나중에 사용할 수 있도록 KUBECONFIG 변수로 설정합니다.
사용 가능한 모든 영역을 봅니다.
gdcloud zones list커스텀 리소스를 호스팅하는 영역의 이름을 기록해 둡니다.
ZONE환경 변수를 조직 인프라 클러스터를 호스팅하는 영역으로 설정합니다.export ZONE="ZONE"ZONE을 영역 이름으로 바꿉니다.ORG_INFRA_CLUSTER환경 변수를 설정합니다.export ORG_INFRA_CLUSTER="ORG_NAME-infra"ORG_NAME을 조직 이름(예:org-1)으로 바꿉니다.타겟 영역의 조직 인프라 클러스터 kubeconfig 파일을 생성하고 사용자 인증 정보를 확인합니다.
export KUBECONFIG=${HOME}/${ORG_INFRA_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${ORG_INFRA_CLUSTER:?} --zone ${ZONE:?} [[ $(kubectl config current-context) == *${ORG_INFRA_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"rm ${KUBECONFIG:?}명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.
시스템 트러스트 번들에 커스텀 CA 추가
trust-store-root-ext 시스템 트러스트 번들에 커스텀 CA를 추가하려면 커스텀 CA 리소스를 준비한 후 조직 인프라 클러스터에 적용해야 합니다.
커스텀 CA PEM 파일의 환경 변수를 설정합니다.
export CUSTOM_CA_PEM_FILE=CUSTOM_CA_PEM_FILECUSTOM_CA_PEM_FILE을 PEM 형식으로 인코딩된 커스텀 CA 인증서가 포함된 파일의 경로로 바꿉니다.base64를 사용하여 CA 인증서를 인코딩합니다.
export ENCODED_CA=$(cat "${CUSTOM_CA_PEM_FILE:?}" | base64 -w 0)trust-store-root-ext시스템 트러스트 번들을 타겟팅하는 보안 비밀 YAML 파일 (custom-ca.yaml)을 만듭니다.cat > custom-ca.yaml <<EOF apiVersion: v1 kind: Secret metadata: annotations: security.private.gdc.goog/bundles: trust-store-root-ext name: custom-ca namespace: cert-manager data: ca.crt: ${ENCODED_CA:?} EOF다음은
custom-ca.yaml파일의 예시입니다.apiVersion: v1 kind: Secret metadata: annotations: security.private.gdc.goog/bundles: trust-store-root-ext name: custom-ca namespace: cert-manager data: ca.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSU...LQWZRSUE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==kubectl명령어를 사용하여 조직 인프라 클러스터에 보안 비밀을 적용합니다.kubectl apply -f custom-ca.yaml --kubeconfig ${KUBECONFIG:?}이 단계에서는
trust-store-root-ext및trust-store-global-root-ext트러스트 번들을 자동으로 업데이트하여 GDC 서비스에서 커스텀 CA를 사용할 수 있도록 합니다.
CA가 사용 가능한지 확인
커스텀 CA가 트러스트 번들에 추가되었는지 확인합니다.
GDC 트러스트 번들 가져오기의 단계에 따라 최신 버전의
trust-store-root-ext트러스트 번들을 다운로드합니다.다른 영역에서 커스텀 CA를 가져오려면
trust-store-global-root-ext트러스트 번들을 사용하세요.다운로드한 트러스트 번들 파일을 열고
CUSTOM_CA_PEM_FILE로 지정된 각 커스텀 CA 인증서가 있는지 확인합니다.각 커스텀 CA 인증서를 개별적으로 검색합니다. 표시되는 순서는 다를 수 있으며 목록 끝에 표시된다고 보장할 수는 없습니다.
다음은
trust-store-root-ext의 예시를 보여줍니다.-----BEGIN CERTIFICATE----- MIIC8DCCAdigAwIBAgIQPLOPa... -----END CERTIFICATE----- ... other CAs ... -----BEGIN CERTIFICATE----- < Imported CA data> -----END CERTIFICATE----- ... other CAs ... -----BEGIN CERTIFICATE----- MIIDAzCCAeugAwIBAgIRAIV2... -----END CERTIFICATE-----