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 ロールを付与する

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

コンソール

  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: プリンシパルの ID(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 権限。この権限は、アプリ オプティマイズ管理者(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 権限のみを必要とします。この権限は、レポートが作成されたプロジェクトまたはレポート自体に付与できます。この権限は、アプリ オプティマイズ管理者とアプリ オプティマイズ閲覧者の両方のロールに含まれています。

次のステップ