授权RAM用户ACR指定命名空间权限
本文介绍如何授权RAM用户ACR指定命名空间权限。
步骤一:修改服务角色授权策略
用户首次访问容器计算服务(ACS)控制台将授权创建服务角色AliyunCCManagedAcrRole,授权ACS通过该服务角色访问ACR容器镜像服务获取临时账号密码,用于启动ACS Pod实例。该服务角色默认授权策略如下:
{
"Version": "1",
"Statement": [
{
"Action": [
"cr:GetAuthorizationToken",
"cr:ListInstanceEndpoint",
"cr:PullRepository"
],
"Resource": [
"*"
],
"Effect": "Allow"
}
]
}
默认授权策略中的*,表示完全匹配,例如"Resource"为"*",表示授予所有地域、命名空间下,所有ACR资源实例cr:etAuthorizationToken,cr:ListInstanceEndpoint,cr:PullRepository的操作权限。该默认授权策略授权范围较大,请您尽快自定义修改授权策略,将"Resource"限制在指定范围,样例如下:
acs:cr:::repository/$instanceid/$namespace/ 表示指定镜像仓库实例ID和命名空间授权。
acs:cr:*::repository/$instanceid/ 表示指定镜像仓库实例ID授权。
步骤二:创建自定义策略
使用阿里云账号登录RAM控制台。
在左侧导航栏,选择权限管理 > 权限策略。
在权限策略页面,单击创建权限策略。
在创建权限策略页面,单击脚本编辑页签。
将以下策略内容复制到文本框中,然后根据实际情况替换策略内容中的instanceid和namespace,单击下一步。
说明策略内容中的
*
,表示完全匹配,例如cr:ListInstance*
表示授予cr:ListInstance开头的所有action,设置acs:cr:*:*:repository/$instanceid/$namespace/*
为acs:cr:*:*:repository/cri-123456/ns/*
,表示授予所有地域下ID为cri-123456的实例的ns命名空间下的所有权限。将
$instanceid
与$namespace
替换为需授权的容器镜像服务实例ID和Namespace名称。
输入权限策略名称和备注。
单击确定。
步骤三:授予RAM用户自定义策略
使用阿里云账号登录RAM控制台。
在左侧导航栏,选择身份管理 > 用户。
在用户页面,单击目标RAM用户操作列的添加权限。
在添加权限面板,为RAM用户添加权限。
选择授权应用范围。
说明整个云账号:权限在当前阿里云账号内生效。
指定资源组:权限在指定的资源组内生效。指定资源组授权生效的前提是该云服务已支持资源组。更多信息,请参见支持资源组的云服务。
输入授权主体。授权主体即需要授权的RAM用户,系统会自动填入当前的RAM用户,您也可以添加其他RAM用户。
选择权限策略。
说明每次最多绑定5条策略,如需绑定更多策略,请分次操作。
单击确定和完成。
说明使用RAM用户登录容器镜像控制台。您可以在容器镜像控制台授予的命名空间下进行构建、推送、拉取镜像等操作。