이 문서에서는 인증 라이브러리(auth 라이브러리라고 함)와 함께 워크로드 아이덴티티 제휴 를 사용하여 AWS, Microsoft Azure, OpenID Connect(OIDC) 또는 SAML 2.0을 지원하는 공급업체와 같은 서드 파티 ID 공급업체의 워크로드를 인증하는 방법을 보여줍니다. Google Cloud
워크로드 아이덴티티 제휴를 사용하면 외부에서 실행되는 애플리케이션에서 Google Cloud 서비스 계정 키를 사용하지 않고도 리소스에 Google Cloud 액세스할 수 있습니다. Google 인증 라이브러리는 외부 사용자 인증 정보를 단기 Google Cloud 액세스 토큰으로 교환하여 이 기능을 지원합니다.
인증을 위해 다음 방법을 사용하여 외부 사용자 인증 정보를 가져올 수 있습니다.
- 일반적인 설정의 표준 메커니즘
- 자체 코드를 작성해야 하는 복잡한 워크플로를 위한 커스텀 사용자 인증 정보 공급업체
시작하기 전에
필요한 API를 사용 설정합니다.
API 사용 설정에 필요한 역할
API를 사용 설정하려면
serviceusage.services.enable권한이 필요합니다. 프로젝트를 만든 경우 소유자 역할 (roles/owner)을 통해 이 권한을 이미 보유하고 있을 가능성이 높습니다. 그렇지 않은 경우 서비스 사용량 관리자 역할 (roles/serviceusage.serviceUsageAdmin)을 통해 이 권한을 가져올 수 있습니다. 역할을 부여하는 방법을 알아보세요.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환경 변수를 설정하면 클라이언트 라이브러리가 인증 흐름을 처리합니다.
다음 코드 샘플에서는 인증된 API에 대한 호출을 수행하는 방법을 보여줍니다. 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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
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에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 로컬 개발 환경의 인증 설정을 참조하세요.
다음 단계
- 워크로드 아이덴티티 제휴 자세히 알아보기