権限の構成

このトピックでは、Cloud Asset Inventory API を呼び出すために必要な権限と認証情報を構成する方法について説明します。

認証

Cloud Asset Inventory API を呼び出す前に、エンドユーザーまたはサービス アカウントとして認証を行う必要があります。認証の詳細については、認証の概要をご覧ください。

gcloud CLI に必要な権限の付与

gcloud CLI を使用して Cloud Asset Inventory API にアクセスするには、ターゲット リソースの親に対して必要な権限(組織、プロジェクト、フォルダのいずれか)を付与する必要があります。API リクエストの parent フィールドにこの親を指定する必要があります。

アカウントに親となる Cloud Asset Owner ロール(roles/cloudasset.owner)またはオーナーの基本ロール(roles/owner)がある場合、Cloud Asset Inventory API を呼び出すための十分な権限が付与され、認証情報のダウンロードまでスキップできます。Cloud Asset Inventory のロールの詳細については、ロールをご覧ください。

ロールを付与しています

アカウントにロールを付与するには、Google Cloud CLI で次の手順を行います。gcloud CLI をインストールして初期化する方法をご覧ください。

ユーザー アカウント

必要なロールをユーザー アカウントに付与するには、次の手順を行います。

  1. ユーザー アカウントでログインするには、次のコマンドを実行します。

    gcloud auth login USER_ACCOUNT_EMAIL
    
  2. ユーザー アカウントに、ルート(親)リソースの Cloud Asset 閲覧者のロール(roles/cloudasset.viewer)または Cloud Asset オーナーのロール(roles/cloudasset.owner)を付与します。このプロジェクトは、Cloud Asset Inventory API が有効になっているプロジェクトでもかまいません。

    ユーザー アカウントに Cloud Asset 閲覧者のロールを付与するには、次のコマンドを実行します。

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
        --member user:USER_ACCOUNT_EMAIL \
        --role roles/cloudasset.viewer
    

    gcloud asset コマンドに --billing-project フラグを追加して、Cloud Asset Inventory API が有効になっている請求先プロジェクトを指定できます。

    --billing-project PROJECT_ID
    

    このフラグを指定すると、アカウントには PROJECT_ID プロジェクトに対する serviceusage.services.use 権限が必要となります。この権限を含む事前定義されたロールの一覧については、ロールについてをご覧ください。

サービス アカウント

必要なロールをサービス アカウントに付与するには、次の手順を行います。サービス アカウントの詳細については、サービス アカウントの作成と管理をご覧ください。

  1. 新しいサービス アカウントを作成するには、次のコマンドを実行します。Cloud Asset Inventory API が有効になっているプロジェクトにすでにサービス アカウントがある場合は、この手順を省略できます。

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
        --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
    
  2. サービス アカウントに、ルート(親)リソースの Cloud Asset 閲覧者のロール(roles/cloudasset.viewer)または Cloud Asset オーナーのロール(roles/cloudasset.owner)を付与します。このプロジェクトは、Cloud Asset Inventory API が有効になっているプロジェクトと同じプロジェクトにできます。

    サービス アカウントに Cloud Asset 閲覧者のロールを付与するには、次のコマンドを実行します。

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
        --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
        --role roles/cloudasset.viewer