このページでは、Google Cloud コンソール、Google Cloud CLI、Identity and Access Management API、Google Cloud クライアント ライブラリのいずれかを使用して、サービス アカウント キーを作成または削除する方法について説明します。
始める前に
- Enable the IAM API. - Roles required to enable APIs - To enable APIs, you need the Service Usage Admin IAM role ( - roles/serviceusage.serviceUsageAdmin), which contains the- serviceusage.services.enablepermission. Learn how to grant roles.
- 認証を設定する。 - 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 をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 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. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - C++- ローカル開発環境でこのページの C++ サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 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. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Go- ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 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. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Java- ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 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. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - Python- ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 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. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳細については、 Google Cloud 認証ドキュメントのローカル開発環境の ADC の設定をご覧ください。 - REST- このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。 - Google Cloud CLI をインストールします。 - 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。 - 詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。 - サービス アカウント認証情報について理解する。 - 必要なロール- サービス アカウント キーの作成と削除に必要な権限を取得するため、プロジェクトまたは鍵を管理するサービス アカウントに対するサービス アカウント キー管理者( - roles/iam.serviceAccountKeyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。- 必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。 - 詳しくは、サービス アカウントのロールをご覧ください。 - 組織のポリシーの構成によっては、キーを作成する前に、プロジェクトでサービス アカウント キーの作成を許可する必要がある場合もあります。 - プロジェクトでサービス アカウント キーを作成できるようにするために必要な権限を取得するには、組織に対する次の IAM ロールを付与するよう管理者に依頼してください。 - 
  
  
    
      組織ポリシー管理者(roles/orgpolicy.policyAdmin)
- 
  
  
    
      組織閲覧者(roles/resourcemanager.organizationViewer)
- 
  
  
    
      タグ管理者(roles/resourcemanager.tagAdmin)
 - ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。 - これらの事前定義ロールには、プロジェクトでサービス アカウント キーを作成できるようにするために必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。 - 必要な権限- プロジェクトでサービス アカウント キーを作成できるようにするには、次の権限が必要です。 - 
                  orgpolicy.constraints.list
- 
                  orgpolicy.customConstraints.create
- 
                  orgpolicy.customConstraints.delete
- 
                  orgpolicy.customConstraints.get
- 
                  orgpolicy.customConstraints.list
- 
                  orgpolicy.customConstraints.update
- 
                  orgpolicy.policies.create
- 
                  orgpolicy.policies.delete
- 
                  orgpolicy.policies.list
- 
                  orgpolicy.policies.update
- 
                  orgpolicy.policy.get
- 
                  orgpolicy.policy.set
- 
                  resourcemanager.organizations.get
- 
                  resourcemanager.projects.listTagBindings
- 
                  resourcemanager.projects.listEffectiveTags
- 
                  resourcemanager.tagKeys.get
- 
                  resourcemanager.tagKeys.list
- 
                  resourcemanager.tagValues.list
- 
                  resourcemanager.tagValues.get
 - カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。 - サービス アカウント キーの作成を許可する- サービス アカウント キーを作成する前に、プロジェクトに - iam.disableServiceAccountKeyCreation組織のポリシー制約が適用されていないことを確認してください。この制約がプロジェクトに適用されている場合、そのプロジェクトでサービス アカウント キーを作成することはできません。- ほとんどのプロジェクトにこの制約を適用し、サービス アカウント キーが本当に必要なプロジェクトのみを除外することをおすすめします。その他の認証方法の詳細については、ユースケースに適した認証方法を選択するをご覧ください。 - プロジェクトを - iam.disableServiceAccountKeyCreation組織のポリシー制約から除外するには、組織のポリシー管理者に次の操作を依頼します。- 
    組織レベルで、リソースを組織のポリシーから除外するかどうかを定義するために、タグキーとタグ値を作成します。キー disableServiceAccountKeyCreationと値enforced、not_enforcedを使用してタグを作成することをおすすめします。タグキーとタグ値の作成方法については、新しいタグの作成と定義をご覧ください。 
- 
    disableServiceAccountKeyCreationタグを組織に適用し、その値をenforcedに設定します。組織内のすべてのリソースは、別のタグ値で上書きされない限り、このタグ値を継承します。リソースにタグを適用する方法については、リソースへのタグの適用をご覧ください。 
- 
    組織のポリシーから除外するプロジェクトまたはフォルダごとに disableServiceAccountKeyCreationタグを付けて、その値をnot_enforcedに設定します。この方法でプロジェクトまたはフォルダにタグ値を設定すると、組織から継承されたタグ値がオーバーライドされます。
- 
    除外リソースに制約が適用されないように、サービス アカウント キーの作成を禁止する組織のポリシーを作成または更新します。このポリシーには、次のルールが必要です。 - 
        disableServiceAccountKeyCreation: not_enforcedタグの付いたリソースに適用されないようにiam.disableServiceAccountKeyCreation制約を構成します。このルールの条件は次のようになります。"resource.matchTag('ORGANIZATION_ID/disableServiceAccountKeyCreation', 'not_enforced')"
- 
        他のすべてのリソースに適用されるように iam.disableServiceAccountKeyCreation制約を構成します。
 
- 
        
 - サービス アカウント キーを作成する- 他のプラットフォームやオンプレミスなど 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 コンソールに表示されます。 
- プロジェクトを選択します。
- キーを作成するサービス アカウントのメールアドレスをクリックします。
- [キー ] タブをクリックします。
- [鍵を追加] プルダウン メニューをクリックして、[新しい鍵を作成] を選択します。
- 鍵のタイプとして [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 分を差し上げます。 無料で開始- 特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。 - 最終更新日 2025-10-21 UTC。