このページでは、Identity and Access Management(IAM)API、Google Cloud コンソール、gcloud
コマンドライン ツールを使用してサービス アカウントを作成する方法について説明します。
デフォルトでは、各プロジェクトには最大 100 個のサービス アカウントを設定し、リソースへのアクセスを制御できます。必要な場合は、割り当ての増加をリクエストできます。割り当てと上限をご覧ください。
始める前に
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
IAM サービス アカウントについて理解する。
必要なロール
サービス アカウントの作成に必要な権限を取得するには、プロジェクトに対するサービス アカウントの作成(roles/iam.serviceAccountCreator
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
新しく作成されたサービス アカウントにプロジェクトへのアクセス権を付与するには、プロジェクト IAM 管理者(roles/resourcemanager.projectIamAdmin
)ロールも必要です。
サービス アカウントを作成する
サービス アカウントを作成するときは、my-service-account
など、英数字の ID(以下のサンプルでは SERVICE_ACCOUNT_NAME
)を指定する必要があります。ID は 6~30 文字で、小文字の英数字とダッシュを使用できます。作成したサービス アカウントの名前は変更できません。
サービス アカウントの名前は、作成時にプロビジョニングされたメールアドレスに SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
の形式で表示されます。
各サービス アカウントには、自動的に生成される永続的かつ一意の数値 ID も割り当てられます。
また、サービス アカウントを作成するときには、次の情報も指定します。
DESCRIPTION
は、サービス アカウントの説明です(省略可能)。DISPLAY_NAME
は、わかりやすいサービス アカウント名です。PROJECT_ID
は、Google Cloud プロジェクトの ID です。
サービス アカウントを作成した後、サービス アカウントを使用するまで 60 秒以上待たなければならない場合があります。この動作は、読み取りオペレーションが結果整合性に基づいているためです。新しいサービス アカウントが利用可能になるまで時間がかかることがあります。作成直後のサービス アカウントを読み取りで使用しようとしてエラーが表示された場合は、指数バックオフを使用してリクエストを再試行できます。
コンソール
- Google Cloud コンソールで [サービス アカウントの作成] ページに移動します。
残りの手順は Google Cloud コンソールに自動的に表示されます。
- Google Cloud プロジェクトを選択します。
- Google Cloud コンソールに表示するサービス アカウント名を入力します。
この名前に基づいてサービス アカウント ID が生成され、Google Cloud コンソールに表示されます。必要に応じて ID を編集します。後で ID を変更することはできません。
- (省略可)サービス アカウントの説明を入力します。
- アクセス制御を今すぐ設定しない場合は、[完了] をクリックしてサービス アカウントの作成を終了します。アクセス制御を今すぐ設定するには、[作成して続行] をクリックして次に進みます。
- (省略可)プロジェクトのサービス アカウントに付与する 1 つ以上の IAM ロールを選択します。
- ロールの追加が完了したら、[続行] をクリックします。
- 省略可: [サービス アカウント ユーザーロール] フィールドに、サービス アカウントを他のリソースに関連付ける必要のあるメンバーを追加します。
- 省略可: [サービス アカウント管理者ロール] フィールドに、サービス アカウントを管理する必要があるメンバーを追加します。
- [完了] をクリックして、サービス アカウントの作成を完了します。
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.
-
サービス アカウントを作成するには、
gcloud iam service-accounts create
コマンドを実行します。gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \ --description="DESCRIPTION" \ --display-name="DISPLAY_NAME"
次の値を置き換えます。
-
SERVICE_ACCOUNT_NAME
: サービス アカウントの名前 -
DESCRIPTION
: サービスの説明(省略可) -
DISPLAY_NAME
: Google Cloud コンソールに表示するサービス アカウント名
-
-
(省略可)サービス アカウントにプロジェクトの IAM ロールを付与するには、
gcloud projects add-iam-policy-binding
コマンドを実行します。gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="ROLE_NAME"
次の値を置き換えます。
-
PROJECT_ID
: プロジェクト ID -
SERVICE_ACCOUNT_NAME
: サービス アカウントの名前 -
ROLE_NAME
: ロール名(例:roles/compute.osLogin
)
-
-
省略可: サービス アカウントを他のリソースに関連付ける権限をユーザーに付与するには、
gcloud iam service-accounts add-iam-policy-binding
コマンドを実行して、サービス アカウントのサービス アカウント ユーザーロール(roles/iam.serviceAccountUser
)をユーザーに付与します。gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountUser"
次の値を置き換えます。
PROJECT_ID
: プロジェクト IDSERVICE_ACCOUNT_NAME
: サービス アカウントの名前USER_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
serviceAccounts.create
メソッドを使用して、サービス アカウントを作成します。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID
: Google Cloud プロジェクト ID。プロジェクト ID は英数字からなる文字列です(例:my-project
)。SA_NAME
: サービス アカウントの英数字 ID。この名前は 6~30 文字で指定する必要があり、小文字の英数字とダッシュを含めることができます。SA_DESCRIPTION
: 省略可。サービス アカウントの説明。SA_DISPLAY_NAME
: 人が読める形式のサービス アカウント名。
HTTP メソッドと URL:
POST https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
リクエストの本文(JSON):
{ "accountId": "SA_NAME", "serviceAccount": { "description": "SA_DESCRIPTION", "displayName": "SA_DISPLAY_NAME" } }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com", "projectId": "my-project", "uniqueId": "123456789012345678901", "email": "my-service-account@my-project.iam.gserviceaccount.com", "displayName": "My service account", "etag": "BwUp3rVlzes=", "description": "A service account for running jobs in my project", "oauth2ClientId": "987654321098765432109" }
サービス アカウントを作成したら、そのサービス アカウントに 1 つ以上のロールを付与し、自分の代わりに実行できるようにします。
また、サービス アカウントが他のプロジェクトのリソースにアクセスする必要がある場合は、サービス アカウントを作成したプロジェクトのリソースで API を有効にする必要があります。
次のステップ
- サービス アカウントの一覧表示と編集方法を学習する。
- サービス アカウントを含むすべてのタイプのプリンシパルに IAM のロールを付与するプロセスを確認する。
- サービス アカウントをリソースに接続する方法を理解する。
使ってみる
Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
無料で開始