Google에서 인증

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 문서에서는 일부 키 인증 개념을 이해하고 인증 구현 또는 문제 해결 도움말을 확인할 수 있는 위치를 확인할 수 있습니다. 인증 문서의 주요 초점은 Google Cloud 서비스입니다. 그러나 이 페이지의 인증 사용 사례 목록과 소개 자료에는 다른 Google 제품의 사용 사례도 포함되어 있습니다.

소개

인증은 일종의 사용자 인증 정보를 사용하여 ID를 확인하는 프로세스입니다. 인증은 자신이 누구인지 증명하는 것입니다.

Google은 액세스를 위해 인증이 필요한 많은 API 및 서비스를 제공합니다. Google은 또한 고객이 작성한 애플리케이션을 호스팅하는 다양한 서비스를 제공합니다. 이러한 애플리케이션도 또한 해당 사용자의 ID를 확인해야 합니다.

용도 정보
고급 프로그래밍 언어를 사용하여 애플리케이션에서 Google Cloud 서비스에 인증합니다. 애플리케이션 기본 사용자 인증 정보를 설정하고 Cloud 클라이언트 라이브러리 중 하나를 사용합니다.
Cloud Run 또는 Cloud Functions에서 실행되는 애플리케이션에 인증합니다. OpenID Connect(OIDC) ID 토큰을 가져오고 이를 요청에 제공합니다.
Google 또는 Google Cloud 서비스 및 리소스에 액세스하는 애플리케이션에 대해 사용자 인증을 구현합니다. 옵션 비교는 애플리케이션 사용자 인증을 참조하세요.
로컬 개발 환경에서 일부 gcloud 명령어 또는 Google Cloud REST API 호출을 시도합니다. 로그인 사용자 인증 정보를 사용하여 애플리케이션 기본 사용자 인증 정보를 설정합니다. 그런 후 curl과 같은 명령줄 도구를 사용하여 REST API를 호출할 수 있습니다.
다른 인증 사용 사례의 도움말을 확인합니다. 인증 사용 사례 페이지를 참조하세요.
ID 및 액세스 관리 공간에서 Google이 제공하는 제품 목록을 참조하세요. Google ID 및 액세스 관리 제품 페이지를 참조하세요.

인증 유형

대부분의 리소스 및 애플리케이션에 액세스하기 위해서는 인증이 필요합니다. 이 문서에서는 다음 목표 중 하나에 따라 기술 실무자의 애플리케이션 코드 만들기를 지원합니다.

OAuth 2.0

Google API는 OAuth 2.0 프레임워크를 구현 및 확장합니다. OAuth 2.0 프레임워크는 다양한 인증 '흐름' 또는 인증 방법을 개략적으로 보여줍니다. 일반적으로 애플리케이션은 승인 서버라는 중간 모듈에 주 구성원(사용자 또는 서비스 계정)을 제공하는 사용자 인증 정보를 제공합니다. 승인 서버는 토큰으로 응답하며, 애플리케이션은 이를 사용하여 서비스에 인증하고 리소스에 액세스할 수 있습니다. 토큰에는 애플리케이션이 어떤 액세스를 허용하는지를 나타내는 하나 이상의 범위가 포함됩니다. 그런 다음 애플리케이션이 리소스에 대해 액세스를 얻기 위해 리소스 서버에 토큰을 제공합니다.

Google Cloud 서비스 승인

Google Cloud 서비스는 인증에 Identity and Access Management(IAM)를 사용합니다. IAM은 주 구성원 및 리소스별로 세부적인 제어를 제공합니다. Google Cloud 서비스에 인증할 때는 일반적으로 모든 Google Cloud 서비스(https://www.googleapis.com/auth/cloud-platform)가 포함된 범위를 사용합니다.

OAuth 2.0 범위는 모바일 앱과 같이 토큰 보안이 중요한 환경에서 코드가 실행되는 경우에 유용한 두 번째 보호 레이어를 제공합니다. 이 시나리오에서는 토큰이 손상된 경우 위험을 줄이기 위해 더 세분화된 범위를 사용할 수 있습니다. OAuth 2.0 범위는 사용자 데이터에 대한 액세스를 승인하는 데에도 사용됩니다.

애플리케이션 기본 사용자 인증 정보(ADC)

ADC는 애플리케이션 환경을 기준으로 사용자 인증 정보를 자동으로 검색하고 이러한 사용자 인증 정보를 사용해서 Google Cloud API에 인증하기 위해 Cloud 클라이언트 라이브러리 및 Google API 클라이언트 라이브러리에 사용되는 전략입니다. ADC를 설정하고 클라이언트 라이브러리를 사용할 때는 Google Cloud 서비스 및 API에 대한 애플리케이션 인증 방법을 변경하지 않고 개발 또는 프로덕션 환경에서 코드를 실행할 수 있습니다.

Google Cloud 서비스를 사용해야 하는 코드를 작성하는 경우 가능한 경우에 ADC를 사용해야 합니다. ADC를 사용하는 경우 다양한 환경에서 동일한 인증 코드를 사용할 수 있기 때문에 개발 프로세스를 간소화할 수 있습니다.

코드를 실행할 위치에 따라 사용자 인증 정보를 제공하여 ADC를 구성합니다. ADC에 사용자 인증 정보를 제공한 후 ADC가 자동으로 사용자 인증 정보를 찾고 백그라운드에서 토큰을 가져와서 인증 코드가 서로 다른 환경에서 수정 없이 실행되도록 합니다. 예를 들어 개발 워크스테이션 또는 Compute Engine을 실행할 때 동일한 코드 버전을 사용하여 Google Cloud API에 인증할 수 있습니다.

용어

인증 및 승인에 대해 논의할 때는 다음 용어를 이해하는 것이 중요합니다.

인증

인증은 리소스 액세스를 시도하는 주 구성원의 ID를 확인하는 프로세스입니다.

승인

승인은 리소스 액세스를 시도하는 주 구성원 또는 애플리케이션에 해당 수준의 액세스가 승인되었는지 여부를 확인하는 프로세스입니다.

사용자 인증 정보

인증에서 사용자 인증 정보는 ID 증명을 제공하는 디지털 객체입니다. 애플리케이션 요구사항에 따라 비밀번호, PIN, 생체 인식 데이터 모두 사용자 인증 정보로 사용될 수 있습니다. 예를 들어 Google 계정에 로그인할 때 사용자는 해당 계정이 실제로 사용자에게 속하는 계정이고 사용자가 악의적인 행위자에 의해 스푸핑되고 있지 않음을 입증하는 증거로 비밀번호를 제공하고 2단계 인증 요구사항을 충족시킵니다.

토큰은 사용자 인증 정보라고 불리기도 하지만 이 문서에서는 대신 호출자가 적절한 사용자 인증 정보를 제공했음을 입증하는 디지털 객체라고 부릅니다. 토큰 자체는 사용자 인증 정보가 아닙니다.

제공해야 하는 사용자 인증 정보 유형은 인증하려는 대상에 따라 달라집니다. Google Cloud Console에서는 다음 유형의 사용자 인증 정보를 만들 수 있습니다.

  • API 키

    다른 사용자 인증 정보와 달리 API 키는 주 구성원을 식별하지 않습니다. API 키는 청구 및 할당 목적으로 Google Cloud 프로젝트를 제공합니다.

    많은 Google API에서 API 키가 허용되지 않습니다. API 키에 대한 자세한 내용은 API 키를 참조하세요.

  • OAuth 클라이언트 ID

    OAuth 클라이언트 ID는 Google에서 애플리케이션을 식별하기 위해 사용됩니다. 이 ID는 3-legged OAuth(3LO)로도 불리는, 최종 사용자 소유의 리소스에 액세스하려고 할 때 필요합니다. OAuth 클라이언트 ID를 가져오고 사용하는 방법에 대한 자세한 내용은 OAuth 2.0 설정을 참조하세요.

주 구성원

주 구성원은 리소스에 대해 액세스가 부여될 수 있는 ID입니다. 인증을 위해 Google API는 사용자 계정서비스 계정의 두 가지 유형의 주 구성원을 지원합니다.

인증에 사용자 계정 또는 서비스 계정을 사용할지는 사용 사례에 따라 달라집니다. 프로젝트의 서로 다른 단계에서 또는 서로 다른 개발 환경에서 두 계정을 각각 사용할 수 있습니다.

사용자 계정

사용자 계정은 Google API 및 서비스와 상호작용하는 개발자, 관리자, 기타 사용자를 나타냅니다.

사용자 계정은 Google Workspace 또는 Cloud ID에서 Google 계정으로 관리됩니다. 또한 타사 ID 공급업체에 의해 관리되고 직원 ID 제휴로 제휴되는 사용자 계정일 수 있습니다.

사용자 계정의 경우 다음 방법으로 Google API 및 서비스에 인증할 수 있습니다.

서비스 계정

서비스 계정은 사람인 사용자를 나타내지 않는 계정입니다. 서비스 계정은 애플리케이션에 Google Cloud 리소스 액세스가 필요할 때와 같이 사람이 직접 관련되지 않은 경우의 인증 및 승인을 관리하기 위한 방법을 제공합니다. 서비스 계정은 IAM에 의해 관리됩니다.

다음 목록은 보안 수준인 높은 것부터 낮은 것까지 Google API 및 서비스에 인증하기 위해 서비스 계정을 사용하는 몇 가지 방법을 제공합니다.

토큰

인증 및 승인에서 토큰은 호출자가 해당 토큰에 대해 교환된 적절한 사용자 인증 정보를 제공했음을 보여 주는 디지털 객체입니다. 토큰에는 요청을 수행하는 주 구성원의 ID 및 이들에게 허용된 액세스 종류에 관한 정보가 포함되어 있습니다.

토큰은 호텔 키와 같은 역할을 수행합니다. 호텔에 체크인할 때 호텔 리셉션 데스크에 적절한 문서를 제출하면 특정 호텔 시설에 액세스할 수 있는 키를 받습니다. 예를 들어 이 키를 통해 객실과 손님용 엘리베이터를 이용할 수 있지만 다른 객실이나 서비스용 엘리베이터는 이용할 수 있습니다.

API 키를 제외하고 Google API는 사용자 인증 정보를 직접 지원하지 않습니다. 애플리케이션은 토큰을 획득하거나 생성하고 이를 API에 제공해야 합니다. 여기에는 여러 가지 유형의 토큰이 있습니다. 자세한 내용은 토큰 유형을 참조하세요.

워크로드 및 직원

Google Cloud ID 및 액세스 제품은 프로그래매틱 액세스 및 사람 사용자에 대해 Google 서비스 및 리소스에 대한 액세스를 사용 설정합니다. Google은 프로그래매틱 액세스에 워크로드라는 용어를 사용하고 사용자 액세스에 직원이라는 용어를 사용합니다.

워크로드 아이덴티티 제휴를 사용하면 서비스 계정 키를 만들고 관리할 필요 없이 Google 외부에서 실행되는 워크로드에 액세스를 제공할 수 있습니다.

직원 ID 제휴를 사용하면 IAM을 사용하여 직원, 파트너, 계약업체와 같은 사용자 그룹에 대해 직원을 인증 및 승인할 수 있으며, 이렇게 해서 사용자가 Google Cloud 서비스에 액세스할 수 있습니다.

다음 단계