Service Account Credentials API로 마이그레이션

Service Account Credentials API는 Identity and Access Management(IAM) 서비스 계정을 위해 단기 사용자 인증 정보를 만듭니다. 또한 이 API를 사용하여 다른 유형의 토큰을 포함하는 바이너리 데이터의 blob은 물론 JSON 웹 토큰(JWT)을 서명합니다.

IAM API에는 또한 JWT 및 바이너리 blob을 서명하기 위한 메서드가 포함되어 있습니다. 2020년 7월 1일을 기준으로 이러한 메서드는 REST API 및 IAM API를 위한 모든 클라이언트 라이브러리에서 지원이 중단됩니다. 또한 Google Cloud CLI를 사용하여 JWT를 서명하는 경우 새 클레임을 JWT 클레임 집합에 추가해야 할 수 있습니다. 지원 중단된 메서드를 계속 사용할 수 있지만 HTTP 요청 일괄 처리와 같은 고급 기능은 지원되지 않습니다. 대신 Service Account Credentials API로 마이그레이션하는 것이 좋습니다.

IAM API와 달리 Service Account Credentials API는 서명된 JWT의 만료 시간에 더 많은 유연성을 제공합니다. 또한 Service Account Credentials API는 여러 가지 새 API 메서드를 추가하여 명의 도용 토큰을 생성합니다.

이 페이지에서는 Service Account Credentials API를 사용하도록 기존 코드를 업데이트하는 방법을 설명합니다. 이 변경사항에 대한 의견이 있으면 의견 제출 양식을 작성하세요. 또한 이메일 주소 iam-sign-deprecation-public@google.com을 사용하여 지원을 요청하고 자세한 의견을 제공할 수 있습니다.

시작하기 전에

  • Enable the Service Account Credentials API.

    Enable the API

감사 로그 사용 설정

JWT 및 blob 서명 요청에 대해 감사 로그를 받으려면 IAM API에 대해 데이터 액세스 감사 로그를 사용 설정해야 합니다. IAM API에 대해 데이터 액세스 감사 로그를 사용 설정하면 Service Account Credentials API에 대한 감사 로그도 사용 설정됩니다.

각 API가 생성하는 로그 항목 사이에는 몇 가지 뚜렷한 차이가 있습니다.

감사 로그 항목 차이
메서드 이름

IAM API

메서드 이름(protoPayload.methodName)은 다음 중 하나입니다.

  • google.iam.admin.v1.SignBlob
  • google.iam.admin.v1.SignJwt

Service Account Credentials API

메서드 이름은 다음 중 하나입니다.

  • SignBlob
  • SignJwt
요청 유형

IAM API

요청 유형(protoPayload.request.@type)은 다음 중 하나입니다.

  • type.googleapis.com/google.iam.admin.v1.SignBlobRequest
  • type.googleapis.com/google.iam.admin.v1.SignJwtRequest

Service Account Credentials API

요청 유형은 다음 중 하나입니다.

  • type.googleapis.com/google.iam.credentials.v1.SignBlobRequest
  • type.googleapis.com/google.iam.credentials.v1.SignJwtRequest
서비스 이름

IAM API

서비스 이름(protoPayload.serviceName)은 iam.googleapis.com입니다.

Service Account Credentials API

서비스 이름은 iamcredentials.googleapis.com입니다.

데이터 액세스 감사 로그는 데이터 수집 로깅에 대한 월간 무료 할당량에서 차감됩니다. 이 할당량을 초과하면 로그 수집 비용이 청구됩니다. 자세한 내용은 Google Cloud Observability 가격 책정을 참조하세요.

JWT 서명을 위한 코드 마이그레이션

이 섹션에서는 JWT를 서명하는 코드를 Service Account Credentials API로 마이그레이션하는 방법을 설명합니다.

REST API로 JWT 서명

다음 표에서는 IAM REST API로 JWT를 서명하는 것Service Account Credentials API로 JWT를 서명하는 것 사이의 차이를 보여줍니다. 이러한 차이에 맞게 코드를 업데이트하세요.

JWT 서명의 차이점
HTTP 엔드포인트

IAM API

IAM API에는 다음과 같은 HTTP 메서드와 엔드포인트가 사용됩니다.

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signJwt

    이 URL에서 project-id는 프로젝트 ID이고 sa-email은 서비스 계정의 이메일 주소입니다.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

    이 URL에서 와일드 카드 문자 -는 프로젝트 ID의 위치를 가져오고 sa-email는 서비스 계정의 이메일 주소입니다.

Service Account Credentials API

다음 HTTP 메서드와 엔드포인트를 사용합니다. 와일드 카드 문자를 프로젝트 ID로 바꾸지 마세요.

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signJwt

이 URL에서 sa-email은 서비스 계정의 이메일 주소입니다.

요청 본문

IAM API

요청 본문에는 payload 필드가 포함됩니다. 값은 서명할 JWT 페이로드입니다. 페이로드는 JWT 클레임 집합을 포함하며 문자열로 직렬화되는 JSON 객체여야 합니다.

만료 시간(exp) 클레임을 제공할 경우 이후 12시간 이내여야 합니다. exp 클레임을 생략할 경우에는 이것이 자동으로 추가되지 않으며 이후 1시간으로 설정됩니다.

Service Account Credentials API

요청 본문에는 만료 시간(exp) 클레임의 동작을 제외하고 IAM API와 동일한 payload 필드가 포함됩니다.

  • exp 클레임을 제공할 경우에는 이후 12시간 이내여야 합니다.
  • exp 클레임을 생략하면 자동으로 추가되지 않습니다. Google API 또는 exp 클레임이 필요한 다른 API에 인증하기 위해 서명된 JWT를 사용하는 경우에는 이 클레임을 제공해야 합니다.
응답 본문

두 API 모두 응답 본문에서 동일한 필드가 사용됩니다.

클라이언트 라이브러리로 JWT 서명

Service Account Credentials API의 클라이언트 라이브러리는 IAM API의 클라이언트 라이브러리와 구분됩니다.

Service Account Credentials API를 사용하려면 해당 클라이언트 라이브러리를 애플리케이션에 추가하고 새 클라이언트 라이브러리를 사용하도록 코드를 업데이트합니다.

C#

C#용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. SignJwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

C#용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Go

Go용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. IamCredentialsClient.SignJwt() function을 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Go용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Java

자바용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. IamCredentialsClient#signJwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

자바용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Node.js

Node.js용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. signJwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Node.js용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

PHP

PHP용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. signJwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

PHP용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Python

Python용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. sign_jwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

iam_credentials 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Ruby

Ruby용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. sign_service_account_jwt() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ruby용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

바이너리 blob 서명을 위한 코드 마이그레이션

이 섹션에서는 바이너리 blob을 서명하는 코드를 Service Account Credentials API로 마이그레이션하는 방법을 설명합니다.

REST API로 바이너리 blob 서명

다음 표에서는 IAM REST API로 바이너리 blob을 서명하는 것Service Account Credentials API로 바이너리 blob을 서명하는 것 사이의 차이를 보여줍니다. 이러한 차이에 맞게 코드를 업데이트하세요.

바이너리 blob 서명의 차이점
HTTP 엔드포인트

IAM API

IAM API에는 다음과 같은 HTTP 메서드와 엔드포인트가 사용됩니다.

  • POST https://iam.googleapis.com/v1/projects/project-id/serviceAccounts/sa-email:signBlob

    이 URL에서 project-id는 프로젝트 ID이고 sa-email은 서비스 계정의 이메일 주소입니다.

  • POST https://iam.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

    이 URL에서 와일드 카드 문자 -는 프로젝트 ID의 위치를 가져오고 sa-email는 서비스 계정의 이메일 주소입니다.

Service Account Credentials API

다음 HTTP 메서드와 엔드포인트를 사용합니다. 와일드 카드 문자를 프로젝트 ID로 바꾸지 마세요.

POST https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/sa-email:signBlob

이 URL에서 sa-email은 서비스 계정의 이메일 주소입니다.

요청 본문

IAM API

요청 본문에는 bytesToSign 필드가 포함됩니다. 값은 서명할 바이너리 blob을 나타내는 base64 인코딩 문자열입니다.

Service Account Credentials API

요청 본문에는 IAM API의 bytesToSign 필드와 값이 동일한 payload 필드가 포함됩니다.

응답 본문

IAM API

응답 본문에는 blob을 서명하기 위해 사용된 키를 식별하는 keyId 필드와 서명을 나타내는 base64 인코딩 문자열을 포함하는 signature 필드가 있습니다.

Service Account Credentials API

응답 본문에는 IAM API의 keyId 필드와 동일한 keyId 필드는 물론 IAM API의 signature 필드와 동일한 signedBlob 필드가 포함됩니다.

클라이언트 라이브러리로 바이너리 blob 서명

Service Account Credentials API의 클라이언트 라이브러리는 IAM API의 클라이언트 라이브러리와 구분됩니다.

Service Account Credentials API를 사용하려면 해당 클라이언트 라이브러리를 애플리케이션에 추가하고 새 클라이언트 라이브러리를 사용하도록 코드를 업데이트합니다.

C++

Cloud Storage C++ 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

google-cloud-cpp의 0.9.0 이상 버전으로 업그레이드합니다.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

C#

C#용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

C#용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. SignBlob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

C#용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 Firebase Admin DotNet SDK를 사용하는 경우:

firebase-admin-dotnet의 1.17.1 이상 버전으로 업그레이드하세요.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

Go

Go용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

Go용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. IamCredentialsClient.SignBlob() function을 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Go용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 Firebase Admin GO SDK를 사용하는 경우:

firebase-admin-go의 4.1.0 이상 버전으로 업그레이드하세요.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

Java

자바용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

자바용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. IamCredentialsClient#signBlob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

자바용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

자바용 Google 인증 라이브러리를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

google-auth-library-java의 0.14.0 이상 버전으로 업그레이드하세요.

직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 Firebase Admin 자바 SDK를 사용하는 경우:

firebase-admin-java의 7.0.1 이상 버전으로 업그레이드하세요.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

Node.js

Node.js용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

Node.js용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. signBlob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Node.js용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Node.js용 Google 인증 라이브러리를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

google-auth-library-nodejs의 6.0.0 이상 버전으로 업그레이드하세요.

Firebase Admin Node.js SDK를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

firebase-admin-node의 8.13.0 이상 버전으로 업그레이드하세요.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

PHP

PHP용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

PHP용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. signBlob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

PHP용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

PHP용 Google 인증 라이브러리를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

google-auth-library-php의 1.5.0 이상 버전으로 업그레이드합니다.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

Python

Python용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

Python용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. sign_blob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

iam_credentials 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

Python용 Google 인증 라이브러리를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

google-auth-library-python의 1.21.2 버전 이상으로 업그레이드합니다.

Cloud Storage용 Python 클라이언트를 사용하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 사용하는 경우:

python-storage의 1.30.0 버전 이상으로 업그레이드합니다.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

Ruby

Ruby용 IAM 클라이언트 라이브러리를 사용하여 blob에 서명하거나 직접 또는 다른 클라이언트 라이브러리의 종속 항목으로 지정하는 경우:

Ruby용 서비스 계정 사용자 인증 정보 클라이언트 라이브러리를 애플리케이션에 추가합니다. sign_service_account_blob() 메서드를 사용하여 서명을 생성합니다.

서비스 계정의 이름은 프로젝트 ID를 나타내기 위해 와일드 카드 문자 -를 사용해야 합니다.

올바른 예시: 와일드 카드 문자가 포함된 이름

projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

잘못된 예시: 프로젝트 ID가 포함된 이름

projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

Ruby용 IAM 클라이언트 라이브러리를 더 이상 사용하지 않는 경우에는 애플리케이션에서 삭제할 수 있습니다.

다른 클라이언트 라이브러리를 사용하여 blob에 서명하는 경우:

지원 문의 iam-sign-deprecation-public@google.com

gcloud CLI를 사용하는 코드 마이그레이션

Google Cloud CLI는 다음을 포함하여, JWT 및 바이너리 blob을 서명하기 위해 IAM API를 사용하는 명령어를 제공합니다.

2021년 7월 1일부터는 Service Account Credentials API를 사용하도록 이러한 명령어가 업데이트됩니다. 이 변경사항은 blob 서명을 위한 명령어에 영향을 주지 않습니다.

gcloud CLI를 사용하여 JWT를 서명하는 경우에는 2021년 7월 1일 전까지 다음 단계를 완료해야 합니다.

  1. JWT 클레임 집합에서 만료 시간(exp) 클레임이 포함되었는지 확인합니다.

    이 클레임을 이미 포함한 경우에는 항목을 변경할 필요가 없습니다. 나머지 단계는 건너뛸 수 있습니다.

    이 클레임을 포함하지 않은 경우에는 다음 단계를 진행합니다.

  2. 서명된 JWT를 사용해서 Google API 또는 exp 클레임이 필요한 다른 API로 인증해야 하는지 확인합니다.

    이 클레임을 생략하면 IAM API가 이를 이후 1시간으로 자동으로 설정합니다. 반면에 Service Account Credentials API는 이 필드를 자동으로 설정하지 않습니다.

    확실히 exp 클레임이 필요하지 않으면 항목을 변경할 필요가 없습니다. 나머지 단계는 건너뛸 수 있습니다.

    exp 클레임이 필요하거나 확실하지 않은 경우에는 다음 단계를 진행합니다.

  3. JWT 클레임 집합에 exp 클레임을 추가하도록 JWT를 만들기 위한 코드를 업데이트합니다.

    exp 클레임은 이후 최대 1시간으로 설정할 수 있습니다.

할당량 확인

Service Account Credentials API 할당량은 IAM API 할당량과 별개입니다. IAM API로 JWT 및 blob 서명을 위한 할당량 증가를 받은 경우, Service Account Credentials API에 대해서도 증가를 요청해야 할 수 있습니다.

할당량 및 두 API의 실제 사용량을 보고 필요에 따라 할당량 증가를 요청하려면 다음 안내를 따르세요.

  1. Google Cloud Console에서 할당량 페이지로 이동합니다.

    할당량 페이지로 이동

  2. 프로젝트를 선택합니다. 최근 프로젝트를 클릭하거나 프로젝트 선택을 클릭하여 모든 프로젝트를 검색할 수 있습니다.

  3. 테이블 위의 테이블 필터링 텍스트 상자에서 Sign requests per minute를 입력하고 표시된 값을 선택합니다.

  4. 테이블 필터링 텍스트 상자의 드롭다운 목록에서 OR을 선택합니다.

  5. 테이블 필터링 텍스트 상자에서 Generate credentials를 입력하고 표시된 값을 선택합니다.

    Google Cloud Console에는 이전 1분 동안 JWT 및 blob 서명에 대한 현재 사용량이 표시됩니다. 이전 7일 동안의 분당 최대 사용량과 한도 열에 표시되는 현재 할당량도 표시됩니다.

  6. 테이블의 각 행에 대해 할당량을 비교하고 Service Account Credentials API 할당량이 IAM API의 7일 최대 사용량보다 높은지 확인합니다.

  7. 선택사항: Service Account Credentials API 할당량이 너무 낮으면 Service Account Credentials API에 대해 체크박스를 선택한 후 할당량 편집을 클릭합니다. 할당량 증가를 요청하기 위해 양식을 작성합니다.

  8. JWT 및 blob 서명을 위해 IAM API를 사용하는 각 프로젝트에 대해 이 단계를 반복합니다.

다음 단계