해당 자료는 총 5개 파트로 나누어서 자료를 정리할 예정이다.
part 1. IAM user 권한 설정
part 2. ECR repo 세팅
part 3. EB 설정 후 샘플 코드 서버 세팅
part 4. Spring Boot 프로젝트 내부 설정
part 5. github action 세팅
Intro. workflow

Part 1. IAM user 권한 설정
1. IAM(Identity and Access Management) user 사용 이유
이번 시간에는 IAM user 생성부터 시작할 것이다. aws는 root 계정으로 접근하는 것을 추천하지 않는다. 특정 권한을 가진 user로 aws 서비스에 접근하는 것을 추천한다. 즉, iam user는 aws 서비스에 접근 권한을 얻기 위함이다.
2. IAM user 생성
- 사용자 추가 클릭

AWS 자격 증명 유형 선택 - 엑세스 키 선택

기존 정책 직접 연결에서 정책을 직접 선택

1) AdministratorAccess-AWSElasticBeanstalk
Elastic Beanstalk 애플리케이션, 애플리케이션 버전, 구성 설정, 환경, 환경의 기본 리소스를 생성, 수정 및 삭제할 수 있는 모든 관리 권한을 사용자에게 제공합니다.
2) AmazonEC2ContainerRegistryReadOnly, AmazonElasticContainerRegistryPublicReadOnly
Amazon ECR에 대한 읽기 전용 권한을 부여합니다.
3) AWSElasticBeanstalkManagedUpdatesCustomerRolePolicy
AWS EB 서비스 역할 관리
4) AWSElasticBeanstalkWebTier
이 정책을 넣으면 EB에 배포한 내용을 S3 버켓에 넣어준다.
ps. 해당 정책에 대한 자세한 내용은 아래 references를 참조하길 바란다.

ps. 여기서 엑세스 키 id는 확인할 수 있지만 비밀 엑세스 키는 잊어버리면 새로 발급받아야 하니 절대 잊어버리지 않도록 한다.
3. user 정책 권한 사용 내역 확인 방법

user를 클릭한 후 엑세스 관리자를 클릭하면 user 정책으로 어떤 서비스를 사용했는지 확인할 수 있다.
4. ECR 접근을 위한 커스텀 정책 생성

정책 - 정책 생성 클릭

서비스 선택 - Elastic Container Registry 선택

작업 - 모든 Elastic Container Registry 작업(ecr.*) 클릭

리소스 - ARN 추가 클릭


5. ECR 커스텀 정책 설정

유저 클릭 - 권한 추가

커스텀 정책 클릭 후 적용

6. github action에서 사용될 IAM user Access key 설정
- github action이 aws에 접근할 권한을 주는 id, pwd를 아까 iam user를 만들면서 발급받은 Access key와 secret access key를 github에 설정해준다.

settings - secrets - actions - new repository secret 클릭

add secret 클릭
AWS_SECRET_ACCESS_KEY도 같은 방식으로 설정.
ps. 다음 시간에는 ECR 세팅에 대해 다루어 보겠습니다.
references
1) iam user 정책 권한 설정
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/AWSHowTo.iam.managed-policies.html
https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/iam-servicerole.html
2) iam 작동 방식
https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/intro-structure.html
3) iam user with ecr
https://docs.aws.amazon.com/AmazonECR/latest/userguide/get-set-up-for-amazon-ecr.html
4) ecr permission config
https://towardsdatascience.com/deploying-a-docker-container-with-ecs-and-fargate-7b0cbc9cd608
https://earth-95.tistory.com/122