토큰 개요

이 문서와 토큰 유형 문서에서는 인증 및 승인을 위해 Google Cloud 에서 사용하는 여러 토큰을 다룹니다. 이러한 샘플은 토큰 기반 인증의 작동 방식을 알아보거나 Cloud 클라이언트 라이브러리를 사용하지 않고 인증을 구현하려는 사용자를 위해 제공됩니다.

Cloud 클라이언트 라이브러리, Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 Google CloudAPI와 상호작용할 때는 이 정보를 알 필요가 없습니다. 올바른 유형의 토큰을 선택하고 이러한 토큰을 획득하고 새로고침하는 프로세스가 자동으로 처리됩니다.

사용자 인증

인간 사용자가 Google Cloud와 상호작용할 때는Google Cloud API와 직접 상호작용하지 않습니다. 대신 클라이언트를 사용하여 대신 작업을 실행합니다. 사용하는 클라이언트는 웹 애플리케이션, 데스크톱 애플리케이션 또는 Google Cloud CLI나 curl와 같은 유틸리티일 수 있습니다.

클라이언트가 요청을 하고 사용자가 요청을 하는 것이 아니므로 Google Cloud 사용자에게 직접 ID 정보를 요청하여 API를 사용할 권한이 있는지 확인할 수 없습니다. 대신 이 ID는 각 API 요청에 포함된 토큰 형태로 클라이언트를 통해 API에 전달됩니다.

사용자 인증 토큰은 다음 정보를 인코딩합니다.

  • 사용자의 ID입니다.

  • 클라이언트의 ID입니다.

  • 클라이언트가 사용자를 대신하여 행동할 수 있음을 보증합니다.

사용자를 인증하고 클라이언트를 승인하는 데는 다음 당사자가 관련됩니다.

  • 사용자

  • 사용자를 대신하여 작동하는 클라이언트입니다.

  • Google API가 클라이언트를 인증하는 데 사용하는 승인 서버

  • 클라이언트가 상호작용하는 Google Cloud API입니다.

클라이언트는 직접 토큰을 발급할 수 없습니다. 대신 승인 서버와 협력하여 다음을 수행해야 합니다.

  1. 사용자를 인증합니다.

  2. 클라이언트를 인증합니다.

  3. 클라이언트가 사용자를 대신하여 행동하도록 승인합니다.

  4. 클라이언트에 토큰을 발급합니다.

클라이언트를 통해 인증하는 사용자의 관계 다이어그램

Google 계정에 로그인하여 인증하는 사용자는 사용자 주 구성원입니다. 주 구성원에는 다음과 유사한 주 구성원 식별자가 있습니다.

user:alex@example.com

직원 ID 제휴 및 외부 ID 공급업체를 사용하여 인증하는 사용자는 직원 ID 풀 주 구성원입니다. 주 구성원에는 다음과 유사한 주 구성원 식별자가 있습니다.

principal://iam.googleapis.com/locations/global/workforcePools/POOL_ID/subject/raha@altostrat.com

워크로드 인증

일부 클라이언트는 자체적으로 Google API와 상호작용해야 합니다. 예를 들어 예약된 작업은 사람이 개입하지 않고 BigQuery 또는 Cloud Storage에서 데이터를 읽어야 할 수 있습니다.

무인으로 자체적으로 작동하는 클라이언트를 워크로드라고 합니다. 사용자 인증과 달리 워크로드 인증은 사용자 인증과 클라이언트 승인을 단일 단계로 결합합니다. 따라서 워크로드 인증 토큰은 클라이언트의 ID만 인코딩합니다.

워크로드 인증 및 승인에는 다음 당사자가 포함됩니다.

  • 클라이언트와 사용자 역할을 모두 수행하고 자체적으로 작동하는 워크로드

  • Google API가 클라이언트를 인증하는 데 사용하는 승인 서버

  • 클라이언트가 상호작용하는 Google Cloud API입니다.

Google Cloud API에 액세스하려면 클라이언트가 승인 서버와 협력하여 다음을 수행해야 합니다.

  1. 클라이언트를 인증합니다.

  2. 클라이언트를 승인합니다.

  3. 클라이언트에 토큰을 발급합니다.

클라이언트를 통해 인증하는 워크로드의 관계 다이어그램

인증된 워크로드를 주 구성원이라고도 하지만 워크로드는 사용자와 다른 주 구성원 식별자를 사용합니다.

서비스 계정을 사용하여 인증하는 워크로드는 서비스 계정 주 구성원입니다. 주 구성원에는 다음과 유사한 주 구성원 식별자가 있습니다.

serviceAccount:my-service-account@my-project.iam.gserviceaccount.com

워크로드 아이덴티티 제휴를 사용하여 인증하는 워크로드는 워크로드 아이덴티티 풀 주 구성원입니다. 주 구성원에는 다음과 유사한 주 구성원 식별자가 있습니다.

principal://iam.googleapis.com/projects/PROJECT_NAME/locations/global/workloadIdentityPools/POOL_ID/subject/SUBJECT_ATTRIBUTE_VALUE

승인 서버

Google Cloud 다른 Google 서비스와 특정 인증 및 승인 기능을 공유합니다. 공유 기능에는 Google 계정으로 로그인, OpenID Connect, OAuth 2.0 서비스가 포함되며, 이 서비스는 Google ID에서 제공합니다.

워크로드 아이덴티티 제휴 및 직원 ID 제휴와 같은 기타 인증 관련 서비스는 Google Cloud 에만 해당하며 다른 Google 서비스에는 사용할 수 없습니다.

이러한 분할로 인해 Google Cloud 는 두 개의 승인 서버를 사용합니다. 하나는 다른 Google 서비스와 공유되고 다른 하나는 Google Cloud에만 적용됩니다. 다음 표에서는 다양한 서버와 그 속성을 설명합니다.

승인 서버 인증 유형 인증 API 주 구성원
Google 승인 서버
  • 사용자 인증
  • 워크로드 인증
Google Cloud Identity and Access Management (IAM) 승인 서버
  • 사용자 인증
  • 워크로드 인증

승인 서버는 전역 서비스이며 모든 Google Cloud 리전에서 액세스할 수 있습니다. 하지만 일부 지역에는 두 승인 서버의 배포가 모두 포함되어 있지 않습니다.

  • Google 승인 서버는 일부 지역에서 사용할 수 있습니다.

  • Google Cloud IAM 승인 서버는 모든 리전에서 사용할 수 있습니다.

신뢰성을 최적화하려면 가능하면 Google Cloud IAM 승인 서버를 사용하세요.

다음 단계

토큰 유형에 대해 알아봅니다.