이 문서에서는 워크로드 아이덴티티 제휴를 통해 토큰을 사용하여 Google Cloud에 인증하는 방법을 설명합니다. 워크로드 아이덴티티 제휴를 사용하면 서비스 계정 키를 사용하지 않고 온프레미스 또는 멀티 클라우드 SAP 워크로드에 Google Cloud 리소스에 대한 액세스 권한을 부여할 수 있습니다. Amazon Web Services(AWS) 또는 OpenID Connect(OIDC)를 지원하는 ID 공급업체(IdP, 예를 들어 Microsoft Azure 또는 SAML 2.0)에서 워크로드 아이덴티티 제휴를 사용할 수 있습니다.
워크로드 아이덴티티 제휴는 OAuth 2.0 토큰 교환 사양을 따릅니다. IdP의 사용자 인증 정보를 보안 토큰 서비스에 제공하면, 보안 토큰 서비스는 사용자 인증 정보에서 ID를 확인한 후에 대가로 액세스 토큰을 반환합니다. 이 토큰을 사용하여 서비스 계정을 가장하고 단기 액세스 토큰을 가져올 수 있습니다. 단기 액세스 토큰을 사용하면 서비스 계정이 액세스할 수 있는 모든 Google Cloud API를 호출할 수 있습니다.
워크로드 아이덴티티 제휴를 통해 토큰을 사용하여 인증하기 위한 대략적인 구성 단계는 다음과 같습니다.
- 외부 IdP를 준비합니다.
- Google Cloud에서 워크로드 아이덴티티 제휴를 구성합니다.
- Google Cloud에서 서비스 계정을 만듭니다.
- Google Cloud에서 외부 워크로드가 서비스 계정을 가장하도록 허용합니다.
- ABAP SDK for Google Cloud에서 ABAP 코드를 구현하여 IdP에서 보안 토큰을 검색합니다.
- ABAP SDK for Google Cloud에서 클라이언트 키를 구성합니다.
모든 Google Cloud 제품에서 워크로드 아이덴티티 제휴를 지원하지 않습니다. 워크로드 아이덴티티 제휴를 사용하여 인증을 설정하기 전에 지원되는 제품 및 제한사항 목록을 검토하세요. 자세한 내용은 직원 ID 제휴: 지원되는 제품 및 제한사항을 참조하세요.
외부 IdP 준비
SAP 워크로드가 Google OAuth 2.0 보안 토큰으로 교환할 수 있는 사용자 인증 정보를 가져올 수 있도록 IdP를 준비해야 합니다.
외부 IdP를 준비하려면 IdP에 따라 다음 단계를 수행합니다.
- AWS 또는 Azure를 IdP로 사용하는 경우 안내에 따라 외부 IdP를 준비합니다.
- 다른 IdP를 사용하는 경우 안내에 따라 외부 IdP를 준비합니다.
워크로드 아이덴티티 제휴 구성
Google Cloud에서 워크로드 아이덴티티 풀과 제공업체를 구성합니다.
외부 ID를 관리할 수 있는 항목인 ID 풀을 구성합니다. 또한 Google Cloud와 IdP 사이의 관계를 설명하는 항목인 워크로드 아이덴티티 풀 제공업체를 구성합니다.
워크로드 아이덴티티 제휴를 구성하려면 외부 IdP에 따라 다음 단계를 수행합니다.
- AWS 또는 Azure를 IdP로 사용하는 경우 안내에 따라 워크로드 아이덴티티 풀과 공급업체를 만듭니다.
- 다른 IdP를 사용하는 경우 안내에 따라 워크로드 아이덴티티 풀과 공급업체를 만듭니다.
다음을 기록해 둡니다.
- 프로젝트 번호: 워크로드 아이덴티티 풀을 만든 Google Cloud 프로젝트의 프로젝트 번호입니다.
- 풀 ID: 워크로드 아이덴티티 풀을 식별하는 고유 ID입니다.
- 제공업체 ID: 워크로드 아이덴티티 풀 제공업체를 식별하는 ID입니다.
ABAP SDK 클라이언트 키 구성에 필요합니다.
서비스 계정 만들기
Google Cloud 콘솔에서 전용 IAM 서비스 계정을 만들어 Google Cloud API에 액세스합니다. 이 서비스 계정은 SDK를 사용할 예정인 Google Cloud API가 포함된 Google Cloud 프로젝트의 주 구성원이어야 합니다.
Google Cloud 콘솔에서 IAM Service Account Credentials API, Security Token Service API, SDK를 사용해 액세스할 계획인 기타 모든 지원 API를 사용 설정합니다.
Google Cloud API를 사용 설정하는 방법은 API 사용 설정을 참조하세요.
워크로드를 나타내는 서비스 계정을 만듭니다.
API 기능에 액세스하는 데 필요한 IAM 역할을 서비스 계정에 부여합니다. Google Cloud API의 역할 요구사항을 이해하려면 개별 API 참고 리소스를 참조하고 최소 권한 원칙을 따릅니다. API별 사전 정의된 역할에 대한 자세한 내용은 Google Cloud API의 IAM 역할 찾기를 참조하세요.
외부 워크로드가 서비스 계정을 가장하도록 허용
외부 워크로드가 서비스 계정을 가장하도록 허용하려면 외부 IdP에 따라 다음 단계를 수행합니다.
- AWS 또는 Azure를 IdP로 사용하는 경우 안내에 따라 외부 워크로드가 서비스 계정을 가장하도록 허용합니다.
- 다른 IdP를 사용하는 경우 안내에 따라 외부 워크로드가 서비스 계정을 가장하도록 허용합니다.
ABAP 코드를 구현하여 IdP에서 보안 토큰 검색
ABAP SDK for Google Cloud는 보안 토큰 서비스에서 OAuth 2.0 보안 토큰을 검색하고 IAM Service Account Credentials API에서 OAuth 2.0 액세스 토큰을 검색하는 로직이 있는 추상 클래스 /GOOG/CL_AUTH_WIF_BASE
를 제공합니다. 개발자는 추상 클래스 /GOOG/CL_AUTH_WIF_BASE
에서 상속되는 하위 클래스를 네임스페이스에 만들어야 합니다.
워크로드 아이덴티티 제휴를 사용하여 ABAP SDK for Google Cloud에서 Cloud Run Functions를 호출하기 위해 SDK에서 또 다른 추상 클래스 /GOOG/CL_AUTH_WIF_ID_TOKEN
을 제공합니다. 워크로드 아이덴티티 제휴를 사용하여 인증을 설정하는 경우 추상 클래스 /GOOG/CL_AUTH_WIF_ID_TOKEN
에서 상속되는 하위 클래스 하나 이상을 네임스페이스에 만들어야 합니다. Cloud Run Functions를 호출하도록 클라이언트 키를 구성하는 동안에 이 하위 클래스를 승인 클래스 필드에 지정합니다.
하위 클래스에서 GET_EXT_IDP_TOKEN
메서드를 구현하고 IdP에서 보안 토큰을 가져오도록 로직을 작성해야 합니다. 다음 필드를 채웁니다.
CV_TOKEN
: IdP에서string
형식으로 검색한 토큰입니다.CV_TOKEN_TYPE
: IdP에서 검색한 보안 토큰의 유형입니다. 지원되는 토큰 유형은 다음과 같습니다.urn:ietf:params:oauth:token-type:jwt
urn:ietf:params:oauth:token-type:id_token
urn:ietf:params:aws:token-type:aws4_request
urn:ietf:params:oauth:token-type:access_token
urn:ietf:params:oauth:token-type:saml2
CV_TOKEN
및 CV_TOKEN_TYPE
에 채워진 값은 추상 클래스 /GOOG/CL_AUTH_WIF_BASE
의 메서드에서 API 호출에 사용되는 최종 OAuth 2.0 토큰을 교환하고 검색하는 데 사용됩니다.
다음 예시에서는 AWS 및 Azure와 같은 다른 클라우드 제공업체에 대한 GET_EXT_IDP_TOKEN
메서드의 샘플 구현을 보여줍니다.
AWS
Azure
클라이언트 키 구성
-
SAP GUI에서 트랜잭션 코드
/GOOG/SDK_IMG
를 실행합니다.또는 트랜잭션 코드
SPRO
를 실행한 후 SAP 참조 IMG를 클릭합니다. - ABAP SDK for Google Cloud > 기본 설정 > 클라이언트 키 구성을 클릭합니다.
- 새 항목을 클릭합니다.
다음 필드에 값을 입력합니다.
필드 설명 Google Cloud 키 이름 클라이언트 키 구성의 이름을 지정합니다. Google Cloud 서비스 계정 이름 서비스 계정 만들기 단계에서 Google Cloud API에 액세스하도록 만든 서비스 계정의 이름을 이메일 주소 형식으로 지정합니다. 예를 들면 sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
입니다.Google Cloud 범위 이 입력란은 비워둡니다. Google Cloud 프로젝트 식별자 워크로드 아이덴티티 풀을 만든 Google Cloud 프로젝트의 ID를 지정합니다. 명령어 이름 이 입력란은 비워둡니다. 승인 클래스 /GOOG/CL_AUTH_WIF_BASE
클래스 구현이 포함된 하위 클래스를 지정합니다. 자세한 내용은 ABAP 코드를 구현하여 IdP에서 보안 토큰 검색을 참조하세요.토큰 캐싱 이 입력란은 비워둡니다. 토큰 새로고침 시간(초) 이 입력란은 비워둡니다. 승인 매개변수 1 워크로드 아이덴티티 풀 ID를 지정합니다. 승인 매개변수 2 워크로드 아이덴티티 공급업체 ID를 지정합니다. 항목을 저장합니다.
지원 받기
ABAP SDK for Google Cloud 문제를 해결하는 데 도움이 필요한 경우 다음을 수행하세요.
Cloud 포럼의 커뮤니티에서 ABAP SDK for Google Cloud에 대해 질문하고 논의합니다.
사용 가능한 모든 진단 정보를 수집하여 Cloud Customer Care에 문의합니다. Customer Care 문의 정보는 Google Cloud 기반 SAP 지원 받기를 참조하세요.