配置权限

本主题介绍如何配置调用 Cloud Asset Inventory API 所需的权限和凭据。

身份验证

在调用 Cloud Asset Inventory API 之前,您必须作为最终用户服务帐号进行身份验证。如需详细了解身份验证,请参阅身份验证概览

授予 gcloud 工具所需的权限

为了使用 gcloud 工具访问 Cloud Asset Inventory API,您必须授予目标资源的父级资源(组织、项目或文件夹)的必要权限。您必须在 API 请求的 parent 字段中指定此父级资源。

如果您的帐号具有资源的父级资源的 Cloud Asset Owner 角色 (roles/cloudasset.owner) 或 Owner 基本角色 (roles/owner),则该帐号已具有调用 Cloud Asset Inventory API 的足够权限,并且您可以跳至下载凭据。如需详细了解 Cloud Asset Inventory 角色,请参阅角色

授予角色

要为帐号授予角色,请使用 gcloud 命令行工具完成以下步骤。了解如何安装和初始化 gcloud 工具

用户帐号

要向用户帐号授予必要的角色,请完成以下步骤。

  1. 要使用用户帐号登录,请运行以下命令。

    gcloud auth login USER_ACCOUNT_EMAIL
    
  2. 向用户帐号授予根(父级)资源的 Cloud Asset Viewer 角色 (roles/cloudasset.viewer) 或 Cloud Asset Owner 角色 (roles/cloudasset.owner)。此项目可以是启用了 Cloud Asset Inventory API 的项目。

    要向用户帐号授予 Cloud Asset Viewer 角色,请运行以下命令。

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

    您可以将 --billing-project 标志添加到 gcloud asset 命令,以指定启用了 Cloud Asset Inventory API 的结算项目。

    --billing-project PROJECT_ID
    

    如果您指定了此标志,则您的帐号需要具有项目 PROJECT_IDserviceusage.services.use 权限。如需查看包含此权限的预定义角色的列表,请参阅了解角色

服务帐号

要向服务帐号授予必要的角色,请完成以下步骤。如需详细了解服务帐号,请参阅创建和管理服务帐号

  1. 要创建新的服务帐号,请运行以下命令。如果您在已在启用 Cloud Asset Inventory API 的项目中拥有服务帐号,则可以跳过此步骤。

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
           --display-name "SERVICE_ACCOUNT_DISPLAY_NAME"
    
  2. 向您的服务帐号授予根(父级)资源的 Cloud Asset Viewer 角色 (roles/cloudasset.viewer) 或 Cloud Asset Owner 角色 (roles/cloudasset.owner)。此项目可与启用了 Cloud Asset Inventory API 的项目相同。

    要向服务帐号授予 Cloud Asset Viewer 角色,请运行以下命令。

    gcloud projects add-iam-policy-binding TARGET_PROJECT_ID \
            --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --role roles/cloudasset.viewer
    
  3. 要为服务帐号创建私钥,请运行以下命令。

    gcloud iam service-accounts keys create YOUR_FILE_PATH/key.json \
            --iam-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
    
  4. 要激活服务帐号以便与 gcloud 工具搭配使用,请运行以下命令。

    gcloud auth activate-service-account SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
            --key-file=YOUR_FILE_PATH/key.json
    

下载 JSON 凭据

要在不使用 gcloud 工具的情况下访问 Cloud Asset Inventory API,您需要 JSON 凭据文件。要下载此文件,请完成以下步骤。

  1. 转到 Cloud Console 中的凭据页面。

    转到“凭据”页面

  2. 选择 + 创建凭据,然后选择 OAuth 客户端 ID

  3. 要为新项目创建客户端 ID,您必须设置 OAuth 同意屏幕。每当有应用使用您的客户端 ID 请求访问私有数据时,Cloud Console 都会显示同意屏幕。

    要配置同意屏幕,请完成以下步骤:

    1. 选择配置同意屏幕,然后输入所需信息。

    2. 保存更改。

  4. 创建客户端 ID 页面的应用类型下,选择适当的类型。如需详细了解客户端类型,请参阅设置 OAuth 2.0

  5. 输入凭据名称,然后点击创建

  6. 在显示的对话框中,确认客户端 ID 和客户端密钥正确无误,然后关闭对话框。

  7. 要保存新的客户端 ID JSON 文件,请点击

  8. 重命名并移动已下载的 JSON 文件,使其路径变为 ~/credentials.json

验证凭据设置

要验证是否已正确设置凭据,请运行以下命令。

   oauth2l header --json ~/credentials.json cloud-platform
   

您应该会看到类似于如下内容的输出:

Authorization: Bearer y29.xxxxxxx

定义 shell 别名

您可能会发现,定义一个 shell 别名会使调用 Google Cloud REST API 变得十分方便。

如需定义 gcurl 别名以用于调用 Google Cloud REST API,请运行以下命令:

   alias gcurl='curl -H "$(oauth2l header --json ~/credentials.json 
cloud-platform)" -H "Content-Type: application/json" '