IAM によるアクセス制御

App Optimize API は、Identity and Access Management(IAM)を使用して、レポートやオペレーションなどのリソースへのアクセスを制御します。IAM を使用すると、特定の App Optimize API リソースに対するアクセス権をきめ細かく設定し、他のリソースへの不要なアクセスを防ぐことができます。

このドキュメントでは、App Optimize API に適用される IAM 権限とロールについて説明します。

権限の概要

権限を使用すると、App Optimize API リソースに対して特定の操作を行えるようになります。次の表に、App Optimize API の権限を示します。

権限 説明
appoptimize.operations.cancel 長時間実行オペレーションをキャンセルします。
appoptimize.operations.delete 長時間実行オペレーションを削除します。
appoptimize.operations.get 長時間実行オペレーションのステータスを取得します。
appoptimize.operations.list 長時間実行オペレーションを一覧表示します。
appoptimize.reports.create App Optimize API レポート リソースを作成します。
appoptimize.reports.delete App Optimize API レポート リソースを削除します。
appoptimize.reports.get App Optimize API レポート リソースの構成メタデータを読み取ります。
レポートデータへのアクセス権は付与されません。
appoptimize.reports.getData App Optimize API レポートに含まれるデータを読み取ります。
appoptimize.reports.list プロジェクト内の App Optimize API レポート リソースを一覧表示します。

事前定義ロール

IAM には、関連する一連の権限を付与する事前定義ロールが用意されています。App Optimize API では、次のロールを使用できます。

ロール タイトル 説明
roles/appoptimize.admin App Optimize 管理者 App Optimize API レポートとオペレーションに対する完全な制御権限。
roles/appoptimize.viewer App Optimize 閲覧者 App Optimize API レポートのメタデータ、レポートデータ、オペレーションに対する読み取りアクセス権。

IAM ロールを付与する

コンソールまたは Google Cloud CLI を使用して、プリンシパルに IAM ロールを付与できます。Google Cloud

コンソール

  1. Google Cloud コンソールで、[IAM] ページに移動します。

    [IAM] に移動

  2. [**アクセス権を付与**] をクリックします。

  3. [新しいプリンシパル] フィールドに、ロールを付与するプリンシパルのメールアドレスを入力します。

  4. [ロールを選択] プルダウン メニューをクリックします。

  5. [App Optimize] ロールでフィルタし、付与するロール(App Optimize 管理者や App Optimize 閲覧者など)を選択します。

  6. [保存] をクリックします。

gcloud

  1. まだ行っていない場合は、 Google Cloud CLI をインストールして初期化します

  2. gcloud projects add-iam-policy-binding コマンドを使用してロールを付与します。

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="PRINCIPAL" \
        --role="ROLE_NAME"
    

    次のように置き換えます。

    • PROJECT_ID: 実際の Google Cloud プロジェクト ID。
    • PRINCIPAL: プリンシパルの識別子(user:my-user@example.comgroup:my-group@example.com など)。 プリンシパル ID をご覧ください。
    • ROLE_NAME: 付与するロール(roles/appoptimize.adminroles/appoptimize.viewer など)。

たとえば、プロジェクト my-appoptimize-project のユーザー test-user@example.com に App Optimize 管理者ロールを付与するには、次のようにします。

gcloud projects add-iam-policy-binding my-appoptimize-project \
    --member="user:test-user@example.com" \
    --role="roles/appoptimize.admin"

ロールの付与の詳細については、 プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

App Optimize 管理者

App Optimize 管理者には、App Optimize API リソースに対する完全な制御権限が付与されます。また、App Optimize 閲覧者に付与される権限も含まれます。

ロール名 含まれる権限
roles/appoptimize.admin
  • appoptimize.operations.*
  • appoptimize.reports.*

App Optimize 閲覧者

App Optimize 閲覧者には、App Optimize API レポート、そのメタデータ、オペレーションを読み取る権限が付与されます。

ロール名 含まれる権限
roles/appoptimize.viewer
  • appoptimize.operations.get
  • appoptimize.operations.list
  • appoptimize.reports.get
  • appoptimize.reports.getData
  • appoptimize.reports.list

レポートを作成する権限

レポートを作成するには、ユーザー、サービス アカウント、またはその他のプリンシパルに次の権限が必要です。

  • レポート リソースが作成されるプロジェクトに対する appoptimize.reports.create 権限。この権限は、App Optimize 管理者(roles/appoptimize.admin)ロールに含まれています。

  • レポートでスコープ設定されているすべてのプロジェクトに対する billing.resourceCosts.get 権限。この権限は、請求先アカウント閲覧者(roles/billing.viewer)や基本閲覧者(roles/viewer)などのロールによって提供されます。

  • レポートのスコープ、ディメンション、指標に含まれるデータソースにアクセスする権限。App Optimize API は、レポートの作成時にこれらの権限を確認します。このデータソース アクセス権を付与するロールは次のとおりです。

    • CPU とメモリ使用率の指標の場合: スコープ設定されたリソースに対するモニタリング閲覧者(roles/monitoring.viewer)。

    • App Hub アプリケーションのスコープとディメンションの場合: アプリケーションの App Hub ホスト プロジェクトに対するアプリ管理閲覧者(roles/apphub.appManagementViewer)。

    複数のプロジェクトで構成される App Hub アプリケーションのレポートを生成する場合は、レポートを作成するために、アプリケーションに関連付けられたすべてのプロジェクトに必要なモニタリング権限と課金権限が必要です。

レポートデータを読み取る権限

レポートが正常に作成されたら、プリンシパルは生成されたデータを読み取るために必要な権限は appoptimize.reports.getData のみです。この権限は、レポートが作成されたプロジェクトまたはレポート自体に付与できます。また、App Optimize 管理者ロールと App Optimize 閲覧者ロールの両方に含まれています。

次のステップ