配置 Analytics Hub 角色

本文档介绍 Analytics Hub 用户角色以及如何向用户授予这些角色。如需了解详情,请参阅 Analytics Hub 角色

Analytics Hub 用户角色

以下部分介绍了预定义的 Analytics Hub 角色。您可以将这些角色分配给用户,以对您的数据交换和清单执行各种任务。

Analytics Hub Admin 角色

为了管理数据交换,Sharing(以前称为 Analytics Hub)提供了您可以授予项目或数据交换的 Analytics Hub Admin 角色 (roles/analyticshub.admin)。凭借此角色,用户可以执行以下任务:

  • 创建、更新和删除数据交换。
  • 创建、更新、删除和共享清单。
  • 管理 Analytics Hub 管理员,清单管理员、发布者、订阅者和查看者。

具有此角色的用户称为管理员

Analytics Hub Publisher 和 Listing Admin 角色

为了管理清单,Sharing 提供了您可以为项目、数据交换或清单授予的以下预定义角色:

  • Analytics Hub Publisher 角色 (roles/analyticshub.publisher),用于执行以下任务:

    具有此角色的用户称为发布商

  • Analytics Hub Listing Admin (roles/analyticshub.listingAdmin) 角色,该角色使用户可以执行以下任务:

Analytics Hub Subscriber 和 Viewer 角色

为了查看和订阅清单,Sharing 提供了以下预定义角色,您可以将这些角色授予项目、数据交换或清单:

  • Analytics Hub Subscriber 角色 (roles/analyticshub.subscriber),使用户可以查看和订阅清单。

    具有此角色的用户称为订阅者

  • Analytics Hub Viewer 角色 (roles/analyticshub.viewer),使用户可以查看清单和数据交换的权限。

    具有此角色的用户称为查看者

Analytics Hub Subscription Owner 角色

为了管理订阅,Sharing 提供了以下预定义角色,您可以在项目级层授予这些角色:

  • Analytics Hub Subscription Owner 角色 (roles/analyticshub.subscriptionOwner),该角色允许用户管理其订阅。

授予 Analytics Hub 角色

您可以根据需要,在资源层次结构的以下级层授予 Analytics Hub 角色:

  • 项目。如果您为用户授予项目的角色,则该角色将应用于项目包含的所有数据交换和清单。

  • 数据交换。如果您为用户授予数据交换角色,则它将应用于数据交换包含的所有清单。

  • 清单。如果您向用户授予清单的角色,则该角色将仅应用于这一特定清单。

授予项目的角色

如果要针对项目设置 IAM 政策,您必须拥有该项目的 roles/resourcemanager.projectIamAdmin 角色。要向项目授予预定义的 Analytics Hub 用户角色,请按照以下步骤操作:

控制台

  1. 转到项目的 IAM

    转到 IAM

  2. 点击 授予访问权限

  3. 新建主账号字段中,输入您要向其授予访问权限的身份的电子邮件地址。例如:

    • Google 账号电子邮件地址:test-user@gmail.com
    • Google 群组:admins@googlegroups.com
    • 服务账号:server@example.gserviceaccount.com
    • Google Workspace 网域:example.com
  4. 选择角色列表中,将指针悬停在 Analytics Hub 上,然后选择以下角色之一:

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  5. 可选:如需进一步控制用户对 Google Cloud 资源的访问权限,请添加条件角色绑定

  6. 保存更改。

您可以通过前面的 IAM 面板删除和更新管理员(如前述步骤所述)。

gcloud

如需在项目级层授予角色,请使用 gcloud projects add-iam-policy-binding 命令

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='PRINCIPAL' \
    --role='roles/analyticshub.admin'

替换以下内容:

  • PROJECT_ID:项目 ID,例如 my-project-1
  • PRINCIPAL:您要向其授予相应角色的有效身份。

    例如:

    • Google 账号电子邮件地址:user:user@gmail.com
    • Google 群组:group:admins@googlegroups.com
    • 服务账号:serviceAccount:server@example.gserviceaccount.com
    • Google Workspace 网域:domain:example.com

API

  1. 使用资源的 getIamPolicy 方法来读取现有政策。对于项目,请使用 projects.getIamPolicy 方法

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:getIamPolicy
    

    PROJECT_ID 替换为项目 ID,例如 my-project-1

  2. 如需添加主账号及其关联的角色,请使用文本编辑器修改该政策。请按以下格式添加成员:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    例如,如需向 group:admins@example.com 授予 roles/analyticshub.admin 角色,请将以下绑定添加到政策中:

    {
     "members": [
       "group:admins@example.com"
     ],
     "role":"roles/analyticshub.admin"
    }
    
  3. 使用 setIamPolicy 方法写入更新后的政策。

    例如,要在项目级设置政策,请使用 project.setIamPolicy 方法。在请求正文中,提供上一步中更新的 IAM 政策。

    POST https://cloudresourcemanager.googleapis.com/v1/projects/PROJECT_ID:setIamPolicy
    

    PROJECT_ID 替换为项目 ID。

授予数据交换的角色

如需授予数据交换的角色,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击您要设置权限的数据交换名称。

  3. 点击详细信息标签页。

  4. 点击 设置权限

  5. 如需添加主账号,请点击 添加主账号

  6. 新建主账号字段中,添加您要向其授予访问权限的邮箱 ID。您还可以使用 allUsers 将资源设为公开,以便互联网上的所有人都可以访问,或者使用 allAuthenticatedUsers 将其设为仅供已登录的 Google 用户访问。

  7. 选择角色菜单中,选择 Analytics Hub,然后选择以下 Identity and Access Management (IAM) 角色之一:

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  8. 点击保存

API

  1. 使用 projects.locations.dataExchanges.getIamPolicy 方法通过列表 getIamPolicy 方法读取现有政策:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:getIamPolicy
    

    替换以下内容:

    • PROJECT_ID:项目 ID,例如 my-project-1
    • LOCATION:数据交换的位置。 使用小写字母。
    • DATAEXCHANGE_ID:数据交换 ID。

    BigQuery Sharing(以前称为 Analytics Hub)会返回当前政策。

  2. 如需添加或移除成员及其关联的 Identity and Access Management (IAM) 角色,请使用文本编辑器修改该政策。请按以下格式添加成员:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    例如,如需向 group:subscribers@example.com 授予 roles/analyticshub.subscriber 角色,请将以下绑定添加到政策中:

    {
     "members": [
       "group:subscribers@example.com"
     ],
     "role":"roles/analyticshub.subscriber"
    }
    
  3. 使用 projects.locations.dataExchanges.setIamPolicy 方法写入更新后的政策。在请求正文中,提供上一步中写入的更新后 IAM 政策。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID:setIamPolicy
    

    在请求正文中,提供清单详细信息。如果请求成功,则响应正文包含清单的详细信息。

在资源级别(例如在数据交换中)授予权限时,您必须使用小写字母为资源名称的“位置”部分命名。使用大写或大小写混合的值可能会导致 Permission Denied 错误。

  • 请使用 projects/myproject/locations/us/dataExchanges/123
  • 避免:projects/myproject/locations/US/dataExchanges/123
  • 避免:projects/myproject/locations/Eu/dataExchanges/123

您可以通过同一 IAM 面板删除和更新数据交换的角色,如前面的步骤中所述。

授予清单的角色

要授予清单的角色,请按以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往 Sharing (Analytics Hub) 页面。

    前往 Sharing (Analytics Hub)

  2. 点击包含清单的数据交换名称。

  3. 点击要为其添加用户的清单。

  4. 点击 设置权限

  5. 如需添加主账号,请点击 添加主账号

  6. 新建主账号字段中,添加您要授予其访问权限的身份的邮箱 ID。

  7. 选择角色菜单中,选择 Analytics Hub,然后选择以下 Identity and Access Management (IAM) 角色之一:

    • Analytics Hub Admin
    • Analytics Hub Listing Admin
    • Analytics Hub Publisher
    • Analytics Hub Subscriber
    • Analytics Hub Subscription Owner
    • Analytics Hub Viewer
  8. 点击保存

API

  1. 使用 projects.locations.dataExchanges.listings.getIamPolicy 方法通过列表 getIamPolicy 方法读取现有政策:

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING_ID:getIamPolicy
    

    替换以下内容:

    • PROJECT_ID:项目 ID,例如 my-project-1
    • LOCATION:包含清单的数据交换的位置。 使用小写字母。
    • DATAEXCHANGE_ID:数据交换 ID。
    • LISTING_ID:清单 ID。

    Sharing 会返回当前政策。

  2. 如需添加或移除成员及其关联的 Identity and Access Management (IAM) 角色,请使用文本编辑器修改该政策。请按以下格式添加成员:

    • user:test-user@gmail.com
    • group:admins@example.com
    • serviceAccount:test123@example.domain.com
    • domain:example.domain.com

    例如,如需向 group:publishers@example.com 授予 roles/analyticshub.publisher 角色,请将以下绑定添加到政策中:

    {
     "members": [
       "group:publishers@example.com"
     ],
     "role":"roles/analyticshub.publisher"
    }
    
  3. 使用 projects.locations.dataExchanges.listings.setIamPolicy 方法写入更新后的政策。在请求正文中,提供上一步中写入的更新后 IAM 政策。

    POST https://analyticshub.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/dataExchanges/DATAEXCHANGE_ID/listings/LISTING-ID:setIamPolicy
    

    在请求正文中,提供清单详细信息。如果请求成功,则响应正文包含清单的详细信息。

在资源级别(例如在列表中)授予权限时,您必须使用小写字母为资源名称的位置部分命名。使用大写或大小写混合的值可能会导致 Permission Denied 错误。

  • 请使用 projects/myproject/locations/us/dataExchanges/123/listings/456
  • 避免:projects/myproject/locations/US/dataExchanges/123/listings/456
  • 避免:projects/myproject/locations/Eu/dataExchanges/123/listings/456

您可以通过同一 IAM 面板删除和更新清单的角色,如前面的步骤中所述。

后续步骤