🔖
AWS CodeCommitで特定のリポジトリにだけにアクセスできるPolicyを作りたかった
地味に大変だったのでメモ・・・。社内に公開していたものを、zennでも公開。
結論
CodeCommit承認ルールをいじらせたくない場合
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"codecommit:DeleteRepository"
],
"Resource": "*",
"Effect": "Deny"
},
{
"Action": [
"codecommit:List*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"codecommit:*ApprovalRule*"
],
"Resource": "*",
"Effect": "Deny"
},
{
"Action": [
"codecommit:*"
],
"Resource": "arn:aws:codecommit:ap-northeast-1:えいだぶるえすあかうんとあいでぃ:りぽじとりめい",
"Effect": "Allow"
}
]
}
CodeCommit承認ルールをいじらせても良い場合
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"codecommit:DeleteRepository"
],
"Resource": "*",
"Effect": "Deny"
},
{
"Action": [
"codecommit:List*",
"codecommit:*ApprovalRule*"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"codecommit:*"
],
"Resource": "arn:aws:codecommit:ap-northeast-1:えいだぶるえすあかうんとあいでぃ:りぽじとりめい",
"Effect": "Allow"
}
]
}
結果
というか、AWS Web Consoleで特定のユーザーでログインした時の様子
権限を持っているリポジトリだけ様子が伺える。
説明
Action codecommit:ListRepositoriesは、Resource * しか受け付けない。codecommit:ListRepositoriesだけResource *にしてもよかったが、Web Consoleで変なエラーが出て、利用者から照会があると嫌なのでcodecommit:List*を指定。
最近追加されたCodeCommit承認ルールの操作 codecommit:*ApprovalRule*は、Resource * しか受け付けないので、いじりたさそうなプロジェクトのリポジトリは、Allowにして、絶対使わさそうなリポジトリはDenyにしておいた。
参考
Discussion