このページでは、Google Cloud コンソール、Google Cloud CLI、Identity and Access Management API、Google Cloud クライアント ライブラリのいずれかを使用して、サービス アカウント キーを作成または削除する方法について説明します。
始める前に
Enable the IAM API.
認証を設定する。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
このページの gcloud CLI のサンプルは、次のいずれかの開発環境から使用できます。
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 の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
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 の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
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
サービス アカウント認証情報について理解する。
必要なロール
サービス アカウント キーの作成と削除に必要な権限を取得するには、プロジェクトまたは鍵を管理するサービス アカウントに対してサービス アカウント キー管理者(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 です。SA_NAME@PROJECT_ID.iam.gserviceaccount.com
文字列は、Google Cloud コンソールの [サービス アカウント] ページから取得できます。
コンソール
- Google Cloud コンソールで [サービス アカウント] ページに移動します。
残りの手順は Google Cloud コンソールに自動的に表示されます。
- プロジェクトを選択します。
- キーを作成するサービス アカウントのメールアドレスをクリックします。
- [
キー ] タブをクリックします。 tab. - [鍵を追加] プルダウン メニューをクリックして、[新しい鍵を作成] を選択します。
- 鍵のタイプとして [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 をコピーします。keys/
より後のすべての部分が鍵の一意の ID になります。
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 分を差し上げます。
無料で開始