관리형 워크로드 아이덴티티를 사용하거나 사용하지 않고 백엔드 mTLS를 구현할 수 있습니다. 관리형 워크로드 아이덴티티가 없는 백엔드 mTLS에 대해 자세히 알아보려면 백엔드 인증 TLS 및 백엔드 mTLS 개요를 참고하세요.
이 문서에서는 관리형 워크로드 아이덴티티를 사용하여 애플리케이션 부하 분산기와 백엔드 간에 상호 TLS (mTLS)를 구현하는 방법을 간략하게 설명합니다. 관리형 워크로드 아이덴티티는 인증 기관 서비스의 X.509 인증서를 자동으로 프로비저닝하고 관리합니다.
이 문서의 정보는 다음 문서에 소개된 개념을 기반으로 합니다.
- 관리형 워크로드 아이덴티티 개요
- Secure Production Identity Framework For Everyone (SPIFFE)
- Certificate Authority Service
- 백엔드 인증 TLS 및 백엔드 mTLS 개요
부하 분산기의 관리형 워크로드 아이덴티티 소개
관리형 워크로드 아이덴티티가 없으면 백엔드 mTLS를 설정하기 위해 여러 리소스를 구성해야 합니다. 관리형 아이덴티티를 부하 분산기의 백엔드 서비스에 할당하면 관리형 워크로드 아이덴티티가 클라이언트 인증서, 트러스트 구성, 백엔드 인증 구성과 같은 mTLS에 필요한 리소스를 자동으로 만듭니다.
백엔드 mTLS의 경우 부하 분산기의 백엔드 서비스 리소스는 대상 워크로드인 백엔드에 자체 인증을 하는 소스 워크로드로 작동합니다.
SPIFFE ID로 표시되는 관리형 아이덴티티를 부하 분산기의 백엔드 서비스에 할당할 수 있습니다. Google Cloud 인증 기관 서비스는 SPIFFE ID의 X.509 인증서를 자동으로 프로비저닝합니다. SPIFFE ID의 이 X.509 인증서는 SPIFFE 확인 가능 ID 문서 (SVID)라고도 합니다. 부하 분산기의 백엔드 서비스와 백엔드는 SVID를 사용하여 mTLS 인증을 통해 서로를 인증합니다.
다음 다이어그램은 부하 분산기 (소스 워크로드)와 백엔드(대상 워크로드)가 관리형 워크로드 아이덴티티를 사용하여 서로 인증하는 것을 보여줍니다.
다음은 SPIFFE ID의 래퍼 역할을 하는 X.509-SVID의 예입니다. URI로 표현된 SPIFFE ID는 X.509 인증서의 주체 대체 이름 (SAN)에 인코딩됩니다.
Issuer:
C=US
O=Example Inc.
CN=Example CA
Validity:
Not Before: Jun 14 00:00:00 2025 GMT
Not After : Jun 16 00:00:00 2025 GMT
Subject (Distinguished Name):
C=US
O=Example Inc.
OU=Production
CN=api.example.com
Subject Public Key Info:
Public Key Algorithm: RSA Encryption
RSA Public-Key: (2048 bit)
X.509v3 Extensions:
Subject Alternative Name (SAN):
DNS: api.example.com
URI: spiffe://WORKLOAD_IDENTITY_POOL_ID.global.PROJECT_NUMBER.workload.id.goog/ns/NAMESPACE_ID/sa/MANAGED_IDENTITY_ID
이 출력에는 다음 값이 포함됩니다.
WORKLOAD_IDENTITY_POOL_ID: 워크로드 아이덴티티 풀 IDPROJECT_NUMBER:Google Cloud 프로젝트의 프로젝트 번호NAMESPACE_ID: 네임스페이스 IDMANAGED_IDENTITY_ID: 관리형 ID ID
관리형 워크로드 아이덴티티 사용의 이점
백엔드 mTLS에 관리형 워크로드 아이덴티티를 사용하면 다음과 같은 이점이 있습니다.
보안 강화: 워크로드 아이덴티티 풀에 가입하면 Google Cloud 로드 밸런서와 백엔드가 트러스트 도메인의 일부가 됩니다. 백엔드 mTLS와 함께 사용하면 부하 분산기와 백엔드 워크로드가 서로 인증합니다. 이 상호 인증은 승인되지 않은 워크로드가 서비스에 액세스하지 못하도록 하고 전송 중인 데이터를 암호화합니다.
자동 인증서 관리: 워크로드 증명이 완료되면Google Cloud 에서 워크로드 아이덴티티 풀의 트러스트 도메인에 참여하는 워크로드의 X.509 인증서를 자동으로 프로비저닝하고 순환합니다. X.509 인증서의 자동 관리로 인해 복잡하고 오류가 발생하기 쉬운 수동 인증서 관리 프로세스가 필요하지 않습니다.
상호 운용 가능한 ID: 워크로드 아이덴티티 풀은 분산 시스템 전반에서 ID를 관리하는 표준인 SPIFFE 프레임워크를 사용하여 최신 마이크로서비스 기반 아키텍처에서 인증 및 승인을 지원합니다.
중앙화된 거버넌스: 워크로드 아이덴티티 풀은 중앙 제어 지점을 제공합니다. 관리자는 트러스트 도메인을 정의하고 증명 정책을 설정하여 관리형 아이덴티티의 X.509 인증서를 수신할 수 있는 워크로드를 관리할 수 있습니다.
관리형 워크로드 아이덴티티를 사용하는 백엔드 mTLS 아키텍처
다음 구성요소는 관리형 워크로드 아이덴티티를 사용하여 백엔드 mTLS를 구현하기 위해 함께 작동합니다.
- 부하 분산기의 백엔드 서비스 (Compute Engine API)
- Identity and Access Management 신뢰 도메인 (Identity and Access Management API)
- 인증 기관 풀 (Certificate Authority Service API)
- 백엔드 인증 구성 (네트워크 보안 API)
- 인증서 관리자 트러스트 구성 (Certificate Manager API)
- 인증서 관리자 관리 ID 인증서(인증서 관리자 API)
다음 다이어그램은 부하 분산기의 백엔드 서비스에 있는 관리 ID를 보여줍니다. 이를 통해 부하 분산기는 백엔드에 자체 인증을 할 수 있습니다. 다이어그램에서 1~3단계는 명시적으로 생성된 리소스를 나타내고 4~5단계는 자동으로 생성된 리소스를 나타냅니다.
- 관리형 워크로드 아이덴티티에 인증서를 발급하도록 Certificate Authority Service CA 풀을 구성합니다.
- 워크로드 아이덴티티 풀을 만들어 트러스트 도메인을 구성합니다. 이 풀에는 네임스페이스, 관리 ID, 증명 정책, 인라인 인증서 발급 구성 리소스, 인라인 트러스트 구성 리소스가 필요합니다.
- 관리 ID로 부하 분산기의 백엔드 서비스를 구성합니다.
관리형 워크로드 아이덴티티는 인증서 관리자 관리형 아이덴티티 인증서와 인증서 관리자 트러스트 구성을 자동으로 만듭니다.
인증서 관리자 관리 ID 인증서는 워크로드 아이덴티티 풀의 인증서 발급 구성을 기반으로 생성됩니다. 인증서 관리자 트러스트 구성은 워크로드 아이덴티티 풀의 인라인 트러스트 구성과 동기화됩니다.
관리형 워크로드 아이덴티티는 백엔드 인증 구성을 자동으로 만듭니다.
인증서 관리자 트러스트 구성이 백엔드 인증 구성에 연결됩니다. 인증서 관리자 관리 ID 인증서 (X.509-SVID)도 백엔드 인증 구성에 연결되며, 이는 백엔드에 인증하는 데 사용됩니다.
관리형 아이덴티티를 사용한 백엔드 mTLS 구성에 대해 자세히 알아보려면 관리형 워크로드 아이덴티티를 사용하여 백엔드 mTLS 설정을 참고하세요.
관리 ID를 사용하여 백엔드 mTLS 중에 생성된 리소스
위의 아키텍처 다이어그램에 표시된 것처럼 백엔드 서비스에 관리 ID를 할당할 때는 백엔드 인증 구성, Certificate Manager 트러스트 구성, Certificate Manager 인증서를 구성할 필요가 없습니다. 이러한 리소스는 관리형 워크로드 아이덴티티에 의해 자동으로 생성됩니다.
이 섹션에서는 명시적으로 생성된 리소스와 자동으로 생성된 리소스에 중점을 두고 관리 ID 구성 프로세스의 여러 부분을 자세히 살펴봅니다.
명시적으로 생성된 리소스
관리형 워크로드 아이덴티티를 사용하여 백엔드 mTLS를 구성하는 동안 다음 리소스를 명시적으로 만들어야 합니다.
인증 기관 풀
부하 분산기의 관리형 워크로드 아이덴티티를 구성하려면 먼저 인증 기관을 구성해야 하며, 필요에 따라 하나 이상의 하위 CA를 구성할 수 있습니다. 이러한 설정을 CA 계층 구조라고 합니다.
CA 서비스 풀을 사용하여 이 계층 구조를 설정할 수 있습니다.
인라인 인증서 발급 구성으로 워크로드 아이덴티티 풀을 업데이트하여 워크로드 아이덴티티 풀이 CA 풀에 바인딩됩니다.
관리형 워크로드 아이덴티티
워크로드 아이덴티티 풀 네임스페이스에 관리형 워크로드 아이덴티티를 만들어야 합니다. 관리 ID는 로드 밸런서 워크로드에서 제공하는 SVID에 사용되는 완전히 지정된 SPIFFE ID입니다.
증명 정책
증명 정책에는 백엔드 서비스에 할당된 관리 ID에 대해 백엔드 서비스가 X.509 인증서를 수신할 수 있는지 확인하는 Google Cloud IAM 규칙이 포함되어 있습니다.
증명 정책 확인이 통과되면 IAM은 인증 기관 서비스에서 관리 ID의 X.509 인증서를 요청합니다. X.509 인증서는 관리 ID에 바인드된 CA 풀에서 생성됩니다. CA 서비스는 구성된 SPIFFE ID가 X.509 인증서에 반영되는 ID 반영을 통해 인증서를 프로비저닝합니다.
인라인 인증서 발급 구성
워크로드 아이덴티티 풀을 설정할 때 인라인 인증서 발급 구성을 구성합니다. 이 구성은 워크로드 아이덴티티 풀 내 ID의 X.509 인증서를 생성하는 데 사용되는 Certificate Authority Service 인스턴스의 CA 풀을 지정합니다. 구성 파일은 인증서의 전체 기간, 순환 기간 비율, 키 알고리즘도 지정합니다.
증명 정책 시행이 성공하면 CA 풀에서 관리형 워크로드 아이덴티티에 X.509 인증서를 발급합니다.
워크로드 아이덴티티 풀의 인라인 신뢰 구성
기본적으로 동일한 트러스트 도메인 내의 워크로드는 관리형 워크로드 아이덴티티를 사용하여 상호 인증할 수 있습니다. 서로 다른 트러스트 도메인에 있는 워크로드가 상호 인증하도록 하려면 워크로드 아이덴티티 풀에서 트러스트 관계를 명시적으로 선언해야 합니다. 다른 트러스트 도메인의 인증서를 인식하고 허용하는 인라인 트러스트 구성을 만들어 이를 수행합니다. 이러한 인증서는 신뢰 체인을 빌드하고 다른 도메인의 워크로드 ID를 확인하는 데 사용됩니다.
인라인 트러스트 구성에는 관리 워크로드 아이덴티티가 피어 인증서를 검증하는 데 사용하는 신뢰 앵커 집합이 포함되어 있습니다. Certificate Manager 신뢰 구성은 SPIFFE 신뢰 저장소를 캡슐화하며, 이는 워크로드 아이덴티티 풀의 인라인 신뢰 구성과 동기화된 상태로 유지됩니다.
워크로드 아이덴티티 풀이 CA 풀에 바인딩되어 있으므로 워크로드 아이덴티티 풀은 동일한 CA 풀의 루트 인증서를 자동으로 신뢰합니다. 신뢰가 이미 내장되어 있으므로 인라인 신뢰 구성에 풀의 CA 루트를 추가할 필요가 없습니다.
백엔드 서비스 (Compute Engine API)
관리 ID를 부하 분산기에 할당하려면 tlsSettings 속성이 새 identity 속성(backendService.tlsSettings.identity)을 가리키도록 부하 분산기의 백엔드 서비스를 구성해야 합니다.
부하 분산기의 백엔드 서비스에서 identity 필드를 사용할 때는 다음 제한사항이 적용됩니다.
identity속성을 설정하면tlsSettings속성에서 다음 필드를 수동으로 설정할 수 없습니다.tlsSettings.snitlsSettings.subjectAltNamestlsSettings.authenticationConfig
identity필드는 백엔드 서비스 생성 중에만 할당할 수 있습니다.identity필드는 변경할 수 없습니다. 부하 분산기의 백엔드 서비스에 할당한 후에는 업데이트하거나 삭제할 수 없습니다.
자동으로 생성된 리소스
부하 분산기의 백엔드 서비스에서 identity 속성 (backendService.tlsSettings.identity)을 설정하면 Certificate Manager API 및 Network Security API의 다음 리소스가 관리형 워크로드 아이덴티티에 의해 자동으로 생성됩니다.
자동으로 생성된 리소스는 백엔드 서비스와 동일한 프로젝트에서 생성되며 해당 프로젝트의 표준 할당량을 사용합니다.
인증서 관리자 트러스트 구성 (Certificate Manager API)
인증서 관리자 트러스트 구성은 자동으로 생성되며 직접 수정하거나 삭제할 수 없습니다.
인증서 관리자 트러스트 구성에는 spiffeTrustStores라는 필드가 포함됩니다. spiffeTrustStores 필드에는 워크로드 아이덴티티 풀의 트러스트 도메인과 연결된 트러스트 번들과 워크로드 아이덴티티 풀의 인라인 트러스트 구성에서 additionalTrustBundles 필드로 지정된 추가 트러스트 번들이 포함됩니다.
SPIFFE 인증서를 검증하기 위해 관리형 워크로드 아이덴티티를 사용하면 인증서 관리자 트러스트 구성의 spiffeTrustStores 필드가 자동으로 사용 설정됩니다. spiffeTrustStores 필드를 사용 설정해도 trustStores 필드는 비어 있습니다.
spiffeTrustStores 필드는 키-값 쌍이 다음과 같은 맵 데이터 구조입니다.
- 키는 워크로드 아이덴티티 풀과 관련된 트러스트 도메인(
.workload.id.goog로 끝나는 형식) 또는 추가 트러스트 도메인일 수 있습니다. - value는
TrustStore객체입니다. 이 객체에는 특정 트러스트 도메인의 SPIFFE 인증서를 검증하는 데 사용되는 신뢰할 수 있는 루트 인증서 모음 (트러스트 번들이라고 함)이 포함되어 있습니다.
기본적으로 이 맵을 사용하면 여러 개의 개별 보안 도메인의 저장소를 신뢰하도록 부하 분산기를 구성할 수 있습니다. 백엔드에서 인증서를 제공하면 부하 분산기는 SPIFFE ID를 추출하고, 신뢰 도메인을 식별하고, 맵을 사용하여 해당 인증서를 검증하는 데 필요한 올바른 트러스트 저장소를 조회합니다.
인증서 관리자 관리 ID 인증서 (인증서 관리자 API)
인증서 관리자 관리 ID 인증서는 관리형 워크로드 아이덴티티에 의해 자동으로 생성됩니다. Certificate Manager 관리 ID 인증서는 읽기 전용이며 Certificate Manager API를 사용하여 직접 수정하거나 삭제할 수 없습니다. 인증서 관리자 관리 ID 인증서는 워크로드 아이덴티티 풀에 정의된 인라인 인증서 발급 구성을 기반으로 합니다.
인증서 관리자 관리형 ID 인증서에는 관리형 ID 인증서로 식별하는 managedIdentity 속성이 있습니다. Certificate Manager 관리 ID 인증서 리소스는 PEM 인코딩 형식으로 X.509-SVID를 저장합니다. 이 X.509-SVID에는 SAN 필드에 URI로 인코딩된 SPIFFE ID가 포함되어 있습니다.
이 SPIFFE ID는 워크로드 아이덴티티 풀의 관리형 아이덴티티에 해당합니다.
인증서 관리자 관리 ID 인증서의 범위는 CLIENT_AUTH이며, 이 인증서가 백엔드 mTLS에서 클라이언트 인증서로 사용됨을 나타냅니다.
백엔드 인증 구성 (네트워크 보안 API)
백엔드 인증 구성은 관리형 워크로드 아이덴티티에 의해 자동으로 생성됩니다. 백엔드 인증 구성은 읽기 전용이며 Network Security API를 사용하여 직접 수정하거나 삭제할 수 없습니다.
인증서 관리자 트러스트 구성이 백엔드 인증 구성에 연결됩니다.
Certificate Manager 관리 ID 인증서도 백엔드 인증 구성에 연결되며 부하 분산기와 대상 워크로드 간의 백엔드 mTLS 요청에서 X.509-SVID로 사용됩니다.
제한사항
관리형 워크로드 아이덴티티를 사용하는 백엔드 mTLS는 전역 외부 애플리케이션 부하 분산기에만 구성할 수 있습니다. 기본 애플리케이션 부하 분산기는 백엔드 mTLS를 지원하지 않습니다.
글로벌 인터넷 NEG 백엔드에는 백엔드 mTLS가 지원되지 않습니다.
관리형 아이덴티티를 백엔드 서비스(
backendService.tlsSettings.identity)에 할당하는 경우 백엔드 서비스의tlsSettings속성에서 다음 필드를 수동으로 설정할 수 없습니다.backendService.tlsSettings.snibackendService.tlsSettings.subjectAltNamesbackendService.tlsSettings.authenticationConfig
관리형 아이덴티티는 백엔드 서비스 생성 시에만 할당할 수 있습니다.
관리 ID는 변경할 수 없습니다. 관리형 아이덴티티를 부하 분산기의 백엔드 서비스에 할당한 후에는 업데이트하거나 삭제할 수 없습니다.