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 のレポート メタデータ、レポートデータ、オペレーションに対する読み取りアクセス権。

App Optimize API はプレビュー版であるため、これらのロールは Google Cloud コンソールに表示されない場合があります。これらのロールを付与するには、Google Cloud CLI を使用します。まだ行っていない場合は、Google Cloud CLI をインストールして初期化します。

ユーザーに App Optimize 管理者ロール(roles/appoptimize.admin)を付与するには、次のコマンドを実行します。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.admin"

ユーザーにアプリ最適化閲覧者ロール(roles/appoptimize.viewer)を付与するには、次のコマンドを実行します。

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="user:USER_EMAIL" \
    --role="roles/appoptimize.viewer"

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

  • PROJECT_ID: レポート リソースを所有する Google Cloud プロジェクトの ID。
  • USER_EMAIL: ロールを付与するユーザーのメールアドレス。

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

App Optimize 管理者

App Optimize API リソースに対するフル コントロール権限を付与します。App Optimize 閲覧者に付与される権限も含まれます。

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

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 使用率とメモリ使用率の指標の場合、スコープ付きリソースに対する Monitoring 閲覧者(roles/monitoring.viewer)ロール。

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

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

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

レポートが正常に作成されたら、プリンシパルは生成されたデータを読み取るために次の権限のみを必要とします。

  • レポートが作成されたプロジェクト、またはレポート自体に対する appoptimize.reports.getData。この権限は、roles/appoptimize.viewer ロールに含まれています。

次のステップ