您可通过向用户授予 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.
使用以下任一选项来创建或确定服务代理身份:
如果您尚未创建 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.如果您已创建 Managed Lustre 实例: 如需构建服务代理身份,请使用
gcloud projects describe命令检索项目编号:gcloud projects describe PROJECT_ID --format="value(projectNumber)"将 PROJECT_ID 替换为您的项目 ID。然后,将 PROJECT_NUMBER 替换为服务代理电子邮件地址:
service-PROJECT_NUMBER@gcp-sa-lustre.
向服务代理授予权限
获取服务代理身份后,请参阅以下文档,以授予您的功能所需的角色:
其他必需 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 文档。 |