이 문서에서는 Cloud Healthcare API에 프로그래매틱 방식으로 인증하는 방법을 설명합니다. Cloud Healthcare API 인증 방법은 코드가 실행되는 API 및 환경에 액세스하기 위해 사용하는 인터페이스에 따라 달라집니다.
Google Cloud 인증에 대한 자세한 내용은 인증 개요를 참조하세요.
API 액세스
Cloud Healthcare API에서는 프로그래매틱 방식으로 액세스를 지원합니다. 다음 방법으로 API에 액세스할 수 있습니다.
클라이언트 라이브러리
Google API 클라이언트 라이브러리에서는 프로그래매틱 방식으로 Cloud Healthcare API에 인증할 수 있도록 고급 언어를 지원합니다. Google Cloud API 호출을 인증하기 위해 클라이언트 라이브러리는 애플리케이션 기본 사용자 인증 정보(ADC)를 지원합니다. 라이브러리가 정의된 위치 집합에서 사용자 인증 정보를 찾고 이러한 사용자 인증 정보를 사용하여 API에 대한 요청을 인증합니다. ADC를 사용하면 애플리케이션 코드를 수정할 필요 없이 로컬 개발 또는 프로덕션과 같은 다양한 환경에서 애플리케이션에 사용자 인증 정보를 제공할 수 있습니다.
Google Cloud CLI
gcloud CLI를 사용하여 Cloud Healthcare API에 액세스할 때 gcloud CLI 명령어에서 사용하는 사용자 인증 정보를 제공하는 사용자 계정으로 gcloud CLI에 로그인합니다.
조직의 보안 정책으로 인해 사용자 계정에 필요한 권한이 없는 경우 서비스 계정 가장을 사용할 수 있습니다.
자세한 내용은 gcloud CLI 사용을 위한 인증을 참조하세요. Cloud Healthcare API에서 gcloud CLI 사용에 대한 자세한 내용은 gcloud CLI 참조 페이지를 확인하세요.
REST
gcloud CLI 사용자 인증 정보를 사용하거나 애플리케이션 기본 사용자 인증 정보를 사용하여 Cloud Healthcare API에 인증할 수 있습니다. REST 요청 인증에 대한 자세한 내용은 REST를 사용하여 인증을 참조하세요. 사용자 인증 정보 유형은 gcloud CLI 사용자 인증 정보 및 ADC 사용자 인증 정보를 참조하세요.
Cloud Healthcare API 인증 설정
인증 설정 방법은 코드를 실행 중인 환경에 따라 달라집니다.
인증 설정을 위한 가장 일반적인 옵션은 다음과 같습니다. 인증에 대한 추가 옵션 및 자세한 내용은 인증 방법을 참조하세요.
로컬 개발 환경용
다음 방법으로 로컬 개발 환경의 사용자 인증 정보를 설정할 수 있습니다.
클라이언트 라이브러리 또는 서드 파티 도구
로컬 환경에서 애플리케이션 기본 사용자 인증 정보(ADC)를 설정합니다.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
로그인 화면이 표시됩니다. 로그인하면 사용자 인증 정보는 ADC에서 사용하는 로컬 사용자 인증 정보 파일에 저장됩니다.
로컬 환경에서 ADC 사용에 대한 자세한 내용은 로컬 개발 환경을 참조하세요.
명령줄의 REST 요청
명령줄에서 REST 요청을 수행할 때는 요청을 전송하는 명령어의 일부로 gcloud auth print-access-token
을 포함하여 gcloud CLI 사용자 인증 정보를 사용할 수 있습니다.
다음 예시에서는 지정된 프로젝트에 대한 서비스 계정을 나열합니다. REST 요청에도 동일한 패턴을 사용할 수 있습니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: Google Cloud 프로젝트 ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
REST 및 gRPC를 사용하여 인증하는 방법에 대한 자세한 내용은 REST 사용을 위한 인증을 참조하세요. 로컬 ADC 사용자 인증 정보와 gcloud CLI 사용자 인증 정보의 차이점에 대한 자세한 내용은 gcloud CLI 사용자 인증 정보 및 ADC 사용자 인증 정보를 참조하세요.
Google Cloud
Google Cloud에서 실행되는 워크로드를 인증하려면 코드가 실행 중인 컴퓨팅 리소스(예: Compute Engine 가상 머신(VM) 인스턴스)에 연결된 서비스 계정의 사용자 인증 정보를 사용합니다. 이 방식은 Google Cloud 컴퓨팅 리소스에서 실행되는 코드에 선호되는 인증 방법입니다.
대부분의 서비스의 경우 코드를 실행할 리소스를 만들 때 서비스 계정을 연결해야 합니다. 이후에는 서비스 계정을 추가하거나 교체할 수 없습니다. 언제든지 VM 인스턴스에 서비스 계정을 연결할 수 있게 해주는 Compute Engine은 예외입니다.
gcloud CLI를 사용하여 서비스 계정을 만들고 리소스에 연결합니다.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
-
Set up authentication:
-
Create the service account:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Replace
SERVICE_ACCOUNT_NAME
with a name for the service account. -
To provide access to your project and your resources, grant a role to the service account:
gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountROLE
: the role to grant
- To grant another role to the service account, run the command as you did in the previous step.
-
Grant the required role to the principal that will attach the service account to other resources.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser
Replace the following:
SERVICE_ACCOUNT_NAME
: the name of the service accountPROJECT_ID
: the project ID where you created the service accountUSER_EMAIL
: the email address for a Google Account
-
-
코드를 실행할 리소스를 만들고 이 리소스에 서비스 계정을 연결합니다. 예를 들어 Compute Engine을 사용하는 경우 다음 안내를 따르세요.
Create a Compute Engine instance. Configure the instance as follows:INSTANCE_NAME
을 원하는 인스턴스 이름으로 바꿉니다.-
--zone
플래그를 인스턴스를 만들 영역으로 설정합니다. -
--service-account
플래그를 만든 서비스 계정의 이메일 주소로 설정합니다.
gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL
Google API 인증에 대한 자세한 내용은 인증 방법을 참조하세요.
온프레미스 또는 다른 클라우드 제공업체
Google Cloud 외부에서 인증을 설정하는 데 선호되는 방법은 워크로드 아이덴티티 제휴를 사용하는 것입니다. 자세한 내용은 인증 문서에서 온프레미스 또는 다른 클라우드 제공업체를 참조하세요.
Cloud Healthcare API 액세스 제어
Cloud Healthcare API에 인증한 후에는 Google Cloud 리소스에 액세스할 수 있는 권한을 승인해야 합니다. Cloud Healthcare API는 승인에 Identity and Access Management(IAM)를 사용합니다.
Cloud Healthcare API의 역할에 대한 자세한 내용은 IAM으로 액세스 제어를 참조하세요. IAM 및 승인에 대한 자세한 내용은 IAM 개요를 참조하세요.
JSON 웹 토큰(JWT)을 사용한 서비스 계정 승인
OAuth 2.0 액세스 토큰 대신 서명된 JSON 웹 토큰(JWT)을 Bearer 토큰으로 직접 사용하여 Cloud Healthcare API에 인증된 호출을 수행할 수 있습니다. Cloud Healthcare API에는 특정 토큰 생성 방법이 필요하지 않습니다. JWT.io에서 JWT를 만들기 위한 도우미 클라이언트 라이브러리 컬렉션을 찾을 수 있습니다. 서명된 JWT를 사용하면 API 호출을 수행하기 전에 Google의 승인 서버로 네트워크 요청을 수행할 필요가 없습니다.
JWT를 사용할 때 aud
필드에 https://healthcare.googleapis.com/
을 지정합니다.
OAuth 2.0 액세스 토큰 대신 JWT를 사용하여 Cloud Healthcare API 호출을 승인하려면 부록: OAuth 없이 서비스 계정 승인의 안내를 따르세요.
생성된 JWT는 다음 샘플과 유사합니다.
{ "alg": "RS256", "typ": "JWT", "kid": "PRIVATE_KEY_ID" } . { "iss": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com", "sub": "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com", "aud": "https://healthcare.googleapis.com/", "iat": CURRENT_UNIX_TIME, "exp": EXPIRATION_TIME }
다음 단계
- Google Cloud 인증 방법 알아보기
- 인증 사용 사례 목록 살펴보기