이 페이지에서는 Google Cloud 콘솔, Google Cloud CLI, Identity and Access Management API 또는 Google Cloud 클라이언트 라이브러리 중 하나를 사용하여 서비스 계정 키를 만들고 삭제하는 방법을 설명합니다.
시작하기 전에
Enable the IAM API.
인증을 설정합니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
C#
이 페이지의 .NET 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run 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.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
C++
이 페이지의 C++ 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run 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.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
Go
이 페이지의 Go 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run 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.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
Java
이 페이지의 Java 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run 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.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
Python
이 페이지의 Python 샘플을 로컬 개발 환경에서 사용하려면 gcloud CLI를 설치 및 초기화한 다음 사용자 인증 정보로 애플리케이션 기본 사용자 인증 정보를 설정하세요.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run 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.
자세한 내용은 Google Cloud 인증 문서의 로컬 개발 환경 인증 설정을 참조하세요.
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
서비스 계정 사용자 인증 정보에 대해 이해해야 합니다.
필요한 역할
서비스 계정 키를 만들고 삭제하는 데 필요한 권한을 얻으려면 관리자에게 프로젝트 또는 키를 관리할 서비스 계정에 대한 서비스 계정 키 관리자(
roles/iam.serviceAccountKeyAdmin
) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
자세한 내용은 서비스 계정 역할을 참조하세요.
IAM 기본 역할에는 서비스 계정 키를 관리할 수 있는 권한도 포함되어 있습니다. 프로덕션 환경에서는 기본 역할을 부여하지 말아야 하지만 개발 환경 또는 테스트 환경에서는 부여해도 됩니다.
서비스 계정 키 만들기
다른 플랫폼이나 온프레미스와 같이 Google Cloud 외부에서 서비스 계정을 사용하려면 먼저 서비스 계정의 ID를 설정해야 합니다. 공개 키/비공개 키 쌍을 통해 안전하게 제공할 수 있습니다. 서비스 계정 키를 만들면 공개 부분은 Google Cloud에 저장되지만 비공개 부분은 자신만 사용할 수 있습니다. 공개 키/비공개 키 쌍에 대한 자세한 내용은 서비스 계정 키를 참조하세요.
Google Cloud 콘솔, gcloud CLI,
serviceAccounts.keys.create()
메서드를 사용하거나 클라이언트 라이브러리 중 하나를 사용하여 서비스 계정 키를 만들 수 있습니다. 서비스 계정은 최대 10개의 키를 가질 수 있습니다.기본적으로 서비스 계정 키는 만료되지 않습니다. 조직 정책 제약조건을 사용하여 서비스 계정 키가 유효한 기간을 지정할 수 있습니다. 자세한 내용은 사용자 관리 키 만료 시간을 참조하세요.
아래 예시에서
SA_NAME
은 서비스 계정의 이름이고,PROJECT_ID
는 Google Cloud 프로젝트의 ID입니다. Google Cloud 콘솔의 서비스 계정 페이지에서SA_NAME@PROJECT_ID.iam.gserviceaccount.com
문자열을 검색할 수 있습니다.콘솔
- Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
나머지 단계는 Google Cloud 콘솔에서 자동으로 표시됩니다.
- 프로젝트를 선택합니다.
- 키를 만들려는 서비스 계정의 이메일 주소를 클릭합니다.
키 탭을 클릭합니다.- 키 추가 드롭다운 메뉴를 클릭한 후 새 키 만들기를 선택합니다.
- 키 유형으로 JSON을 선택하고 만들기를 클릭합니다.
만들기를 클릭하면 서비스 계정 키 파일이 다운로드됩니다. 키 파일을 다운로드한 후에는 다시 다운로드할 수 없습니다.
다운로드한 키의 형식은 다음과 같습니다. 여기서
PRIVATE_KEY
는 공개 키/비공개 키 쌍의 비공개 부분입니다.{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
키 파일은 서비스 계정으로 인증하는 데 사용될 수 있으므로 안전하게 저장해야 합니다. 원하는 경우 이 파일을 이동하고 이름을 바꿀 수 있습니다.
서비스 계정 키 파일을 사용하여 애플리케이션을 서비스 계정으로 인증할 수 있습니다.
gcloud
gcloud iam service-accounts keys create
명령어를 실행하여 서비스 계정 키를 만듭니다.다음 값을 바꿉니다.
KEY_FILE
: 비공개 키의 새 출력 파일 경로입니다(예:~/sa-private-key.json
).SA_NAME
: 키를 만들 서비스 계정의 이름입니다.PROJECT_ID
: Google Cloud 프로젝트 ID입니다.
gcloud iam service-accounts keys create KEY_FILE \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
출력:
created key [e44da1202f82f8f4bdd9d92bc412d1d8a837fa83] of type [json] as [/usr/home/username/KEY_FILE] for [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
이제 서비스 계정 키 파일이 머신에 다운로드됩니다. 키 파일을 다운로드한 후에는 다시 다운로드할 수 없습니다.
다운로드한 키의 형식은 다음과 같습니다. 여기서
PRIVATE_KEY
는 공개 키/비공개 키 쌍의 비공개 부분입니다.{ "type": "service_account", "project_id": "PROJECT_ID", "private_key_id": "KEY_ID", "private_key": "-----BEGIN PRIVATE KEY-----\nPRIVATE_KEY\n-----END PRIVATE KEY-----\n", "client_email": "SERVICE_ACCOUNT_EMAIL", "client_id": "CLIENT_ID", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/SERVICE_ACCOUNT_EMAIL" }
키 파일은 서비스 계정으로 인증하는 데 사용될 수 있으므로 안전하게 저장해야 합니다. 원하는 경우 이 파일을 이동하고 이름을 바꿀 수 있습니다.
서비스 계정 키 파일을 사용하여 애플리케이션을 서비스 계정으로 인증할 수 있습니다.
C++
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C++ API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
C#
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C# API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Go
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Go API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
REST
projects.serviceAccounts.keys.create
메서드는 서비스 계정의 키를 만듭니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID. 프로젝트 ID는my-project
같은 영숫자 문자열입니다.SA_NAME
: 키를 만들려는 서비스 계정의 이름KEY_ALGORITHM
: 선택사항. 키에 사용할 키 알고리즘. 변경될 수 있는 기본값은 2,048비트 RSA 키입니다. 가능한 모든 값의 목록은ServiceAccountKeyAlgorithm
참조를 확인하세요.
HTTP 메서드 및 URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys
JSON 요청 본문:
{ "keyAlgorithm": "KEY_ALGORITHM" }
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
응답에는 서비스 계정의 키가 포함됩니다. 반환된 키 형식은 다음과 같습니다. 여기서
ENCODED_PRIVATE_KEY
는 공개 키/비공개 키 쌍에서 비공개 부분으로, base64로 인코딩됩니다.{ "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID", "privateKeyType": "TYPE_GOOGLE_CREDENTIALS_FILE", "privateKeyData": "ENCODED_PRIVATE_KEY", "validAfterTime": "DATE", "validBeforeTime": "DATE", "keyAlgorithm": "KEY_ALG_RSA_2048" }
서비스 계정으로 인증하는 데 사용할 수 있는 키 파일을 만들려면 비공개 키 데이터를 디코딩하여 파일에 저장합니다.
Linux
다음 명령어를 실행합니다.
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
PATH
를 키를 저장할 파일의 경로로 바꿉니다. 파일 확장자는.json
을 사용합니다.macOS
다음 명령어를 실행합니다.
echo 'ENCODED_PRIVATE_KEY' | base64 --decode > PATH
PATH
를 키를 저장할 파일의 경로로 바꿉니다. 파일 확장자는.json
을 사용합니다.PowerShell
인코딩된 비공개 키 데이터(
ENCODED_PRIVATE_KEY
)를 파일에 저장합니다.certutil
을 사용하여 파일을 디코딩합니다.certutil -decode ENCODED_FILE DECODED_FILE
다음 값을 바꿉니다.
ENCODED_FILE
: 인코딩된 비공개 키 데이터가 포함된 파일의 경로입니다.DECODED_FILE
: 키를 저장할 파일의 경로입니다. 파일 확장자는.json
을 사용합니다.
키 데이터는 서비스 계정으로 인증하는 데 사용될 수 있으므로 안전하게 저장해야 합니다.
서비스 계정 키 파일을 사용하여 애플리케이션을 서비스 계정으로 인증할 수 있습니다.
서비스 계정 키 삭제
서비스 계정 키를 삭제하면 이 키를 사용하여 Google API에 인증을 수행할 수 없습니다.
삭제된 키는 삭제 취소할 수 없습니다. 키를 사용 중지한 후 키가 더 이상 필요하지 않은지 확인될 때까지 기다린 후에 키를 삭제하는 것이 좋습니다. 그런 후 키를 삭제할 수 있습니다.
권장사항에 따라 서비스 계정 키를 정기적으로 순환하는 것이 좋습니다. 서비스 계정 키 순환에 대해 자세히 알아보려면 서비스 계정 키 순환을 참조하세요.
콘솔
- Google Cloud 콘솔에서 서비스 계정 페이지로 이동합니다.
나머지 단계는 Google Cloud 콘솔에서 자동으로 표시됩니다.
- 프로젝트를 선택합니다.
- 서비스 계정 페이지에서 키를 삭제할 서비스 계정의 이메일 주소를 클릭합니다.
- 키 탭을 클릭합니다.
- 키 목록에서 삭제할 키마다 삭제 를 클릭합니다.
gcloud
gcloud iam service-accounts keys delete
명령어를 실행하여 서비스 계정 키를 삭제합니다.다음 값을 바꿉니다.
KEY_ID
: 삭제할 키의 ID입니다. 키의 ID를 찾으려면 서비스 계정의 모든 키를 나열하고 삭제할 키를 확인한 다음 키의 ID를 복사하세요.SA_NAME
: 키가 속한 서비스 계정의 이름입니다.PROJECT_ID
: Google Cloud 프로젝트 ID입니다.
gcloud iam service-accounts keys delete KEY_ID \ --iam-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
출력:
Deleted key [KEY_ID] for service account [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]
C++
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C++ API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
C#
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM C# API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Go
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Go API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Java
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Java API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
Python
IAM용 클라이언트 라이브러리를 설치하고 사용하는 방법은 IAM 클라이언트 라이브러리를 참조하세요. 자세한 내용은 IAM Python API 참고 문서를 참조하세요.
IAM에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 시작하기 전에를 참조하세요.
REST
projects.serviceAccounts.keys.delete
메서드는 서비스 계정 키를 삭제합니다.요청 데이터를 사용하기 전에 다음을 바꿉니다.
PROJECT_ID
: Google Cloud 프로젝트 ID. 프로젝트 ID는my-project
같은 영숫자 문자열입니다.SA_NAME
: 키를 삭제하려는 서비스 계정의 이름입니다.KEY_ID
: 삭제하려는 키의 ID입니다. 키의 ID를 찾으려면 서비스 계정의 모든 키를 나열하고 삭제할 키를 찾은 다음name
필드의 끝에서 키의 ID를 복사합니다. 키의 ID는keys/
이후의 모든 문자입니다.
HTTP 메서드 및 URL:
DELETE https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys/KEY_ID
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{ }
다음 단계
- 서비스 계정 키를 나열하고 가져오는 방법 알아보기
- 자체 공개 서비스 계정 키를 업로드하는 방법 알아보기
- 서비스 계정 키 관리 권장사항 이해하기
- 인증을 위한 서비스 계정 키 대안 알아보기
직접 사용해 보기
Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
무료로 시작하기달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-11-28(UTC)