Google BigQuery, Google Cloud Pub/Sub및 Google Cloud Storage 연결에 대한 워크로드 ID 연합은 OpenID Connect (OIDC) 또는 SAML 2.0을 지원하는 ID 제공자가 지원합니다.
이 예제는 Amazon Cognito를 사용하는 AWS 및 Microsoft Azure용입니다.
AWS
Amazon Cognito에서 워크로드 ID 연합 구성
Amazon 문서의 지시사항에 따라 Cognito를 사용하여 OIDC ID 제공자 (IdP) 를 작성하십시오.
자세한 내용은 Amazon Cognito 시작하기를 참조하세요.
AWS 콘솔을 사용하여 IdP 에서 그룹 및 사용자를 작성하십시오. 또는 AWS CLI를 사용할 수 있습니다.
CLIENT_ID=YourClientId ISSUER_URL=https://cognito-idp.YourRegion.amazonaws.com/YourPoolId POOL_ID=YourPoolId USERNAME=YourUsername PASSWORD=YourPassword GROUPNAME=YourGroupName aws cognito-idp admin-create-user --user-pool-id $POOL_ID --username $USERNAME --temporary-password Temp-Pass1 aws cognito-idp admin-set-user-password --user-pool-id $POOL_ID --username $USERNAME --password $PASSWORD --permanent aws cognito-idp create-group --group-name $GROUPNAME --user-pool-id $POOL_ID aws cognito-idp admin-add-user-to-group --user-pool-id $POOL_ID --username $USERNAME --group-name $GROUPNAME
AWS 콘솔에서 호스팅된 UI 보기 를 클릭하고 브라우저에서 IDP UI에 로그인하여 새 비밀번호 인증 확인이 해결되었는지 확인하십시오.
AWS CLI를 사용하여 IdToken 을 가져오십시오.
aws cognito-idp admin-initiate-auth --auth-flow ADMIN_USER_PASSWORD_AUTH --client-id $CLIENT_ID --auth-parameters USERNAME=$USERNAME,PASSWORD=$PASSWORD --user-pool-id $POOL_ID
Amazon Cognito 사용자 풀 인증 흐름에 대한 자세한 내용은 AdminInitiateAuth 참조하세요.
Amazon Cognito에 대한 Google Cloud 구성
Google Cloud에서 제공자를 작성할 때 다음 설정을 사용하십시오.
- 발행자 (URL) 를
https://cognito-idp.YourRegion.amazonaws.com/YourPoolId
로 설정하십시오. - 허용된 대상 을 클라이언트 ID로 설정하십시오.
- 속성 맵핑에서
google.subject
를assertion.sub
에 맵핑하십시오.
Amazon Cognito 워크로드 ID 연합과의 연결 작성
액세스 토큰이 있는 워크로드 ID 연합 인증 방법을 선택하십시오.
보안 토큰 서비스 대상 필드의 경우 다음 형식을 사용하십시오.
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
서비스 계정 이메일에 대해 위장할 Google 서비스 계정의 이메일 주소를 입력하십시오. 자세한 내용은 외부 워크로드에 대한 서비스 계정 만들기를 참조하세요.
(선택사항) 서비스 계정 토큰 수명 의 값을 초 단위로 지정하십시오. 서비스 계정 액세스 토큰의 기본 수명은 1시간입니다. 자세한 내용은 URL 소스 자격 증명을 참조하세요.
토큰 형식 을
Text
로 설정하십시오.토큰 유형 을
ID token
로 설정하십시오.
Azure
Azure 에서 워크로드 ID 연합 구성
애플리케이션의 애플리케이션 ID URI 를 설정하십시오. 기본 애플리케이션 ID URI (
api://APPID
) 를 사용하거나 사용자 정의 URI를 지정할 수 있습니다.
관리 ID 작성에 대한 지시사항을 건너뛸 수 있습니다.지침에 따라 새 애플리케이션 비밀번호를 생성하여 REST API로 액세스 토큰을 받습니다.
자세한 내용은 Azure 사용하여 워크로드 ID 페더레이션 구성을 참조하세요.
Azure 에 대해 Google Cloud 구성
- 지침을 따릅니다: 워크로드 ID 페더레이션 구성하기.
- 지침을 따릅니다: 워크로드 ID 풀 및 공급자를 생성합니다. 제공자를 구성할 때 다음 설정을 사용하십시오.
- 발행자 (URL) 를
https://sts.windows.net/TENANTID/
로 설정하십시오. 여기서TENANTID
는 Azure Active Directory를 설정할 때 수신한 테넌트 ID입니다. - 허용된 대상 을 앱 등록을 설정할 때 받은 클라이언트 ID로 설정하십시오. 또는 Azure에서 애플리케이션 ID를 설정할 때 사용한 다른 애플리케이션 ID URI 를 지정하십시오.
- 속성 맵핑에서
google.subject
를assertion.sub
에 맵핑하십시오.
- 발행자 (URL) 를
Azure 워크로드 ID 연합과의 연결 작성
다음 인증 방법 중 하나를 선택하십시오.
- 액세스 토큰을 포함하는 워크로드 ID 연합
- 토큰 URL을 포함하는 워크로드 ID 연합
보안 토큰 서비스 대상 필드에는 REST API를 사용하는 워크로드 인증에 설명된 형식을 사용합니다. 예를 들어,
//iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
서비스 계정 이메일에 대해 위장할 Google 서비스 계정의 이메일 주소를 입력하십시오. 자세한 내용은 외부 워크로드에 대한 서비스 계정 만들기를 참조하세요.
(선택사항) 서비스 계정 토큰 수명 의 값을 초 단위로 지정하십시오. 서비스 계정 액세스 토큰의 기본 수명은 1시간입니다. 자세한 내용은 URL 소스 자격 증명을 참조하세요.
Workload Identity Federation with token URL을 지정한 경우 다음 값을 사용하십시오.
- 토큰 URL:
https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token
. 이 URL은 Azure에서 토큰을 페치합니다. - HTTP 메소드:
POST
- HTTP 헤더:
"Content-Type"="application/x-www-form-urlencoded;charset=UTF-8","Accept"="application/json"
- 요청 본문:
grant_type=client_credentials&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&scope=APPLICATION_ID_URI/.default
- 토큰 URL:
토큰 유형의 경우, OpenID Connect (OIDC) 스펙을 준수하는 ID 제공자에 대해 ID 토큰 을 선택하십시오. 자세한 내용은 토큰 유형을 참조하세요.
토큰 형식 옵션은 해당 인증 선택사항에 따라 다릅니다.
- 액세스 토큰이 있는 워크로드 ID 연합: 액세스 토큰 필드에 원시 토큰 값을 제공한 경우 텍스트 를 선택하십시오.
- 토큰 URL이 있는 워크로드 ID 연합:
access_token
필드에 리턴되는 액세스 토큰이 있는 JSON 형식의 토큰 URL로부터의 응답의 경우 다음 설정을 사용하십시오.- 토큰 형식:
JSON
- 토큰 필드 이름:
access_token
- 토큰 형식: