使用 IAM 进行访问权限控制

您可通过向用户授予 Identity and Access Management (IAM) 角色来授予对 Google Cloud Managed Lustre 操作的访问权限。

IAM 权限只能控制对 Google Cloud Managed Lustre 操作(例如创建 Google Cloud Managed Lustre 实例)的访问权限。如需控制对实例的文件系统操作(例如读取或写入文件)的访问权限,请使用 POSIX 文件权限。

权限和角色

Managed Lustre 使用以下权限:

权限 说明
lustre.instances.create 创建新实例
lustre.instances.delete 删除实例
lustre.instances.update 更新实例。不允许删除
lustre.instances.get 描述实例
lustre.instances.list 列出所有实例
lustre.instances.exportData 将数据从 Managed Lustre 导出到 Cloud Storage
lustre.instances.importData 将数据从 Cloud Storage 导入到 Managed Lustre
lustre.locations.get 获取位置
lustre.locations.list 列出所有受支持的位置
lustre.operations.list 列出操作
lustre.operations.get 获取操作
lustre.operations.cancel 取消操作
lustre.operations.delete 删除操作

Google Cloud 不支持直接授予个人权限;您必须授予包含权限的角色。Managed Lustre 的预定义角色包括:

  • Managed Lustre 管理员 (roles/lustre.admin)
  • Managed Lustre 查看者 (roles/lustre.viewer)

下表列出了 Managed Lustre 的预定义角色以及 基本 Editor 角色授予的 权限 :

能力 Editor (roles/editor) Managed Lustre (roles/lustre.*)
admin viewer
创建实例
删除实例
更新实例
获取实例
列出实例
从 Cloud Storage 导入/导出数据
获取位置
列出受支持的位置
列出长时间运行的操作
获取操作
取消操作
删除操作

自定义角色

如果可用的预定义角色不符合贵组织的访问 要求,您可以创建 和应用 自定义 IAM 角色

创建自定义角色时,建议将预定义角色进行组合,以确保包含正确的权限。

Managed Lustre 服务代理

Managed Lustre 使用 服务代理 来访问其他 Google Cloud 资源并代表您执行操作。服务代理是由 Google 代管式服务账号,当您首次在项目中创建 Managed Lustre 实例时,系统会自动创建该服务账号。您也可以手动创建该服务账号。

只有在使用某些可选功能时,才需要向服务代理授予权限。对于不使用这些功能的标准实例创建和文件系统操作,无需进行服务代理配置。

需要服务代理权限的功能

以下功能需要向服务代理授予 IAM 角色:

功能 所需角色 目标资源 说明
客户管理的加密密钥 (CMEK) roles/cloudkms.cryptoKeyEncrypterDecrypter Cloud KMS 密钥 允许服务代理使用您的密钥加密和解密静态数据。
从 Cloud Storage 转移数据 roles/storage.objectViewer Cloud Storage 存储桶 允许服务代理从您的存储桶读取对象并将其导入到实例中。
将数据转移到 Cloud Storage 以及从 Cloud Storage 转移数据 roles/storage.objectUser Cloud Storage 存储桶 允许服务代理在导入和导出操作期间读取和写入对象。

如果您未使用任何这些功能,则可以跳过本部分中的其余步骤。

创建或检索服务代理身份

如需向服务代理授予权限,您必须获取其身份。服务代理采用以下格式:

service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com

使用以下任一选项来创建或确定服务代理身份:

  • 如果您尚未创建 Managed Lustre 实例: 运行 services identity create 命令手动创建服务代理:

    gcloud beta services identity create \
      --service=lustre.googleapis.com \
      --project=PROJECT_NUMBER_OR_ID
    

    PROJECT_NUMBER_OR_ID 替换为要在其中创建 Managed Lustre 实例的项目的项目编号或 ID。该命令会返回类似于以下内容的输出:

    Service identity created: service-1234567890@gcp-sa-lustre.iam.gserviceaccount.com
    
  • 如果您已创建 Managed Lustre 实例: 如需构建服务代理身份,请使用 gcloud projects describe 命令检索项目编号:

    gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    

    PROJECT_ID 替换为您的项目 ID。然后,将 PROJECT_NUMBER 替换为服务代理电子邮件地址:

    service-PROJECT_NUMBER@gcp-sa-lustre.iam.gserviceaccount.com
    

向服务代理授予权限

获取服务代理身份后,请参阅以下文档,以授予您的功能所需的角色:

其他必需 Google Cloud 权限

除了 lustre 权限之外,您可能还需要其他 Google Cloud 服务中的权限才能执行特定任务:

任务 权限
创建 VPC 网络 请参阅必需权限部分的 配置 VPC 网络
创建 Compute Engine 虚拟机 Compute Instance Admin (v1)。 (roles/compute.instanceAdmin.v1) 如需了解详情,请参阅 Compute Engine 文档
创建和管理 Google Kubernetes Engine 集群 Container Admin。 (roles/container.admin) 如需了解详情,请参阅Google Kubernetes Engine 文档