文档首页/ 图引擎服务 GES/ 最佳实践/ 用户授权最小化权限实践
更新时间:2025-09-29 GMT+08:00
分享

用户授权最小化权限实践

实践场景及目标

假设某工程师专职负责图引擎服务相关工作,且仅需要GES服务的管理员权限。则在为该用户授权时,如果项目管理员直接赋予该工程师IAM账号GES FullAccess或GES Administrator权限,则会出现非必需权限过大的风险:GES FullAccess系统策略预置了依赖服务(ECS、VPC服务)的所有权限,GES Administrator角色依赖Server Administrator权限和Tenant Guest权限,均会导致其拥有ECS和VPC服务的管理员权限。

为解决此问题,项目管理员可以按照如下解决方案进行权限最小化配置,这样既能满足实际业务使用,也避免了权限过大的风险。

  1. 创建自定义策略,包含GES服务所有权限及GES服务依赖服务最小权限合集。
  2. 创建用户组,将该工程师IAM账号加入到用户组中,并授予上一步中创建的自定义策略。

操作流程

  1. 创建自定义策略:创建自定义策略,授予GES服务所有权限以及GES服务依赖服务的最小权限合集。
  2. 创建用户组并授权:创建用户组,并授予上一步中创建的自定义策略。
  3. 创建IAM用户并加入用户组:为工程师创建IAM账号,并加入到用户组中。

创建自定义策略

  1. 使用华为账号登录“统一身份认证服务 IAM”控制台。
  2. 在IAM服务控制台中,单击“权限管理 > 权限”,在权限页面单击右上方的“创建自定义策略”。

    图1 创建自定义策略

  3. 在“创建自定义策略”界面,策略配置方式切换至JSON视图,然后按照如下策略内容,分别创建GES_PermissionsOfDependentService_global和GES_PermissionsOfDependentService_region自定义策略。

    创建自定义策略时,暂不支持同时选全局级云服务和项目级云服务,因此需要将依赖服务自定义策略拆分为两条分别创建。

    图2 创建自定义策略示例
    依赖的全局级(global级)云服务的自定义策略GES_PermissionsOfDependentService_global:
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:bucket:GetBucketLocation",
                    "obs:bucket:HeadBucket",
                    "obs:object:PutObject",
                    "obs:bucket:ListAllMyBuckets",
                    "obs:bucket:ListBucket",
                    "rms:resources:list",
                    "tms:*:list",
                    "eps:enterpriseProjects:list",
                    "eps:enterpriseProjects:get",
                    "iam:users:listUsers",
                    "iam:agencies:listAgencies",
                    "iam:permissions:listRolesForAgencyOnDomain",
                    "iam:permissions:listRolesForAgencyOnProject",
                    "iam:permissions:listRolesForAgency"
                ]
            }
        ]
    }
    依赖的项目级(region级)云服务的自定义策略GES_PermissionsOfDependentService_region:
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "ges:*:*",
                    "ecs:cloudServerNics:update",
                    "ecs:flavors:get",
                    "ecs:cloudServerFlavors:get",
                    "ecs:availabilityZones:list",
                    "evs:types:get",
                    "vpc:ports:get",
                    "vpc:ports:create",
                    "vpc:ports:update",
                    "vpc:ports:delete",
                    "vpc:quotas:list",
                    "vpc:securityGroups:get",
                    "vpc:subnets:get",
                    "vpc:vpcs:list",
                    "vpc:vpcs:get",
                    "ces:*:list*",
                    "ces:*:get*",
                    "lts:*:list",
                    "lts:*:get"
                ]
            }
        ]
    }
    • 当图实例需要绑定EIP时,全局级策略GES_PermissionsOfDependentService_global需要增加以下action用于创建委托:

      "iam:roles:listRoles","iam:roles:createRole","iam:permissions:grantRoleToAgencyOnDomain","iam:agencies:getAgency","iam:agencies:createAgency","iam:roles:updateRole","iam:permissions:grantRoleToAgency","iam:permissions:grantRoleToAgencyOnProject"

      项目级策略GES_PermissionsOfDependentService_region需要增加以下action用于绑定eip:

      "vpc:publicIps:get","vpc:publicIps:list","vpc:publicIps:update"

    • 当需要在创建图实例时自动创建eip时,项目级策略GES_PermissionsOfDependentService_region需要增加以下action用于创建eip:

      "vpc:publicIps:create"

    • 当需要在删除图实例时删除绑定的eip时,项目级策略GES_PermissionsOfDependentService_region需要增加以下action用于删除eip:

      "vpc:publicIps:delete"

创建用户组并授权

  1. 在IAM服务控制台中,左侧导航窗格中,选择“用户组”,单击右上角的“创建用户组”。

    图3 创建用户组

  2. 在“创建用户组”界面,输入用户组名称“GES_Policy”。

    图4 用户组名称

  3. 单击“确定”,用户组创建完成,用户组列表中显示新创建的用户组。
  4. 在用户组列表中,单击新建用户组右侧的“授权”。

    图5 用户组授权

  5. 在搜索框中输入GES_PermissionsOfDependentService_global,勾选搜索到的自定义策略,单击“下一步”。

    图6 授权global自定义策略

  6. 授权范围方案选择“全局服务资源”,单击“确定”,完成授权。

    图7 设置授权范围

  7. 重复步骤4,在搜索框中输入GES_PermissionsOfDependentService_region,勾选搜索到的自定义策略,单击“下一步”。

    图8 授权region自定义策略

  8. 授权范围方案选择“指定区域项目资源”下需要授予的区域项目,单击“确定”,完成授权。

    图9 设置授权范围

创建IAM用户并加入用户组

  1. 在IAM服务控制台中,左侧导航窗格中,选择“用户”,单击右上方的“创建用户”。

    图10 创建用户

  2. 在“创建用户”页面按照下图配置“用户信息”,完成配置后单击页面右下角的“下一步”。

    • 用户信息:用户名自定义填写。
    • 访问方式:选择“管理控制台访问”和“编程访问”。
    • 凭证类型:勾选访问密钥和密码,推荐为用户自定义初始密码。
    • 登录保护:根据实际需求选择。
    图11 配置用户信息

  3. 选择将用户加入到GES_Policy用户组,单击页面右下角的“创建用户”。

    图12 加入用户组

用户登录并验证权限

  1. 创建IAM用户并加入用户组章节中新建的IAM账号登录华为云控制台,切换至授权区域。
  2. 在“服务列表”中选择图引擎服务,进入图引擎服务控制台。
  3. 进入图引擎服务控制台的各个页面,验证各项功能是否正常。

相关文档