SelectDB Cloud
管理指南
阿里云前置准备

阿里云前置准备

本文主要介绍创建 BYOC 类型仓库涉及的阿里云平台相关操作,包括创建 RAM 用户并授权创建专有网络 VPC 和交换机了解资源编排和资源栈 等。

准备 RAM 用户并授权

创建 BYOC 类型仓库前,需提前准备好具备相关权限的阿里云 RAM 用户。

请将此文档发送给您的阿里云平台管理员,请求管理员参照此文档为您创建 RAM 用户,并授权。

管理员访问阿里云 RAM 访问控制 (opens in a new tab) 控制台,执行以下操作:

创建 RAM 用户

提示: 如果已有 RAM 用户,可以跳过创建 RAM 用户步骤。

点击左侧 身份管理 > 用户,进入用户管理页面,点击创建用户,输入相关信息,完成创建。

创建 RAM 用户组(可选)

提示: 如果已有 RAM 用户组,可以跳过创建 RAM 用户组步骤。

如果企业内存在多名人员使用 SelectDB Cloud,可以创建 RAM 用户组,并将相关人员加入用户组,并统一授权。

点击左侧 身份管理 > 用户组,进入用户组管理页面,点击创建用户组,输入相关信息,完成创建。

创建权限策略并授权

创建 SelectDB Cloud BYOC 类型仓库时,需要通过资源编排服务(ROS)执行资源栈模板,会创建 ECS、VPC、OSS 等云资源或进行相关操作,因此需要一系列 RAM 权限。

请参照下面步骤为 RAM 用户或用户组添加权限。

1. 创建权限策略: 点击左侧 权限管理 > 权限策略,进入权限策略管理页面,点击创建权限策略,切换到脚本编辑模式

清空原有文本框,复制以下脚本,输入文本框。详细的权限说明,请见下文 资源栈模板依赖的权限说明 部分。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:TagResources",
        "ecs:UnTagResources",
        "ecs:DescribeInstances",
        "ecs:StopInstance",
        "ecs:StartInstance",
        "ecs:RebootInstance",
        "ecs:RenewInstance",
        "ecs:DeleteInstance",
        "ecs:ModifyInstanceAttribute",
        "ecs:ModifyInstanceChargeType",
        "ecs:ModifyInstanceAutoRenewAttribute",
        "ecs:ModifyInstanceSpec",
        "ecs:ModifyPrepayInstanceSpec",
        "ecs:AttachInstanceRamRole",
        "ecs:DetachInstanceRamRole",
        "ecs:ResizeDisk",
        "ecs:DescribeTags",
        "ecs:AddTags",
        "ecs:RemoveTags",
        "ecs:DescribeSecurityGroups",
        "ecs:DescribeSecurityGroupReferences",
        "ecs:AuthorizeSecurityGroup",
        "ecs:AuthorizeSecurityGroupEgress",
        "ecs:DeleteSecurityGroup",
        "ecs:RevokeSecurityGroup",
        "ecs:RevokeSecurityGroupEgress",
        "ecs:DescribeSecurityGroupAttribute",
        "slb:DescribeLoadBalancers",
        "slb:DescribeLoadBalancerAttribute",
        "slb:DeleteLoadBalancer",
        "slb:DescribeLoadBalancerListeners",
        "slb:StartLoadBalancerListener",
        "slb:DeleteLoadBalancerListener",
        "slb:DescribeVServerGroups",
        "slb:DescribeVServerGroupAttribute",
        "slb:ModifyVServerGroupBackendServers",
        "slb:RemoveVServerGroupBackendServers",
        "slb:RemoveBackendServers",
        "slb:DeleteVServerGroup",
        "slb:DescribeAccessControlLists",
        "slb:DescribeRules",
        "slb:CreateRules",
        "slb:DeleteRules",
        "slb:DescribeTags",
        "slb:AddTags",
        "slb:RemoveTags"
      ],
      "Resource": [
        "acs:ecs:*:*:*",
        "acs:vpc:*:*:*",
        "acs:slb:*:*:*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/resource-created-by": [
            "selectdb"
          ]
        }
      }
    },
    {
      "Action": [
        "vpc:DescribeVpcs",
        "vpc:DescribeVSwitches",
        "ecs:DescribeDisks",
        "ecs:DescribeImages",
        "ecs:CreateInstance",
        "ecs:RunInstances",
        "ecs:CreateSecurityGroup",
        "slb:CreateLoadBalancer",
        "slb:CreateLoadBalancerTCPListener",
        "slb:CreateVServerGroup",
        "slb:AddVServerGroupBackendServers",
        "slb:CreateAccessControlList",
        "slb:AddAccessControlListEntry",
        "slb:RemoveAccessControlListEntry",
        "slb:DeleteAccessControlList"
      ],
      "Resource": [
        "acs:ecs:*:*:*",
        "acs:vpc:*:*:*",
        "acs:slb:*:*:*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:selectdb-bucket-*",
        "acs:oss:*:*:selectdb-bucket-*/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "privatelink:CreateVpcEndpoint",
        "privatelink:DeleteVpcEndpoint",
        "privatelink:GetVpcEndpointAttribute",
        "privatelink:ListVpcEndpoints",
        "privatelink:ListVpcEndpointServicesByEndUser",
        "privatelink:ListVpcEndpointSecurityGroups",
        "privatelink:ListVpcEndpointConnections",
        "privatelink:AddZoneToVpcEndpoint",
        "privatelink:AttachSecurityGroupToVpcEndpoint",
        "privatelink:DetachSecurityGroupFromVpcEndpoint",
        "privatelink:RemoveZoneFromVpcEndpoint",
        "privatelink:TagResources",
        "privatelink:UnTagResources",
        "privatelink:ListTagResources"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ram:GetUser",
        "ram:AttachPolicyToUser",
        "ram:CreateUser",
        "ram:DeleteUser",
        "ram:DetachPolicyFromUser",
        "ram:CreateAccessKey",
        "ram:DeleteAccessKey",
        "ram:ListAccessKeys",
        "ram:AttachPolicyToRole",
        "ram:AttachPolicyToUser",
        "ram:CreatePolicy",
        "ram:DeletePolicy",
        "ram:DetachPolicyFromRole",
        "ram:DetachPolicyFromUser",
        "ram:ListPoliciesForRole",
        "ram:ListPoliciesForUser",
        "ram:ListGroupsForUser",
        "ram:ListEntitiesForPolicy",
        "ram:GetPolicy",
        "ram:CreateRole",
        "ram:DeleteRole",
        "ram:PassRole",
        "ram:GetRole",
        "sts:AssumeRole"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "oss:OpenOssService",
        "privatelink:OpenPrivateLinkService",
        "tag:TagResources",
        "ros:*"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

点击确定,输入名称,点击确定,完成创建权限策略。

2. 为 RAM 用户或用户组授权权限策略: 点击左侧 权限管理 > 授权,进入授权页面。授权主体选择 RAM 用户或用户组,选择上述步骤创建的权限策略,点击确认新增授权 完成授权。

至此,您已完成 RAM 用户或用户组创建,并已完成授权。

准备专有网络 VPC 和交换机

提示:

  1. 如果已有符合地域和可用区要求的 VPC 和交换机,并期望将 BYOC 仓库部署在此 VPC 内,可以跳过下面创建专有网络 VPC 和交换机步骤。
  2. 当前支持的地域和交换机可用区为:
云平台地域名称地域 ID可用区 ID
阿里云华北 2 (北京)cn-beijingH, K
阿里云华东 2 (上海)cn-shanghaiB, E
阿里云华南 1 (深圳)cn-shenzhenD, F
阿里云华南 3 (广州)cn-guangzhouB
阿里云德国 (法兰克福)eu-central-1A

创建 BYOC 类型仓库前,需要使用上述 RAM 用户提前创建专有网络 VPC 和交换机,以下是具体操作。

打开阿里云 专有网络 VPC (opens in a new tab) 控制台,点击 专有网络 > 创建专有网络,进入 VPC 创建页面。

选择您期望创建 BYOC 仓库的地域,输入名称、选择 IPv4 网段,输入交换机名称和可用区,点击确定完成创建。

了解资源编排和资源栈

当用户创建 BYOC 类型仓库时,会首先借助云厂商的资源编排服务自动部署 Agent,完成 Agent 与 SelectDB Cloud 平台之间的私有连接,然后由 Agent 负责 BYOC 仓库的部署与管理工作。

ROS 资源编排模版说明

SelectDB 提供的资源编排模板运行在您的云账号下,并且模版代码可见、可审计,不会对您的数据与 VPC 内的其他环境进行操作。您可以通过以下链接获取 SelectDB 提供的资源编排模板:

https://selectdb-cloud-online-bj.oss-cn-beijing.aliyuncs.com/public/aliyun-byoc.yaml

当您通过阿里云 ROS 执行上述资源模板时,它会自动进行 Agent 的创建与部署。然后 Agent 会与 SelectDB Cloud 建立私有连接,并完成仓库初始化流程。

在完成资源编排脚本执行后,您即可从 SelectDB Cloud 平台进入相应仓库,像使用普通的仓库一样,开始新建用于数据分析的计算集群。

如何查看资源栈信息

您可以通过阿里云 资源编排ROS (opens in a new tab) 控制台,查看由 SelectDB 资源栈模板创建的所有资源信息,并可通过资源名称查看特定资源。

注意 所有资源栈模版创建出来的资源,都属于您的云账号,并只在您的 VPC 内使用,不会外泄。

  • 虚拟机
    • 名称:SelectDBAgent(ECS)
    • 用途:用于部署Agent,Prometheus,FluentBit等程序
  • 终端节点
    • 名称:SelectDBEndpoint(VPC Endpoint)
    • 用途:与 SelectDB Cloud 平台建立私网连接,从而可以拉取管控指令、推送监控和日志
  • 存储桶
    • 名称:SelectDBBucket(OSS Bucket)
    • 用途:存储数仓数据
  • 安全组
    • 名称:SelectDBSecurityGroup(VPC SecurityGroup)
    • 用途:绑定在终端节点和 ECS 实例,并通过安全组规则限定特定端口特定子网的流量才能通行(允许来自同一安全组的所有流量访问所有端口,来自同一子网的流量访问8666端口,允许所有流量出网)
  • 子用户/角色
    • 名称:(RAM User / RAM Role)
      • SelectDBUser(子用户),SelectDBUserAccessKey(aksk),SelectDBUserPolicy(子用户权限)
      • SelectDBControlPanelRole(管控侧角色),SelectDBControlPanelRolePolicy(管控侧角色权限),SelectDBDataAccessRole(内核侧角色),SelectDBDataAccessRolePolicy(内核侧角色权限)
    • 用途:
      • 创建出的子用户具备 Agent 所需的最小权限,之后进行的所有的管控操作均使用该子用户的身份进行,子用户信息只会在用户 VPC 内使用,不会外泄
      • 绑定在 ECS 实例上,后续可以获取临时 AkSk 来进行鉴权,相较于目前使用永久 AkSk 的方式更加安全。一个给管控侧使用(绑定在 Agent),一个给内核侧使用(绑定在 MS/FE/BE)

资源栈模板依赖的权限说明

在您的云账号下通过资源编排服务(ROS)执行资源栈模板时,会创建 ECS、VPC、OSS 等云资源或进行相关操作,因此需要一系列 RAM 权限。在正式执行前,请确保执行此模板的用户具备相应权限,否则可能会遇到执行模板失败的情况。

注意 资源栈模版的执行过程完全在您的云账号下进行,创建出来的资源也都属于您的云账号。SelectDB 不会获取您的云账号信息,也无法使用该账号的相应 RAM 权限。

以下是根据模板中定义的资源和操作所需的权限:

  • 权限汇总:
{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:TagResources",
        "ecs:UnTagResources",
        "ecs:DescribeInstances",
        "ecs:StopInstance",
        "ecs:StartInstance",
        "ecs:RebootInstance",
        "ecs:RenewInstance",
        "ecs:DeleteInstance",
        "ecs:ModifyInstanceAttribute",
        "ecs:ModifyInstanceChargeType",
        "ecs:ModifyInstanceAutoRenewAttribute",
        "ecs:ModifyInstanceSpec",
        "ecs:ModifyPrepayInstanceSpec",
        "ecs:AttachInstanceRamRole",
        "ecs:DetachInstanceRamRole",
        "ecs:ResizeDisk",
        "ecs:DescribeTags",
        "ecs:AddTags",
        "ecs:RemoveTags",
        "ecs:DescribeSecurityGroups",
        "ecs:DescribeSecurityGroupReferences",
        "ecs:AuthorizeSecurityGroup",
        "ecs:AuthorizeSecurityGroupEgress",
        "ecs:DeleteSecurityGroup",
        "ecs:RevokeSecurityGroup",
        "ecs:RevokeSecurityGroupEgress",
        "ecs:DescribeSecurityGroupAttribute",
        "slb:DescribeLoadBalancers",
        "slb:DescribeLoadBalancerAttribute",
        "slb:DeleteLoadBalancer",
        "slb:DescribeLoadBalancerListeners",
        "slb:StartLoadBalancerListener",
        "slb:DeleteLoadBalancerListener",
        "slb:DescribeVServerGroups",
        "slb:DescribeVServerGroupAttribute",
        "slb:ModifyVServerGroupBackendServers",
        "slb:RemoveVServerGroupBackendServers",
        "slb:RemoveBackendServers",
        "slb:DeleteVServerGroup",
        "slb:DescribeAccessControlLists",
        "slb:DescribeRules",
        "slb:CreateRules",
        "slb:DeleteRules",
        "slb:DescribeTags",
        "slb:AddTags",
        "slb:RemoveTags"
      ],
      "Resource": [
        "acs:ecs:*:*:*",
        "acs:vpc:*:*:*",
        "acs:slb:*:*:*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/resource-created-by": [
            "selectdb"
          ]
        }
      }
    },
    {
      "Action": [
        "vpc:DescribeVpcs",
        "vpc:DescribeVSwitches",
        "ecs:DescribeDisks",
        "ecs:DescribeImages",
        "ecs:CreateInstance",
        "ecs:RunInstances",
        "ecs:CreateSecurityGroup",
        "slb:CreateLoadBalancer",
        "slb:CreateLoadBalancerTCPListener",
        "slb:CreateVServerGroup",
        "slb:AddVServerGroupBackendServers",
        "slb:CreateAccessControlList",
        "slb:AddAccessControlListEntry",
        "slb:RemoveAccessControlListEntry",
        "slb:DeleteAccessControlList"
      ],
      "Resource": [
        "acs:ecs:*:*:*",
        "acs:vpc:*:*:*",
        "acs:slb:*:*:*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:selectdb-bucket-*",
        "acs:oss:*:*:selectdb-bucket-*/*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": [
        "privatelink:CreateVpcEndpoint",
        "privatelink:DeleteVpcEndpoint",
        "privatelink:GetVpcEndpointAttribute",
        "privatelink:ListVpcEndpoints",
        "privatelink:ListVpcEndpointServicesByEndUser",
        "privatelink:ListVpcEndpointSecurityGroups",
        "privatelink:ListVpcEndpointConnections",
        "privatelink:AddZoneToVpcEndpoint",
        "privatelink:AttachSecurityGroupToVpcEndpoint",
        "privatelink:DetachSecurityGroupFromVpcEndpoint",
        "privatelink:RemoveZoneFromVpcEndpoint",
        "privatelink:TagResources",
        "privatelink:UnTagResources",
        "privatelink:ListTagResources"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "ram:GetUser",
        "ram:AttachPolicyToUser",
        "ram:CreateUser",
        "ram:DeleteUser",
        "ram:DetachPolicyFromUser",
        "ram:CreateAccessKey",
        "ram:DeleteAccessKey",
        "ram:ListAccessKeys",
        "ram:AttachPolicyToRole",
        "ram:AttachPolicyToUser",
        "ram:CreatePolicy",
        "ram:DeletePolicy",
        "ram:DetachPolicyFromRole",
        "ram:DetachPolicyFromUser",
        "ram:ListPoliciesForRole",
        "ram:ListPoliciesForUser",
        "ram:ListGroupsForUser",
        "ram:ListEntitiesForPolicy",
        "ram:GetPolicy",
        "ram:CreateRole",
        "ram:DeleteRole",
        "ram:PassRole",
        "ram:GetRole",
        "sts:AssumeRole"
      ],
      "Resource": "*",
      "Effect": "Allow"
    },
    {
      "Action": [
        "oss:OpenOssService",
        "privatelink:OpenPrivateLinkService",
        "tag:TagResources",
        "ros:*"
      ],
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}
  • ECS 权限:

    • 管理 ECS 实例
    "ecs:TagResources",
    "ecs:UnTagResources",
    "ecs:DescribeInstances",
    "ecs:StopInstance",
    "ecs:StartInstance",
    "ecs:RebootInstance",
    "ecs:RenewInstance",
    "ecs:DeleteInstance",
    "ecs:ModifyInstanceAttribute",
    "ecs:ModifyInstanceChargeType",
    "ecs:ModifyInstanceAutoRenewAttribute",
    "ecs:ModifyInstanceSpec",
    "ecs:ModifyPrepayInstanceSpec",
    "ecs:AttachInstanceRamRole",
    "ecs:DetachInstanceRamRole",
    "ecs:ResizeDisk",
    "ecs:DescribeTags",
    "ecs:AddTags",
    "ecs:RemoveTags",
    "ecs:DescribeDisks",
    "ecs:DescribeImages",
    "ecs:CreateInstance",
    "ecs:RunInstances",
    • 管理 ECS 安全组
    "ecs:CreateSecurityGroup",
    "ecs:DescribeSecurityGroups",
    "ecs:DescribeSecurityGroupReferences",
    "ecs:AuthorizeSecurityGroup",
    "ecs:AuthorizeSecurityGroupEgress",
    "ecs:DeleteSecurityGroup",
    "ecs:RevokeSecurityGroup",
    "ecs:RevokeSecurityGroupEgress",
    "ecs:DescribeSecurityGroupAttribute",
  • VPC & PrivateLink & SLB 权限:

    • 获取 VPC 相关资源信息
    "vpc:DescribeVpcs",
    "vpc:DescribeVSwitches",
    • 管理 PrivateLink 终端节点
    "privatelink:CreateVpcEndpoint",
    "privatelink:DeleteVpcEndpoint",
    "privatelink:GetVpcEndpointAttribute",
    "privatelink:ListVpcEndpoints",
    "privatelink:ListVpcEndpointServicesByEndUser",
    "privatelink:ListVpcEndpointSecurityGroups",
    "privatelink:ListVpcEndpointConnections",
    "privatelink:AddZoneToVpcEndpoint",
    "privatelink:AttachSecurityGroupToVpcEndpoint",
    "privatelink:DetachSecurityGroupFromVpcEndpoint",
    "privatelink:RemoveZoneFromVpcEndpoint",
    "privatelink:TagResources",
    "privatelink:UnTagResources",
    "privatelink:ListTagResources"
    • 管理负载均衡器 SLB 资源
    "slb:DescribeLoadBalancers",
    "slb:DescribeLoadBalancerAttribute",
    "slb:DeleteLoadBalancer",
    "slb:DescribeLoadBalancerListeners",
    "slb:StartLoadBalancerListener",
    "slb:DeleteLoadBalancerListener",
    "slb:DescribeVServerGroups",
    "slb:DescribeVServerGroupAttribute",
    "slb:ModifyVServerGroupBackendServers",
    "slb:RemoveVServerGroupBackendServers",
    "slb:RemoveBackendServers",
    "slb:DeleteVServerGroup",
    "slb:DescribeAccessControlLists",
    "slb:DescribeRules",
    "slb:CreateRules",
    "slb:DeleteRules",
    "slb:DescribeTags",
    "slb:AddTags",
    "slb:RemoveTags",
    "slb:CreateLoadBalancer",
    "slb:CreateLoadBalancerTCPListener",
    "slb:CreateVServerGroup",
    "slb:AddVServerGroupBackendServers",
    "slb:CreateAccessControlList",
    "slb:AddAccessControlListEntry",
    "slb:RemoveAccessControlListEntry",
    "slb:DeleteAccessControlList"
  • OSS 权限:

    • 管理 OSS 存储桶以及对存储桶及其内容进行读写操作(针对特定桶)
    {
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:selectdb-bucket-*",
        "acs:oss:*:*:selectdb-bucket-*/*"
      ],
      "Effect": "Allow"
    },
  • RAM 权限:

    • 管理 RAM 用户、角色、策略
    "ram:GetUser",
    "ram:AttachPolicyToUser",
    "ram:CreateUser",
    "ram:DeleteUser",
    "ram:DetachPolicyFromUser",
    "ram:AttachPolicyToRole",
    "ram:AttachPolicyToUser",
    "ram:CreatePolicy",
    "ram:DeletePolicy",
    "ram:DetachPolicyFromRole",
    "ram:DetachPolicyFromUser",
    "ram:ListPoliciesForRole",
    "ram:ListPoliciesForUser",
    "ram:ListGroupsForUser",
    "ram:ListEntitiesForPolicy",
    "ram:GetPolicy",
    "ram:CreateRole",
    "ram:DeleteRole",
    "ram:PassRole",
    "ram:GetRole",
    "sts:AssumeRole"
    • 管理 RAM 访问密钥
    "ram:CreateAccessKey",
    "ram:DeleteAccessKey",
    "ram:ListAccessKeys",
  • ROS 权限:

    • 管理资源栈
    "ros:*"
  • 其他权限:

    • 开通 OSS 服务,开通 PrivateLink 服务,允许给资源打标签
    "oss:OpenOssService",
    "privatelink:OpenPrivateLinkService",
    "tag:TagResources",  

资源栈模板创建的子用户的权限说明

初次执行完资源栈模板后会创建一个子用户,用于后续在您的 VPC 内管控数据仓库相关组件,以下为该子用户权限示例:

注意 创建出来的子用户隶属于您的云账号,并只在您的 VPC 内使用,不会外泄。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:TagResources",
        "ecs:UnTagResources",      
        "ecs:DescribeInstances",
        "ecs:StopInstance",
        "ecs:StartInstance",
        "ecs:RebootInstance",
        "ecs:RenewInstance",
        "ecs:DeleteInstance",
        "ecs:ModifyInstanceAttribute",
        "ecs:ModifyInstanceChargeType",
        "ecs:ModifyInstanceAutoRenewAttribute",
        "ecs:ModifyInstanceSpec",
        "ecs:ModifyPrepayInstanceSpec",
        "ecs:AttachInstanceRamRole",
        "ecs:DetachInstanceRamRole",
        "ecs:ResizeDisk",
        "ecs:DescribeTags",
        "ecs:AddTags",
        "ecs:RemoveTags",
        "ecs:DescribeSecurityGroups",
        "ecs:AuthorizeSecurityGroup",
        "ecs:AuthorizeSecurityGroupEgress",
        "ecs:DescribeSecurityGroupAttribute",
        "ecs:DeleteSecurityGroup",
        "slb:DescribeLoadBalancers",
        "slb:DescribeLoadBalancerAttribute",
        "slb:DeleteLoadBalancer",
        "slb:DescribeLoadBalancerListeners",
        "slb:StartLoadBalancerListener",
        "slb:DeleteLoadBalancerListener",
        "slb:DescribeVServerGroups",
        "slb:DescribeVServerGroupAttribute",
        "slb:ModifyVServerGroupBackendServers",
        "slb:RemoveVServerGroupBackendServers",
        "slb:RemoveBackendServers",
        "slb:DeleteVServerGroup",
        "slb:DescribeAccessControlLists",
        "slb:DescribeRules",
        "slb:CreateRules",
        "slb:DeleteRules",
        "slb:DescribeTags",
        "slb:AddTags",
        "slb:RemoveTags"
      ],
      "Resource": [
        "acs:ecs:cn-beijing:*:*",
        "acs:vpc:cn-beijing:*:*",
        "acs:slb:cn-beijing:*:*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "acs:ResourceTag/resource-created-by": [
            "selectdb"
          ]
        }
      }
    },
    {
      "Action": [
        "vpc:DescribeVpcs",
        "vpc:DescribeVSwitches",
        "ecs:DescribeDisks",
        "ecs:CreateInstance",
        "ecs:RunInstances",
        "ecs:CreateSecurityGroup",
        "slb:CreateLoadBalancer",
        "slb:CreateLoadBalancerTCPListener",
        "slb:CreateVServerGroup",
        "slb:AddVServerGroupBackendServers",
        "slb:CreateAccessControlList",
        "slb:AddAccessControlListEntry",
        "slb:RemoveAccessControlListEntry",
        "slb:DeleteAccessControlList"
      ],
      "Resource": [
        "acs:ecs:cn-beijing:*:*",
        "acs:vpc:cn-beijing:*:*",
        "acs:slb:cn-beijing:*:*"
      ],
      "Effect": "Allow"
    },
    {
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:selectdb-bucket-bbkxkwwlcnmqcjyh",
        "acs:oss:*:*:selectdb-bucket-bbkxkwwlcnmqcjyh/*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "oss:BucketTag/resource-created-by": [
            "selectdb"
          ]
        }
      }
    }
  ]
}

具体权限划分如下:

  • ECS 权限:

    • 管理 ECS 实例
    "ecs:TagResources",
    "ecs:UnTagResources",
    "ecs:DescribeDisks",
    "ecs:RunInstances",
    "ecs:DescribeInstances",
    "ecs:StopInstance",
    "ecs:StartInstance",
    "ecs:RebootInstance",
    "ecs:RenewInstance",
    "ecs:DeleteInstance",
    "ecs:ModifyInstanceAttribute",
    "ecs:ModifyInstanceChargeType",
    "ecs:ModifyInstanceAutoRenewAttribute",
    "ecs:ModifyInstanceSpec",
    "ecs:ModifyPrepayInstanceSpec",
    "ecs:AttachInstanceRamRole",
    "ecs:DetachInstanceRamRole",
    "ecs:ResizeDisk",
    "ecs:DescribeTags",
    "ecs:AddTags",
    "ecs:RemoveTags",
    • 管理 ECS 安全组
    "ecs:DescribeSecurityGroups",
    "ecs:AuthorizeSecurityGroup",
    "ecs:AuthorizeSecurityGroupEgress",
    "ecs:DescribeSecurityGroupAttribute",
    "ecs:CreateSecurityGroup",
    "ecs:DeleteSecurityGroup",
  • VPC & SLB 权限:

    • 获取 VPC 相关资源信息
    "vpc:DescribeVpcs",
    "vpc:DescribeVSwitches",
    • 管理负载均衡器 SLB 资源
    "slb:DescribeLoadBalancers",
    "slb:DescribeLoadBalancerAttribute",
    "slb:DeleteLoadBalancer",
    "slb:DescribeLoadBalancerListeners",
    "slb:StartLoadBalancerListener",
    "slb:DeleteLoadBalancerListener",
    "slb:DescribeVServerGroups",
    "slb:DescribeVServerGroupAttribute",
    "slb:ModifyVServerGroupBackendServers",
    "slb:RemoveVServerGroupBackendServers",
    "slb:RemoveBackendServers",
    "slb:DeleteVServerGroup",
    "slb:DescribeAccessControlLists",
    "slb:DescribeRules",
    "slb:CreateRules",
    "slb:DeleteRules",
    "slb:DescribeTags",
    "slb:AddTags",
    "slb:RemoveTags",
    "slb:CreateLoadBalancer",
    "slb:CreateLoadBalancerTCPListener",
    "slb:CreateVServerGroup",
    "slb:AddVServerGroupBackendServers",
    "slb:CreateAccessControlList",
    "slb:AddAccessControlListEntry",
    "slb:RemoveAccessControlListEntry",
    "slb:DeleteAccessControlList"
  • OSS 权限:

    • 管理 OSS 存储桶以及对存储桶及其内容进行读写操作(针对特定桶)
    {
      "Action": "oss:*",
      "Resource": [
        "acs:oss:*:*:selectdb-bucket-*",
        "acs:oss:*:*:selectdb-bucket-*/*"
      ],
      "Effect": "Allow",
      "Condition": {
        "StringEquals": {
          "oss:BucketTag/resource-created-by": [
            "selectdb"
          ]
        }
      }
    }
© 2023 北京飞轮数据科技有限公司 京ICP备2022004029号 | Apache、Apache Doris 以及相关开源项目名称均为 Apache 基金会商标