当EDAS的应用和集群绑定标签后,您可以使用标签控制资源的访问权限。本文以应用为例,介绍如何为RAM用户授予特定的策略,通过标签来控制RAM用户对应用的相关权限。
前提条件
在EDAS上已部署应用。具体操作,请参见:
K8s环境:创建和部署应用概述(K8s)
ECS环境:应用创建和部署概述(ECS)
在应用上绑定标签。具体操作,请参见使用标签查找资源。
背景信息
阿里云的用户权限是基于策略为管理主体的,您可以根据不同用户的职责配置RAM策略。在策略中,您可以定义多个标签,然后将一个或多个策略授权给RAM用户或用户组。如果要控制RAM用户可以访问哪些资源,您可以创建自定义策略并使用标签来实现访问控制。
使用标签控制资源的访问权限仅支持RAM鉴权,不支持EDAS内置的鉴权模式。更多权限管理信息,请参见权限管理概述。
假设在EDAS上已部署3个应用,这三个应用分别属于不同环境和不同项目,且所绑定的标签信息如下:
app-001:
Environment=TEST #测试环境
Team=team1 #项目1
app-002:
Environment=DEV #开发环境
Team=team1 #项目1
app-003:
Environment=PROD #生产环境
Team=team2 #项目2
假设您有三个RAM用户(user1,user2和user3),为实现权限最小管控,您可以为RAM用户授予目标资源的访问权限。假设有以下三种场景:
user1需要管理所有的开发环境和测试环境的应用。
user2需要管理项目1下的所有测试环境的应用。
user3需要访问除了生产环境以外所有的应用。
您可以使用标签来自定义权限策略,实现上述RAM用户的需求。
使用标签配置自定义权限策略
使用阿里云账号(主账号)或具有管理权限的RAM用户登录RAM控制台。
在左侧导航栏,选择 。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
输入权限策略内容,然后单击继续编辑基本信息。
基于背景信息中列出的三个场景,本文提供的示例权限策略内容如下:
user1需要管理所有的开发环境和测试环境的应用。
{ "Statement": [ { "Action": "edas:ManageApplication", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Environment": ["DEV", "TEST"] } } } ], "Version": "1" }
user2需要管理项目1下的所有测试环境的应用。
{ "Statement": [ { "Action": "edas:ManageApplication", "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Team": ["team1"], "edas:tag/Environment": ["TEST"] } } } ], "Version": "1" }
user3需要访问除了生产环境以外所有的应用。
{ "Statement": [ { "Action": "edas:ReadApplication", "Effect": "Allow", "Resource": "*" }, { "Action": "edas:ReadApplication", "Effect": "Deny", "Resource": "*", "Condition": { "StringEquals": { "edas:tag/Environment": ["PROD"] } } } ], "Version": "1" }
输入策略名称和备注,然后在策略内容区域检查设置的策略内容,然后单击确定。
添加完自定义权限策略后,新增策略出现在权限策略列表。
为RAM用户授权
使用阿里云账号登录RAM控制台。
在左侧导航栏选择 。
在用户列表页面找到目标RAM用户,单击操作列下的添加权限。
在添加权限面板的授权范围区域,单击云账号全部资源。
在添加权限面板的选择权限区域,单击自定义策略,在搜索文本框搜索目标策略,然后单击目标策略,再单击确定。
在添加权限面板,确认授权信息并单击完成。
RAM用户访问资源
RAM用户登录EDAS控制台,查看是否能访问目标资源。