레파지토리를 한층더 안전하게 운영하기 위해 개발자의 등급에 권한을 차등부여하고 Notification 설정을 하게된다.
AWS CodeCommit에서는 어떻게 설정하는지 보자
1. Master에 대한 Push와 Merge권한을 차등부여하기
Senior Developer는 Master에 Push와 Merge를 진행할 수 있지만, Junior Developer는 Branch에 Push할 수 있는 권한만주려고 한다.
1) [IAM]에서 [그룹] 메뉴를 들어가서 그룹을 생성한다. 해당 그룹의 Policy는 JSON 타입으로 정의하는데 아래와 같이 입력한다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"codecommit:GitPush",
"codecommit:DeleteBranch",
"codecommit:PutFile",
"codecommit:MergeBranchesByFastForward",
"codecommit:MergeBranchesBySquash",
"codecommit:MergeBranchesByThreeWay",
"codecommit:MergePullRequestByFastForward",
"codecommit:MergePullRequestBySquash",
"codecommit:MergePullRequestByThreeWay"
],
"Resource": "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo", #내 Repository 설정에 맞게 변경
"Condition": {
"StringEqualsIfExists": {
"codecommit:References": [
"refs/heads/main"
]
},
"Null": {
"codecommit:References": "false"
}
}
}
]
}
※ 참고로 위에 Condition-StringEqualsIfExists-codecommit:References에 "refs/heads/main" 은 "refs/heads/master"로 변경해야 master 브랜치에 적용됩니다.
2) Junior 개발자 계정을 위 그룹에 매핑합니다.끝.
2. Amazon SNS로 CodeCommit 변경사항 발생시 알람
첫번째 방법
1) [CodeCommit]-[Repositories]-[Settings]를 접속한다. Notification 메뉴를 접속하낟. Create Notification Rule을 클릭한다.
2) Detail Type에 Full을 선택하고 Events that trigger notifications는 Select All을 선택한다.
3) Create Amazon SNS Topic을 클릭하여 새 Topic을 만든다. 그리고 Summit
두번째 방법
1) [CodeCommit]-[Repositories]-[Settings]를 접속하여 Trigger메뉴를 들어가 Create Trigger를 클릭한다.
2) Events에 Push to Existing Branch를 선택하고, Service Detail을 AWS Lambda로 선택한다. 마지막으로 Topic은 첫번째 방법에서 생성한것을 사용하면된다. 없다면 Create해야 한다.
세번째 방법은 EventBridge의 Trigger에서 정의하는방법
네번째 방법은 Lambda Function에서 정의하는 방법이 있다.
https://docs.aws.amazon.com/codecommit/latest/userguide/how-to-notify-lambda.html
Example: Create an AWS CodeCommit trigger for an AWS Lambda function - AWS CodeCommit
Example: Create an AWS CodeCommit trigger for an AWS Lambda function You can create a trigger for a CodeCommit repository so that events in the repository invoke a Lambda function. In this example, you create a Lambda function that returns the URL used to
docs.aws.amazon.com
'IaaS > 퍼블릭클라우드' 카테고리의 다른 글
(AWS) CodeDeploy 란? (0) | 2022.01.07 |
---|---|
(AWS) CodeBuild 란? (0) | 2021.12.30 |
(AWS) Code-Commit이란? (0) | 2021.12.27 |
(아키텍처) 하이브리드 환경을 위한 Amazon Route 53 DNS Resolver 신규 기능 (0) | 2021.10.18 |
(아키텍처) 클라우드 모니터링의 이해 (0) | 2021.10.18 |