이 문서에서는 ABAP SDK for Google Cloud SAP BTP 버전에서 Google Cloud에 인증을 수행하는 방법을 설명합니다.
ABAP SDK for Google Cloud SAP BTP 버전을 사용하여 개발된 애플리케이션은 Google Cloud API에 연결하기 위해 인증이 필요합니다.
Google Cloud API에 액세스하기 위한 인증 및 승인을 위해 SDK는 주로 토큰을 사용합니다. 또한 SDK에서 API 키를 사용하는 Google Cloud API에 인증하는 데 API 키를 사용할 수 있습니다. 일부 Google Cloud API만 인증에 API 키를 사용합니다. 예를 들면 Google Maps Platform이 있습니다. 사용하려는 서비스나 API에 대한 인증 문서를 검토하여 API 키 지원 여부를 확인합니다.
액세스해야 하는 Google Cloud API에 따라 적합한 인증 방법을 선택할 수 있습니다. 다음 목록은 SDK에서 지원하는 다양한 인증 방법을 요약해서 보여줍니다.
워크로드 아이덴티티 제휴를 통해 토큰을 사용하여 인증
워크로드 아이덴티티 제휴는 OAuth 2.0 토큰 교환 사양을 따릅니다. ID 공급업체(IdP)의 사용자 인증 정보를 보안 토큰 서비스에 제공하면, 보안 토큰 서비스는 사용자 인증 정보에서 ID를 확인한 후에 대가로 제휴 토큰을 반환합니다. 이 토큰을 사용하여 서비스 계정을 가장하고 단기 OAuth 2.0 액세스 토큰을 받을 수 있습니다. 단기 액세스 토큰을 사용하면 서비스 계정이 액세스할 수 있는 모든 Google Cloud API를 호출할 수 있습니다.
워크로드 아이덴티티 제휴를 통해 토큰을 사용해서 인증하려면 다음 Google Cloud API를 사용 설정합니다.
Google Cloud API를 사용 설정하는 방법은 API 사용 설정을 참조하세요.
워크로드 아이덴티티 제휴를 통해 토큰을 사용하여 인증하기 위한 대략적인 구성 단계는 다음과 같습니다.
- SAP BTP에서 승인 및 트러스트(XSUAA) 서비스 인스턴스를 만듭니다.
- Google Cloud에서 서비스 계정을 만듭니다.
- Google Cloud에서 워크로드 아이덴티티 제휴를 구성합니다.
- SAP BTP에서 워크로드 아이덴티티 제휴를 사용하도록 ABAP SDK for Google Cloud를 구성합니다.
승인 및 트러스트(XSUAA) 서비스 인스턴스 만들기
백엔드 애플리케이션에 필수 서비스를 제공하려면 다음 단계를 수행하여 승인 및 트러스트(XSUAA) 서비스 인스턴스를 만듭니다.
- SAP BTP Cockpit에 로그인합니다. 자세한 내용은 SAP 페이지 Cockpit에 액세스를 참조하세요.
- 하위 계정을 선택합니다.
XSUAA 서비스 인스턴스를 만듭니다.
- 서비스 > 서비스 마켓플레이스로 이동합니다.
- 승인 및 트러스트 관리 서비스(XSUAA)를 검색하고 선택합니다.
- 만들기를 클릭합니다.
표시된 새 인스턴스 또는 구독 대화상자에서 다음 필드의 값을 입력합니다.
- 계획: 애플리케이션을 선택합니다.
- 런타임 환경: Cloud Foundry를 선택합니다.
- 스페이스: 스페이스 이름을 선택합니다.
- 인스턴스 이름: XSUAA 서비스 인스턴스의 이름을 입력합니다.
만들기를 클릭합니다.
서비스 키를 만듭니다.
- 인스턴스 및 구독 > 인스턴스로 이동합니다.
- 이전 단계에서 만든 XSUAA 서비스 인스턴스를 선택하고 서비스 키 탭을 클릭합니다.
- 만들기를 클릭합니다.
- 서비스 키 이름을 입력하고 만들기를 클릭합니다.
- 새로 만든 서비스 키에 대해 작업( ) 메뉴를 클릭하고 보기를 선택합니다.
서비스 키 사용자 인증 정보에서 다음을 기록해 둡니다.
url
clientid
clientsecret
Google Cloud에 인증을 구성할 때 이 서비스 키 사용자 인증 정보가 필요합니다.
서비스 계정 만들기
Google Cloud 콘솔에서 IAM 서비스 계정을 만듭니다. 이 서비스 계정은 SDK를 사용할 예정인 Google Cloud API가 포함된 Google Cloud 프로젝트의 주 구성원이어야 합니다.
Google Cloud 콘솔에서 서비스 계정을 만들려는 프로젝트를 선택합니다.
Google Cloud API가 포함된 동일한 프로젝트에서 서비스 계정을 만들면 서비스 계정이 자동으로 프로젝트에 주 구성원으로 추가됩니다.
Google Cloud API가 사용 설정된 프로젝트 이외의 다른 프로젝트에 서비스 계정을 만드는 경우 추가 단계에서 서비스 계정을 해당 프로젝트에 추가해야 합니다. 자세한 내용은 Google Cloud 프로젝트에 서비스 계정 추가를 참조하세요.
Google Cloud API에 액세스하도록 인증 및 승인을 위한 서비스 계정을 만듭니다.
서비스 계정을 만드는 방법에 대한 자세한 내용은 서비스 계정 만들기를 참조하세요.
Google Cloud 콘솔에서 API 기능에 액세스하는 데 필요한 IAM 역할을 서비스 계정에 부여합니다. Google Cloud API의 역할 요구사항을 이해하려면 개별 API 참고 리소스를 참조하고 최소 권한 원칙을 따릅니다. API별 사전 정의된 역할에 대한 자세한 내용은 IAM 기본 및 사전 정의된 역할 참조를 확인하세요.
SDK를 사용할 예정인 Google Cloud API가 포함된 프로젝트가 아닌 다른 프로젝트에 서비스 계정을 만든 경우 이 서비스 계정의 이름을 기록해 둡니다. 해당 프로젝트에 서비스 계정을 추가할 때 이 이름을 지정합니다.
Google Cloud 프로젝트에 서비스 계정 추가
SDK를 사용할 예정인 Google Cloud API가 포함된 프로젝트가 아닌 다른 프로젝트에서 ABAP SDK for Google Cloud의 서비스 계정을 만든 경우 Google Cloud API가 포함된 Google Cloud 프로젝트로 서비스 계정을 추가해야 합니다.
Google Cloud API가 포함된 동일한 프로젝트에서 서비스 계정을 만든 경우 이 단계를 건너뛸 수 있습니다.
Google Cloud API가 포함된 Google Cloud 프로젝트에 기존 서비스 계정을 추가하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 IAM 권한 페이지로 이동합니다.
대상 Google Cloud API가 포함된 프로젝트의 이름이 페이지 상단 근처에 표시되는지 확인합니다. 예를 들면 다음과 같습니다.
'
PROJECT_NAME
' 프로젝트의 권한표시되지 않은 경우 프로젝트를 전환합니다.
IAM 권한 페이지에서
액세스 권한 부여를 클릭합니다.표시된 '
PROJECT_NAME
'에 액세스 권한 부여 대화상자에서 다음 단계를 수행합니다.- 새 주 구성원 필드에서 서비스 계정의 이름을 지정합니다.
역할 선택 필드에 관련 역할을 지정합니다. 예를 들어 Pub/Sub의 경우 주제 및 구독을 수정하고 메시지를 게시하고 사용할 수 있는 액세스 권한을 부여하려면 Pub/Sub 편집자(
roles/pubsub.editor
) 역할을 지정하면 됩니다.API별 사전 정의된 역할에 대한 자세한 내용은 IAM 기본 및 사전 정의된 역할 참조를 확인하세요.
API 사용에 필요한 추가 역할을 추가합니다. 최소 권한 원칙을 구현하는 것이 좋습니다.
저장을 클릭합니다. IAM 페이지의 프로젝트 주 구성원 목록에 서비스 계정이 표시됩니다.
이제 서비스 계정을 사용하여 이 프로젝트의 Google Cloud API에 액세스할 수 있습니다.
워크로드 아이덴티티 제휴 구성
워크로드 아이덴티티 제휴를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청합니다.
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
워크로드 아이덴티티 제휴를 구성하려면 다음 단계를 수행합니다.
Google Cloud 콘솔에서 새 워크로드 공급업체 및 풀 페이지로 이동합니다.
ID 풀 만들기 섹션에서 다음 필드의 값을 입력합니다.
- 이름: 풀의 이름입니다. 이 이름은 풀 ID로도 사용됩니다. 풀 ID는 나중에 변경할 수 없습니다.
- 설명: 풀의 목적을 설명하는 텍스트입니다.
계속을 클릭합니다.
풀에 공급업체 추가에서 공급업체 설정을 추가합니다.
- 공급업체 선택 필드에서 OpenID Connect(OIDC)를 선택합니다.
다음 공급업체 세부정보를 입력합니다.
- 공급업체 이름: 공급업체의 이름을 입력합니다.
- 발급기관(URL): XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 URL을 입력합니다. URL에
/oauth/token
을 추가합니다. - 대상: 허용된 대상을 선택하고 XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 ID를 입력합니다.
계속을 클릭합니다.
공급업체 속성 구성의 OIDC 1 필드에
assertion.sub
를 입력합니다.저장을 클릭합니다.
다음을 기록해 둡니다.
- 풀 ID
- 제공업체 ID
SDK 구성 Fiori 앱에서 인증을 구성할 때 이 ID가 필요합니다.
외부 ID의 서비스 계정 가장 허용
제휴 워크로드에서 서비스 계정을 가장하려면 서비스 계정에 대한 워크로드 아이덴티티 사용자(roles/iam.workloadIdentityUser
) 권한을 부여합니다. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
외부 ID가 서비스 계정을 가장하도록 허용하려면 다음을 수행합니다.
Google Cloud 콘솔에서 워크로드 아이덴티티 풀 페이지로 이동합니다.
워크로드 아이덴티티 제휴 구성 섹션에서 만든 워크로드 아이덴티티 풀을 선택합니다.
워크로드 아이덴티티 풀에 액세스 권한을 부여하려면
액세스 권한 부여를 클릭합니다.서비스 계정 목록에서 Google Cloud API에 대해 액세스 권한이 있는 서비스 계정을 선택합니다. 여러 서비스 계정을 사용하는 경우 모두 여기에 추가합니다.
속성 이름 필드에서 제목을 선택합니다.
속성 값 필드에 XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 ID를 입력합니다.
저장을 클릭합니다.
표시된 애플리케이션 구성 대화상자에서 닫기를 클릭합니다.
워크로드 아이덴티티 제휴를 사용하도록 ABAP SDK for Google Cloud 구성
SAP 통신 관리 앱을 사용하여 통신 관리 아티팩트를 만듭니다.
XSUAA 서비스 및 워크로드 아이덴티티 제휴를 사용하여 인증에 대해 통신 관리 아티팩트를 만들려면 ABAP SDK for Google Cloud에 제공된 통신 시나리오 /GOOG/COM_SDK_WIF
를 사용합니다.
나중에 SDK 구성 Fiori 앱을 사용해서 통신 맵을 만듭니다. 통신 맵에서 Google Cloud 인증을 위해 ABAP 프로그램에서 사용하는 고유한 클라이언트 키를 정의합니다.
- ABAP SDK for Google Cloud가 설치된 BTP ABAP 시스템의 SAP Fiori 런치패드에 액세스합니다.
- 모든 공간 > 관리 > 통신 관리로 이동합니다.
- 통신 시스템을 만듭니다.
- 통신 시스템 앱을 엽니다.
- 새로 만들기를 클릭합니다.
- 표시된 새 통신 시스템 대화상자에서 다음 필드의 값을 입력합니다.
- 시스템 ID: 시스템 ID를 입력합니다.
- 시스템 이름: 시스템 이름을 입력합니다.
- 만들기를 클릭합니다.
- 호스트 이름 필드에 XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 URL을
https://
없이 입력합니다. - 포트 입력란에
443
을 입력합니다. - 아웃바운드 통신 사용자 탭에서 추가를 클릭합니다.
- 다음 세부정보를 제공합니다.
- 인증 방법: 사용자 이름 및 비밀번호를 선택합니다.
- 사용자 이름/클라이언트 ID: XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 ID를 입력합니다.
- 비밀번호: XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 보안 비밀번호를 입력합니다.
- 저장을 클릭합니다.
통신 계약을 만듭니다.
- 통신 계약 앱을 엽니다.
- 새로 만들기를 클릭합니다.
표시된 새 통신 계약 대화상자에서 다음 필드의 값을 입력합니다.
- 시나리오: 워크로드 아이덴티티 제휴를 사용하여 인증(
/GOOG/COM_SDK_WIF
)을 선택합니다. - 계약 이름: 통신 계약의 이름을 입력합니다.
- 시나리오: 워크로드 아이덴티티 제휴를 사용하여 인증(
만들기를 클릭합니다.
표시된 통신 계약의 통신 시스템 필드에서 이전 단계에서 만든 통신 시스템을 선택합니다.
워크로드 아이덴티티 제휴 구성 섹션에서 다음 세부정보를 제공합니다.
- 워크로드 아이덴티티 제휴 풀 ID: 워크로드 아이덴티티 제휴 풀 ID를 입력합니다.
- 워크로드 아이덴티티 제휴 공급업체 ID: 워크로드 아이덴티티 제휴 공급업체 ID를 입력합니다.
아웃바운드 서비스의 경로 필드에
/oauth/token
을 입력합니다.저장을 클릭합니다.
클라이언트 키와 통신 맵을 만듭니다.
- SDK 구성을 위한 Fiori 앱이 있는 공간으로 이동합니다.
- Google SDK: 기본 구성 앱을 엽니다.
- 만들기를 클릭합니다.
- 표시된 만들기 대화상자에서 클라이언트 키 이름을 입력합니다.
- 계속을 클릭합니다.
- 다음 세부정보를 제공합니다.
- 표시되는 통신 지도에 대해 통신 계약 필드에 이전 단계에서 만든 통신 계약을 선택합니다.
- 만들기를 클릭합니다. 표준 Google Cloud 약관 아래에 ABAP SDK for Google Cloud 사용 동의를 확인하는 대화상자가 나타납니다.
- 인증 구성을 검증하려면 연결 확인을 클릭합니다. 항목의 녹색 체크표시는 구성이 성공했음을 나타냅니다. 오류가 있으면 문제 해결 페이지로 이동하여 일반적인 오류 해결 안내를 따릅니다.
Secret Manager에 저장된 API 키를 사용하여 인증
Google Cloud 인증을 위해 API 키를 사용할 때는 Google Cloud의 Secret Manager 서비스로 API 키를 안전하게 저장할 수 있습니다.
Secret Manager에 저장된 API 키를 사용하여 인증하려면 다음 Google Cloud API를 사용 설정합니다.
Google Cloud API를 사용 설정하는 방법은 API 사용 설정을 참조하세요.
Secret Manager 및 워크로드 아이덴티티 제휴를 구성하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.
- Secret Manager 관리자 역할(
roles/secretmanager.admin
) - 워크로드 아이덴티티 풀 관리자(
roles/iam.workloadIdentityPoolAdmin
) - 서비스 계정 관리자(
roles/iam.serviceAccountAdmin
)
Secret Manager에 저장된 API 키를 사용하여 인증하기 위한 대략적인 구성 단계는 다음과 같습니다.
- SAP BTP에서 승인 및 트러스트(XSUAA) 서비스 인스턴스를 만듭니다.
- Google Cloud에서 서비스 계정을 만듭니다.
- Google Cloud에서 워크로드 아이덴티티 제휴를 구성합니다.
- Google Cloud에서 API 키를 만듭니다.
- Google Cloud에서 보안 비밀을 만들고 API 키를 저장합니다.
- SAP BTP에서 Secret Manager의 API 키를 사용하도록 ABAP SDK for Google Cloud를 구성합니다.
Secret Manager에 저장된 API 키를 사용하여 인증할 때는 토큰 사용 인증을 위해 만든 XSUAA 서비스 인스턴스, 서비스 계정, 워크로드 아이덴티티 제휴 풀, 제공업체를 재사용할 수 있습니다.
API 키 만들기
API 키를 사용하여 인증하려면 API 키를 만들어야 합니다.
API 키 문자열은 AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe
와 같은 암호화된 문자열입니다.
ABAP SDK for Google Cloud는 HTTP 요청의 API 키 문자열을 사용하여 Google Cloud API를 호출할 때 안전하게 인증합니다.
Google Cloud는 API 키를 만드는 여러 방법을 제공합니다.
Google Cloud 콘솔을 사용하여 API 키를 만들려면 다음 단계를 수행하세요.
Google Cloud 콘솔에서 사용자 인증 정보 페이지로 이동합니다.
사용자 인증 정보 만들기를 클릭하고 메뉴에서 API 키를 선택합니다.
API 키 생성 완료 대화상자에 API 키 문자열이 표시됩니다. 키 문자열을 복사하여 안전하게 보관해야 합니다. Google Cloud 인증을 구성하려면 이 API 키가 필요합니다.
기본적으로 API 키는 제한되지 않습니다. API 키를 사용할 수 있는 API를 선택하여 API 키를 제한하는 것이 좋습니다. API 제한사항을 추가하는 방법은 API 제한사항 추가를 참조하세요.
보안 비밀 만들기 및 API 키 저장
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
보안 비밀 만들기를 클릭합니다.
보안 비밀 만들기 페이지에서 이름에 보안 비밀 이름을 입력합니다. 보안 비밀 이름은 대문자, 소문자, 숫자, 하이픈, 밑줄을 포함할 수 있습니다. 이름의 최대 허용 길이는 255자입니다.
보안 비밀 값 필드에 API 키 만들기 섹션에서 만든 API 키를 입력합니다.
보안 비밀 만들기를 클릭합니다. 보안 비밀 콘텐츠는 보안 비밀 버전에 저장됩니다.
만든 보안 비밀의 이름을 클릭합니다.
열린 버전 탭에서 다음을 기록해 둡니다.
- 보안 비밀 이름
- 버전
Google Cloud 인증을 구성할 때 이 보안 비밀 세부정보가 필요합니다.
Secret Manager의 API 키를 사용하도록 ABAP SDK for Google Cloud 구성
SAP 통신 관리 앱을 사용하여 통신 관리 아티팩트를 만듭니다.
XSUAA 서비스 및 워크로드 아이덴티티 제휴를 사용하여 인증에 대해 통신 관리 아티팩트를 만들려면 ABAP SDK for Google Cloud에 제공된 통신 시나리오 /GOOG/COM_SDK_APIKSM
를 사용합니다.
나중에 SDK 구성 Fiori 앱을 사용해서 통신 맵을 만듭니다. 통신 맵에서 Google Cloud 인증을 위해 ABAP 프로그램에서 사용하는 고유한 클라이언트 키를 정의합니다.
- ABAP SDK for Google Cloud가 설치된 BTP ABAP 시스템의 SAP Fiori 런치패드에 액세스합니다.
- 모든 공간 > 관리 > 통신 관리로 이동합니다.
- 통신 시스템을 만듭니다.
- 통신 시스템 앱을 엽니다.
- 새로 만들기를 클릭합니다.
- 표시된 새 통신 시스템 대화상자에서 다음 필드의 값을 입력합니다.
- 시스템 ID: 시스템 ID를 입력합니다.
- 시스템 이름: 시스템 이름을 입력합니다.
- 만들기를 클릭합니다.
- 호스트 이름 필드에 XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 URL을
https://
없이 입력합니다. - 포트 입력란에
443
을 입력합니다. - 아웃바운드 통신 사용자 탭에서 추가를 클릭합니다.
- 다음 세부정보를 제공합니다.
- 인증 방법: 사용자 이름 및 비밀번호를 선택합니다.
- 사용자 이름/클라이언트 ID: XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 ID를 입력합니다.
- 비밀번호: XSUAA 서비스 인스턴스를 만들었을 때 기록해 둔 서비스 키 사용자 인증 정보의 클라이언트 보안 비밀번호를 입력합니다.
- 저장을 클릭합니다.
통신 계약을 만듭니다.
- 통신 계약 앱을 엽니다.
- 새로 만들기를 클릭합니다.
표시된 새 통신 계약 대화상자에서 다음 세부정보를 입력합니다.
- 시나리오: Secret Manager에서 API 키를 사용하여 인증(
/GOOG/COM_SDK_APIKSM
)을 선택합니다. - 계약 이름: 통신 계약의 이름을 입력합니다.
- 시나리오: Secret Manager에서 API 키를 사용하여 인증(
만들기를 클릭합니다.
표시된 통신 계약의 통신 시스템 필드에서 이전 단계에서 만든 통신 시스템을 선택합니다.
추가 속성 아래에 다음 속성의 값을 제공합니다.
- 보안 비밀 이름: 보안 비밀 만들기 및 API 키 저장 섹션의 보안 비밀 이름을 입력합니다.
- 보안 비밀 버전: 선택적으로 보안 비밀 만들기 및 API 키 저장 섹션의 보안 비밀의 버전을 입력합니다. 버전을 제공하지 않으면 최근 보안 비밀 버전의 API 키가 사용됩니다.
- 워크로드 아이덴티티 제휴 풀 ID: 워크로드 아이덴티티 제휴 구성 섹션의 워크로드 아이덴티티 제휴 풀 ID를 입력합니다.
- 워크로드 아이덴티티 제휴 공급업체 ID: 워크로드 아이덴티티 제휴 구성 섹션의 워크로드 아이덴티티 제휴 공급업체 ID를 입력합니다.
아웃바운드 서비스의 경로 필드에
/oauth/token
을 입력합니다.저장을 클릭합니다.
클라이언트 키와 통신 맵을 만듭니다.
- SDK 구성을 위한 Fiori 앱이 있는 공간으로 이동합니다.
- Google SDK: 기본 구성 앱을 엽니다.
- 만들기를 클릭합니다.
- 표시된 만들기 대화상자에서 클라이언트 키 이름을 입력합니다.
- 계속을 클릭합니다.
다음 세부정보를 제공합니다.
표시되는 통신 지도에 대해 통신 계약 필드에 이전 단계에서 만든 통신 계약을 선택합니다.
만들기를 클릭합니다. 표준 Google Cloud 약관 아래에 ABAP SDK for Google Cloud 사용 동의를 확인하는 대화상자가 나타납니다.
인증 구성을 검증하려면 연결 확인을 클릭합니다. 항목의 녹색 체크표시는 구성이 성공했음을 나타냅니다. 오류가 있으면 문제 해결 페이지로 이동하여 일반적인 오류 해결 안내를 따릅니다.
지원 받기
ABAP SDK for Google Cloud 문제를 해결하는 데 도움이 필요한 경우 다음을 수행하세요.
Cloud 포럼의 커뮤니티에서 ABAP SDK for Google Cloud에 대해 질문하고 논의합니다.
사용 가능한 모든 진단 정보를 수집하여 Cloud Customer Care에 문의합니다. Customer Care 문의 정보는 Google Cloud 기반 SAP 지원 받기를 참조하세요.