이 문서에서는 워크로드 아이덴티티 제휴를 Google Cloud 인증 라이브러리(인증 라이브러리라고 함)와 함께 사용하여 AWS, Microsoft Azure, OpenID Connect(OIDC) 또는 SAML 2.0을 지원하는 공급업체와 같은 서드 파티 ID 공급업체의 워크로드를 인증하는 방법을 보여줍니다.
워크로드 아이덴티티 제휴를 사용하면 Google Cloud외부에서 실행되는 애플리케이션이 서비스 계정 키를 사용하지 않고도 Google Cloud 리소스에 액세스할 수 있습니다. Google 인증 라이브러리는 외부 사용자 인증 정보를 사용 기간이 짧은 Google Cloud 액세스 토큰으로 교환하여 이를 지원합니다.
인증의 경우 다음 방법을 사용하여 외부 사용자 인증 정보를 가져올 수 있습니다.
- 일반적인 설정의 표준 메커니즘
- 자체 코드를 작성해야 하는 복잡한 워크플로를 위한 맞춤 사용자 인증 정보 공급자
시작하기 전에
Enable the required APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.ID 공급업체로 워크로드 아이덴티티 제휴를 구성합니다.
표준 사용자 인증 정보 메커니즘을 사용하여 인증
일반적으로 지원되는 서드 파티 ID 공급업체의 경우Google Cloud 인증 라이브러리의 기본 제공 기능을 사용하여 사용자 인증 정보 구성 파일을 생성하여 워크로드를 인증할 수 있습니다. 이 파일은 인증 라이브러리가 외부 제공업체의 ID를 제휴하는 데 필요한 정보를 제공합니다.
일반적으로 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 사용하여 로드되는 사용자 인증 정보 구성 파일은 다음 방법 중 하나를 사용하여 서드 파티 주체 토큰을 가져오도록 인증 라이브러리에 지시할 수 있습니다.
- 파일 소스: 라이브러리가 로컬 파일에서 주체 토큰을 읽습니다. 별도의 프로세스에서 이 파일에 유효하고 만료되지 않은 토큰이 포함되어 있는지 확인해야 합니다.
- URL 소스: 라이브러리는 지정된 로컬 URL 엔드포인트에 요청을 전송하여 주제 토큰을 가져옵니다.
- 실행 파일 소스: 라이브러리가 구성된 실행 파일 명령어를 실행합니다. 실행 파일의 표준 출력에는 주제 토큰이 포함되어야 합니다.
특정 제공업체의 사용자 인증 정보 구성 파일을 생성합니다.
사용자 인증 정보 구성 파일을 사용하여 인증합니다.
Google Cloud 클라이언트 라이브러리가 사용자 인증 정보 구성 파일을 자동으로 찾아 사용하도록 하려면
GOOGLE_APPLICATION_CREDENTIALS환경 변수를 생성된 JSON 파일의 경로로 설정합니다.셸에서 환경 변수를 내보냅니다.
bash export GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/config.json환경 변수를 설정하면 클라이언트 라이브러리에서 인증 흐름을 처리합니다.
다음 코드 샘플은 인증된 호출을 Google Cloud API에 만드는 방법을 보여줍니다.
Node.js
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Node.js API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Go
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Go API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
맞춤 사용자 인증 정보 공급자를 사용하여 인증
환경에서 Google 인증 라이브러리의 기본 제공 기능을 지원하지 않거나 Google 인증 라이브러리에 사용자 인증 정보를 제공하는 맞춤 로직을 구현하려는 경우 맞춤 사용자 인증 정보 공급자를 사용하여 워크로드를 인증하세요.
AWS에서 리소스 액세스
인증 클라이언트를 초기화할 때 사용자 인증 정보 공급자의 맞춤 구현을 제공합니다. 클라이언트 인스턴스는 공급자에게 AWS 보안 사용자 인증 정보를 가져와 Google Cloud 액세스 토큰으로 교환하도록 요청합니다. 공급업체는 클라이언트가 호출할 때 유효하고 만료되지 않은 사용자 인증 정보를 반환해야 합니다.
인증 클라이언트는 반환된 AWS 보안 사용자 인증 정보나 리전을 캐시하지 않으므로 동일한 리소스에 대한 중복 요청을 방지하기 위해 공급업체에서 캐싱을 구현하세요.
다음 코드 샘플은 맞춤 사용자 인증 정보 공급자를 사용하여 AWS에서 Google Cloud리소스에 대한 액세스를 설정하는 방법을 보여줍니다.
Node.js
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Node.js API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
OIDC 및 SAML에서 리소스 액세스
인증 클라이언트를 초기화할 때 맞춤 토큰 공급자를 제공하여 Google Cloud 액세스 토큰으로 교환되는 주제 토큰을 제공합니다. 공급자는 클라이언트가 호출할 때 유효하고 만료되지 않은 주제 토큰을 반환해야 합니다.
인증 클라이언트는 반환된 토큰을 캐시하지 않으므로 동일한 주제 토큰에 대한 중복 요청을 방지하기 위해 공급업체에서 캐싱을 구현하세요.
다음 코드 샘플은 맞춤 사용자 인증 정보 공급업체를 사용하여 OpenID Connect (OIDC) 또는 SAML 2.0을 지원하는 공급자로부터 Google Cloud리소스에 대한 액세스를 설정하는 방법을 보여줍니다.
Node.js
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Node.js API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
다음 단계
- 워크로드 아이덴티티 제휴 자세히 알아보기