基于代理的项目级权限

基于代理的转移作业需要为两个不同的实体(服务代理和转移代理账号)提供项目级 IAM 权限。

仅当转移作业涉及文件系统、HDFS 或与 S3 兼容的存储空间时,才需要配置此页面上的权限。如果您的转移作业是无代理的,请勿在此页面上配置角色;直接继续执行配置对来源和目标的访问权限。

基于代理的转移作业使用以下身份:

  • 服务代理:Storage Transfer Service 用于与转移代理协调任务的 Google 托管式服务账号。
  • 转移代理账号:用于在客户端机器或实例上对转移代理进行身份验证和运行转移代理的 Google Cloud 用户账号或用户代管式服务账号。

如需大致了解如何授予 IAM 角色,请参阅授予、更改和撤消对资源的访问权限。

服务代理权限

Storage Transfer Service 使用服务代理来协调代理驱动的转移作业。

如需使 Storage Transfer Service 能够在 Google Cloud 与转移代理之间协调工作,请向运行 Storage Transfer Service 的项目中的服务代理授予以下角色:

  • Storage Transfer Service Agent (roles/storagetransfer.serviceAgent)

获取服务代理邮箱

为服务代理授予角色需要服务代理的电子邮件地址标识符。当您首次创建转移作业、运行 gcloud transfer 设置命令、访问 Google Cloud 控制台中的 Storage Transfer 页面或调用 googleServiceAccounts.get 时,系统会自动创建服务代理。

如需获取服务代理邮箱,请执行以下操作:

  1. 前往 googleServiceAccounts.get 参考页面。 系统会打开标题为试用此方法的交互式面板。
  2. 在请求参数下,输入您的项目 ID。
  3. 点击执行。

复制 accountEmail 的值。该邮箱采用以下格式:project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com。

授予服务代理角色

如需授予 Storage Transfer Service Agent 角色,请执行以下操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往运行 Storage Transfer Service 的项目的 IAM 页面。

    转到 IAM

  2. 点击授予访问权限。

  3. 在新的主账号字段中,输入您的服务代理邮箱。

  4. 在选择角色下拉列表中,搜索并选择 Storage Transfer Service Agent (roles/storagetransfer.serviceAgent)。

  5. 点击保存。

gcloud

运行 gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:SERVICE_AGENT_EMAIL" \
--role="roles/storagetransfer.serviceAgent"

替换以下内容:

  • PROJECT_ID:运行 Storage Transfer Service 的项目。
  • SERVICE_AGENT_EMAIL:服务代理邮箱。

转移代理账号权限

转移代理使用用户账号或用户代管式服务账号的凭证在客户端机器上运行:

  • 用户账号使用经过身份验证的用户的凭据。
  • 用户代管式服务账号使用服务账号密钥或身份联合。如需创建服务账号,请参阅创建和管理服务账号。

如需授权转移代理连接到 Storage Transfer Service、接收任务和记录状态,请在托管代理池的 Google Cloud 云项目中分配以下角色:

  • Storage Transfer Agent (roles/storagetransfer.transferAgent)

如需授予此角色,请执行以下操作:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 确保您已选择包含代理池的项目。

  3. 点击授予访问权限。

  4. 在新的主体字段中,输入您的用户账号或用户代管式服务账号的邮箱。

  5. 在选择角色下拉列表中,搜索并选择 Storage Transfer Agent (roles/storagetransfer.transferAgent)。

  6. 点击保存。

gcloud

运行 gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding AGENT_POOL_PROJECT_ID \
--member="serviceAccount_OR_user:TRANSFER_AGENT_ACCOUNT" \
--role="roles/storagetransfer.transferAgent"

替换以下内容:

  • AGENT_POOL_PROJECT_ID:包含代理池的项目。
  • serviceAccount_OR_user:如果您的转移代理账号是服务账号,请指定 serviceAccount;如果您的代理是使用用户账号安装的,请指定 user。
  • TRANSFER_AGENT_ACCOUNT:运行转移代理的账号的邮箱。

后续步骤

配置项目权限后,请按顺序执行以下设置步骤:

  1. 创建代理池。
  2. 在池中安装转移代理。
  3. 为存储系统配置访问权限:
  4. 查看完整的角色和权限参考文档。