文件存储CPFS服务关联角色

更新时间:
复制为 MD 格式

CPFS 文件系统在执行挂载点管理、数据流动等操作时,需要访问专有网络 VPC、云服务器 ECS、对象存储OSS等云服务。文件存储 CPFS 会自动创建服务关联角色,以最小权限完成跨服务访问,无需手动配置权限。

服务关联角色的工作原理

服务关联角色是一种可信实体为阿里云服务的RAM角色。文件存储 CPFS 使用服务关联角色访问其他阿里云服务和云资源,无需手动配置跨服务权限。

执行特定操作时,系统会自动创建服务关联角色。如果自动创建失败,或 CPFS 不支持自动创建,则需要手动创建。

RAM 为每个服务关联角色附加了一个系统策略,该策略不可修改。如需查看策略详情,可前往对应角色的详情页面。

说明

关于服务关联角色的更多信息,请参见服务关联角色

CPFS 服务关联角色

CPFS 使用以下 4 个服务关联角色,每个角色的权限范围与其负责的操作对应:

  • AliyunServiceRoleForNasCpfsNetwork

    创建或删除弹性网卡(ENI)、安全组时使用。CPFS 通过此角色访问专有网络VPC和云服务器 ECS。

  • AliyunServiceRoleForNasCpfsClient

    创建或删除ECS实例、云助手实例、授权信息及安全组时使用。CPFS 通过此角色访问专有网络VPC和云服务器 ECS。

  • AliyunServiceRoleForNasOssDataFlow

    使用数据流动功能时使用。CPFS 通过此角色查询、读写对象存储OSS中指定存储空间(Bucket)的数据。

  • AliyunServiceRoleForNasEventNotification

    使用数据流动功能时使用。CPFS 通过此角色创建和修改 EventBridge 事件通知相关参数。

更多服务关联角色的信息,请参见服务关联角色

权限说明

以下是各 CPFS 服务关联角色的权限策略。每个角色的权限仅限于其功能所需的最小访问范围。

AliyunServiceRoleForNasCpfsNetwork

此角色允许 CPFS 执行以下操作:

  • VPC:查询 VPC、交换机及其属性

  • ECS:创建、查询、删除安全组和弹性网卡;管理弹性网卡权限

安全组和弹性网卡操作仅限于标签为 nas:cpfs=true 的资源。

{
    "Version": "1",
    "Statement": [{
            "Action": [
                "vpc:DescribeVSwitchAttributes",
                "vpc:DescribeVpcs",
                "vpc:DescribeVSwitches"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ecs:CreateSecurityGroup",
                "ecs:DescribeSecurityGroups",
                "ecs:CreateNetworkInterface",
                "ecs:DeleteNetworkInterface",
                "ecs:DescribeNetworkInterfaces",
                "ecs:CreateNetworkInterfacePermission",
                "ecs:DescribeNetworkInterfacePermissions",
                "ecs:DeleteNetworkInterfacePermission"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecs:DescribeSecurityGroupAttribute",
                "ecs:DeleteSecurityGroup",
                "ecs:AuthorizeSecurityGroup",
                "ecs:AuthorizeSecurityGroupEgress",
                "ecs:RevokeSecurityGroup",
                "ecs:RevokeSecurityGroupEgress"
            ],
            "Resource": "acs:ecs:*:*:*/*",
            "Condition": {
                "StringEqualsIgnoreCase": {
                    "ecs:tag/nas:cpfs": "true"
                }
            }
        },
        {
            "Action": "ram:DeleteServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": "cpfs-network.nas.aliyuncs.com"
                }
            }
        }
    ]
}
      

AliyunServiceRoleForNasCpfsClient

此角色允许 CPFS 执行以下操作:

  • VPC:查询 VPC、交换机及其属性

  • ECS:运行、创建、启动、删除实例;安装和调用云助手;管理安全组

安全组和实例操作仅限于标签为 nas:cpfs=true 的资源。

{
 "Version": "1",
 "Statement": [
 {
 "Action": [
 "vpc:DescribeVSwitchAttributes",
 "vpc:DescribeVpcs",
 "vpc:DescribeVSwitches"
 ],
 "Resource": "*",
 "Effect": "Allow"
 },
 {
 "Action": [
 "ecs:RunInstances",
 "ecs:CreateInstance",
 "ecs:DescribeInstances",
 "ecs:CreateSecurityGroup",
 "ecs:DescribeSecurityGroups",
 "ecs:InstallCloudAssistant",
 "ecs:DescribeInvocations"
 ],
 "Resource": "*",
 "Effect": "Allow"
 },
 {
 "Effect": "Allow",
 "Action": [
 "ecs:StartInstances",
 "ecs:DeleteInstances",
 "ecs:RunCommand",
 "ecs:DescribeSecurityGroupAttribute",
 "ecs:DeleteSecurityGroup",
 "ecs:AuthorizeSecurityGroup",
 "ecs:AuthorizeSecurityGroupEgress",
 "ecs:RevokeSecurityGroup",
 "ecs:RevokeSecurityGroupEgress"
 ],
 "Resource": "acs:ecs:*:*:*/*",
 "Condition": {
 "StringEqualsIgnoreCase": {
 "ecs:tag/nas:cpfs": "true"
 }
 }
 },
 {
 "Action": "ram:DeleteServiceLinkedRole",
 "Resource": "*",
 "Effect": "Allow",
 "Condition": {
 "StringEquals": {
 "ram:ServiceName": "cpfs-client.nas.aliyuncs.com"
 }
 }
 } 
 ]
 }
 

AliyunServiceRoleForNasOssDataFlow

此角色允许 CPFS 执行以下操作:

  • OSS(无限制):列举存储空间、获取存储空间标签

  • OSS(仅限标签存储空间):对标签为 cpfs-dataflow=true 的存储空间执行全部读写和分片上传操作

    {
     "Statement": [
     {
     "Effect": "Allow",
     "Action": [
     "oss:ListBuckets",
     "oss:GetBucketTagging"
     ],
     "Resource": [
     "acs:oss:*:*:*"
     ]
     },
     {
     "Effect": "Allow",
     "Action": [
     "oss:HeadBucket",
     "oss:GetBucketLocation",
     "oss:GetBucketInventory",
     "oss:GetBucketInfo",
     "oss:GetBucketVersion",
     "oss:GetBucketAcl",
     "oss:GetBucketStat",
     "oss:GetBucket",
     "oss:ListObjects",
     "oss:GetObject",
     "oss:PutObject",
     "oss:CopyObject",
     "oss:AppendObject",
     "oss:DeleteObject",
     "oss:GetObjectMeta",
     "oss:PutObjectACL",
     "oss:GetObjectACL",
     "oss:PutObjectTagging",
     "oss:GetObjectTagging",
     "oss:InitiateMultipartUpload",
     "oss:CompleteMultipartUpload",
     "oss:AbortMultipartUpload",
     "oss:ListMultipartUploads",
     "oss:UploadPart",
     "oss:UploadPartCopy",
     "oss:ListParts"
     ],
     "Resource": [
     "acs:oss:*:*:*",
     "acs:oss:*:*:*/*"
     ],
     "Condition": {
     "StringEqualsIgnoreCase": {
     "oss:tag/cpfs-dataflow": "true"
     }
     }
     },
     {
     "Action": "ram:DeleteServiceLinkedRole",
     "Resource": "*",
     "Effect": "Allow",
     "Condition": {
     "StringEquals": {
     "ram:ServiceName": "oss-dataflow.nas.aliyuncs.com"
     }
     }
     }
     ],
     "Version": "1"
    }
     

AliyunServiceRoleForNasEventNotification

此角色允许 CPFS 执行以下操作:

  • EventBridge:获取事件总线、创建规则

  • EventBridge:列举、更新、启用、禁用、删除规则;创建、更新、删除目标

    {
     "Statement": [
     {
     "Effect": "Allow",
     "Action": [
     "eventbridge:GetEventBus",
     "eventbridge:CreateRule"
     ],
     "Resource": [
     "acs:eventbridge:*:*:*"
     ]
     },
     {
     "Effect": "Allow",
     "Action": [
     "eventbridge:GetRule",
     "eventbridge:ListRules",
     "eventbridge:UpdateRule",
     "eventbridge:EnableRule",
     "eventbridge:DisableRule",
     "eventbridge:DeleteRule",
     "eventbridge:CreateTargets",
     "eventbridge:UpdateTargets",
     "eventbridge:DeleteTargets"
     ],
     "Resource": [
     "acs:eventbridge:*:*:*"
     ]
     },
     {
     "Action": "ram:DeleteServiceLinkedRole",
     "Resource": "*",
     "Effect": "Allow",
     "Condition": {
     "StringEquals": {
     "ram:ServiceName": "event-notification.nas.aliyuncs.com"
     }
     }
     }
     ],
     "Version": "1"
    }
     

RAM 用户使用服务关联角色需要的权限

RAM 用户创建或删除 CPFS 服务关联角色,需联系管理员授予 AliyunNASFullAccess 系统策略,或在自定义策略的Action语句中添加以下权限:

  • 创建服务关联角色:ram:CreateServiceLinkedRole

  • 删除服务关联角色:ram:DeleteServiceLinkedRole

关于授权的详细操作,请参见管理服务关联角色所需的权限

查看服务关联角色

服务关联角色创建成功后,可在RAM 控制台的角色页面通过角色名称搜索(例如,AliyunServiceRoleForNasStandard),查看以下信息:

  • 基本信息

    在 AliyunServiceRoleForNasStandard 角色详情页的基本信息区域,查看角色名称、创建时间、角色 ARN 和备注等基本信息。

  • 权限策略

    在 AliyunServiceRoleForNasStandard 角色详情页的权限管理页签,单击权限策略名称,查看权限策略内容及该角色可访问的云资源。

  • 信任策略

    在 AliyunServiceRoleForNasStandard 角色详情页的信任策略页签,查看信任策略内容。信任策略描述了可以扮演该RAM角色的可信实体。服务关联角色的可信实体为阿里云服务,可通过信任策略中的Service字段查看。

关于如何查看服务关联角色的详细操作,请参见查看RAM角色

删除CPFS服务关联角色

不再需要 CPFS 服务关联角色时(例如停止使用数据流动功能后),可以删除对应角色。删除前,需先删除该角色关联的 CPFS 文件系统实例。具体操作,请参见删除文件系统删除服务关联角色

常见问题

为什么RAM用户无法自动创建CPFS服务关联角色?

RAM 用户需要具备特定权限才能触发服务关联角色的自动创建。为RAM用户添加以下系统策略和自定义策略。具体操作,请参见创建自定义权限策略

  • 系统策略

    • AliyunVPCFullAccess:管理专有网络VPC的权限。

    • AliyunBSSFullAccess:管理费用中心BSS的权限。

    • AliyunNASFullAccess:管理文件存储NAS的权限。

    • AliyunECSNetworkInterfaceManagementAccess:管理ECS弹性网卡的权限。

  • 自定义策略

    • 管理挂载点,需要cpfs-network.nas.aliyuncs.comcpfs-client.nas.aliyuncs.com权限。

    • 管理数据流动,需要oss-dataflow.nas.aliyuncs.comevent-notification.nas.aliyuncs.com权限。

    示例如下:

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ram:CreateServiceLinkedRole"
          ],
          "Resource": "*",
          "Condition": {
            "StringEquals": { 
             "ram:ServiceName": [
                "cpfs-network.nas.aliyuncs.com",
                "cpfs-client.nas.aliyuncs.com",
                "oss-dataflow.nas.aliyuncs.com",
                "event-notification.nas.aliyuncs.com" 
             ]
            }
          }
        }
      ]
    }