このページでは、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
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
C#
このページの .NET サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Go
このページの Go サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、Google Cloud の認証に関するドキュメントのローカル開発環境の認証の設定をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create local authentication credentials for your user account:
gcloud auth application-default login
詳細については、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 分を差し上げます。
無料で開始