我尝试编写一个 IAM 策略来限制用户使用下面的方法删除分支/存储库。但是可以看到分支的删除操作是使用命令 git push origin --delete test-delete-branch 执行的。
更正我的策略或任何考虑忽略删除操作的步骤。其余代码提交操作应该有效。
{
"版本": "2012-10-17",
“陈述”: [
{
"效果": "允许",
“行动”: [
“代码提交:*”
],
“资源”:“arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo”
},
{
“效果”:“拒绝”,
“行动”: [
“代码提交:”代码提交:删除分支”
],
“资源”:“arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo”
“健康)状况”: {
“StringEqualsIfExists”:{
“代码提交:参考”:[
“refs/heads/测试删除分支”,
]
},
“无效的”: {
“代码提交:参考”:“假”
}
}
}
]
}
您的 IAM 政策有一些问题需要纠正。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codecommit:*"
],
"Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo"
},
{
"Effect": "Deny",
"Action": "codecommit:DeleteBranch",
"Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
"Condition": {
"StringEquals": {
"codecommit:References": "refs/heads/test-delete-branch"
}
}
}
]
}