役割を割り当てることにより、Google Cloud Platform のプロジェクトとリソースへのアクセス権限を付与し、アクセス権限を制御します。役割は、プロジェクト メンバーとサービス アカウントに割り当てることができます。
サービス アカウントは、App Engine などの Google Cloud サービス ID を表し、他のサービスへのアクセスに使用できます。
適切なアクセス制御の選択
役割をプロジェクト メンバーやサービス アカウントに割り当てることで、GCP プロジェクトに対するアクセスレベルが決定されます。Identity and Access Management(IAM)を使用すると、より細かくアクセスを制御できるようになります。さまざまな App Engine の役割の詳細については、アクセス制御をご覧ください。
一般に、「オーナー」、「編集者」、「閲覧者」という基本的な役割は使い方が単純ですが、事前定義された役割にはアクセスするためにより詳細なオプションがあります。App Engine を試してみるだけの場合は、プロジェクトに関与するすべての人に「編集者」の役割を付与するのが、アクセスを制御する最も簡単な方法です。手順については、次の権限を設定するをご覧ください。プロジェクトに App Engine アプリケーションを作成し、他の人をプロジェクトに追加できるのはオーナーのみであることにご注意ください。
プロジェクトでより複雑な役割を使用する準備ができたら:
-
プロジェクトにアクセスする必要があるさまざまな職務部門をすべて特定します。
-
これらの職務部門について、それぞれに Google グループを設定します。
-
各 Google グループに、必要なメンバーを追加します。
-
次の権限を設定するの説明に従って、各 Google グループをプロジェクトのメンバーとして追加し、各グループに役割を設定します。
権限を設定する
プロジェクト メンバーの追加と権限の設定をするには:
-
Google Cloud Platform Console で、プロジェクトの [IAM と管理] ページに移動します。
-
[メンバーの追加] をクリックしてプロジェクトに新しいメンバーを追加し、プルダウン メニューを使ってその役割を設定します。個々のユーザーのメールアドレスを追加できます。また、Google グループを使ってグループの役割を管理している場合は、Google グループのメールアドレス(
example-google-group@googlegroups.com
)も指定できます。 -
役割を割り当てます。
- 一般的な制御を行う場合は、基本の役割であるオーナー、編集者、閲覧者を使用します。
- より細かい制御を行う場合は、App Engine で事前定義された役割である App Engine 管理者、App Engine サービス管理者、App Engine デプロイ担当者、App Engine 閲覧者を使用します。
App Engine のすべての役割の説明と比較マトリクスを表示し、制限事項について確認するには、アクセス制御に移動します。
プルダウン メニューには、他の Google Cloud Platform プロダクトに適用できるこのほかの役割があります。これらの役割の詳細については、事前定義された役割をご覧ください。
IAM の役割を使用してデプロイする
適切な IAM の役割をユーザー アカウントに割り当てることによって、新しいバージョンのアプリを GCP プロジェクトにデプロイする権限を付与できます。
App Engine デプロイ担当者の役割は、アプリのデプロイのみを担当するユーザー アカウントに推奨される役割です。App Engine 管理者の役割でもアプリをデプロイできますが、その他の権限も付与されています。どの構成ファイルをデプロイする必要があるかに応じて、以下の手順で説明するように、アカウントに追加の役割を付与する必要があります。
トラフィックの設定
デフォルトでは、App Engine デプロイ担当者の役割を持つユーザー アカウントは、どのバージョンのアプリに対しても、トラフィックの移行や分割を許可されていません。ただし、現在トラフィックを処理している既存のバージョンがデプロイのターゲットである場合、そのアプリの更新版には、上書きされたバージョンの元のトラフィック設定が保持されます。
たとえば、バージョン 20201155example
が現在アプリでトラフィックを処理している場合、gcloud app deploy --version 20201155example
コマンドを実行すると、更新されたバージョンが既存のバージョンを上書きしてトラフィックの処理を開始します。
ユーザー アカウントがトラフィックの設定を担当する必要がある場合は、App Engine 管理者または App Engine Service 管理者の役割を使用することを検討してください。
始める前に
ユーザー アカウントで IAM の役割を使用してアプリをデプロイするには、以下の手順を実行します。
- GCP プロジェクトのオーナーは、最初に App Engine アプリケーションを作成する必要があります。
App Engine をデプロイする権限をユーザー アカウントに付与する手順は次のとおりです。
-
Google Cloud Platform Console で、プロジェクトの [IAM と管理] ページに移動します。
-
[メンバーの追加] をクリックしてユーザー アカウントをプロジェクトに追加し、プルダウン メニューを使用してそのアカウントのすべての役割を選択します。
- アカウントが App Engine にデプロイできるようにするために必要な役割:
-
次のいずれかの役割を設定します。
- [App Engine] > [App Engine デプロイ担当者] の役割を使用して、アカウントが任意のバージョンのアプリをデプロイできるようにします。
dos.yaml
ファイルまたはdispatch.yaml
ファイルもアプリとともにデプロイできるようするには、代わりに [App Engine] > [App Engine 管理者] の役割を使用します。
- App Engine のツールを使用してアプリをデプロイできるようにするには、ユーザー アカウントに [ストレージ] > [ストレージ管理者] の役割を付与して、ツールに Cloud Storage へのアップロード権限が付与されるようにする必要もあります。
-
次のいずれかの役割を設定します。
- 省略可。ユーザー アカウントに次の役割を与えて、追加の設定ファイルをアップロードする権限を付与します。
- [Datastore] > [Datastore インデックス管理者] の役割:
index.yaml
ファイルをアップロードする権限。 - [Cloud Scheduler] > [Cloud Scheduler 管理者] の役割:
cron.yaml
ファイルをアップロードする権限。 - [Cloud Tasks] > [クラウド タスクキュー管理者] の役割:
queue.yaml
ファイルをアップロードする権限。
- [Datastore] > [Datastore インデックス管理者] の役割:
- アカウントが App Engine にデプロイできるようにするために必要な役割:
これでユーザー アカウントは、関連する GCP プロジェクトで App Engine アプリケーションにアプリをデプロイできるようになりました。アプリのデプロイ方法の詳細については、アプリのデプロイをご覧ください。
IAM 関連のデプロイ問題のトラブルシューティング
上記の手順で権限を構成してもアカウントがアプリをデプロイできない場合は、App Engine アプリケーションが作成されていることを確認する必要があります。