能否限制AWS IAM用户仅在控制台查看指定CodeCommit仓库?
如何让IAM用户仅在CodeCommit控制台看到指定仓库
可行,且不需要让用户看到所有仓库列表,以下是两种实现方案:
方案1:直接访问目标仓库,不开启仓库列表权限
如果用户不需要通过控制台的仓库列表导航,仅需操作指定仓库,可以保留你原有的IAM策略,不添加codecommit:ListRepositories权限。
用户可以直接访问该仓库的控制台专属URL:https://eu-west-1.console.aws.amazon.com/codesuite/codecommit/repositories/Allowed-Repo/browse
此时用户能正常对Allowed-Repo进行全读写操作,但无法进入仓库列表页面,完全看不到其他仓库的存在。
原策略代码:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:*", "Resource": "arn:aws:codecommit:eu-west-1:123456789:Allowed-Repo" } ] }
方案2:开启仓库列表权限,但自动过滤无权限仓库
如果你希望用户能通过控制台的仓库列表导航操作目标仓库,可以添加codecommit:ListRepositories权限,控制台会自动隐藏用户无权限访问的仓库。
CodeCommit控制台的逻辑是:调用ListRepositories获取所有仓库名后,会逐个调用GetRepository获取仓库详情,仅显示用户拥有GetRepository权限的仓库(你的原策略已包含该仓库的全权限,自然覆盖GetRepository)。
调整后的完整策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codecommit:*", "Resource": "arn:aws:codecommit:eu-west-1:123456789:Allowed-Repo" }, { "Effect": "Allow", "Action": "codecommit:ListRepositories", "Resource": "*" } ] }
此时用户进入CodeCommit控制台,只会看到Allowed-Repo这一个仓库,其他仓库不会出现在列表中。
内容的提问来源于stack exchange,提问作者RTF
相关产品推荐
相关产品推荐

