🙈

⃝ 동글동글 ⃝

🪐ᐩ˖ 🍎

AWS

[Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - IAM편

JONG_UK 2023. 4. 3. 18:23
728x90
반응형
SMALL

AWS EC2(Instance, Elastic IP, Security Group, Load Balancer, Target Group), IAM, S3 Bucket, CodeDeploy, Route53, ACM + GitHub Actions를 이용하여 Spring Boot 프로젝트를 AWS에 자동 배포 및 HTTPS 통신을 하려고 합니다.

 

제가 했던 자동 배포 과정을 담고 있는 글이니 처음 글부터 하나하나 차근차근 봐주시면 감사하겠습니다.

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - EC2편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - IAM편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - S3 버킷편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - CodeDeploy편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - GitHub Actions편

 

구현 과정을 담기 이전에 각 파트별 개념을 먼저 짚고 시작해 보도록 하겠습니다.

2. [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 Https 통신 - IAM편

💡 IAM 의 개념

IAM 간단한 설명

AWS Identity and Access Management(IAM)은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 웹 서비스입니다. 

IAM을 사용하면 사용자가 액세스할 수 있는 AWS 리소스를 제어하는 권한을 중앙에서 관리할 수 있습니다. 

IAM을 사용하여 리소스를 사용하도록 인증(로그인) 및 권한 부여(권한 있음)된 대상을 제어합니다.

 

IAM 사용자는 여러개를 만들 수 있는데 각 사용자마다 접근 권한을 따로 지정해 줄 수 있습니다. 예를들어 어떤 게정은 EC2에만, 어떤 계정은 S3만 접근 가능하게 할 수 있습니다. 이렇게 하면 IAM 사용자마다 개별적인 접근 권한만 가지기 때문에 보안성이 높아집니다.

 

또한 IAM 계정은 Access Key를 발급받아 사용할 수 있습니다.

 

IAM의 기능

AWS 홈페이지에 나와있는 내용을 토대로 3가지의 기능만 설명드리도록 하겠습니다. 

 

1. AWS 계정에 대한 공유 액세스

- 암호나 액세스 키를 공유하지 않고도 AWS 계정의 리소스를 관리하고 사용할 수 있는 권한을 다른 사람에게 부여할 수 있습니다.

 

2. 세분화된 권한

- 리소스에 따라 여러 사람에게 다양한 권한을 부여할 수 있습니다. 예를 들어 일부 사용자에게 Amazon Elastic Compute Cloud(Amazon EC2), Amazon Simple Storage Service(Amazon S3), Amazon DynamoDB, Amazon Redshift 및 기타 AWS 서비스에 대한 완전한 액세스를 허용할 수 있습니다. 다른 사용자에게는 일부 S3 버킷에 대한 읽기 전용 권한, 일부 EC2 인스턴스를 관리할 수 있는 권한 또는 결제 정보에만 액세스할 수 있는 권한을 허용할 수 있습니다.

 

3. Amazon EC2에서 실행되는 애플리케이션을 위한 보안 AWS 리소스 액세스

- EC2 인스턴스에서 실행되는 애플리케이션의 경우 IAM 기능을 사용하여 자격 증명을 안전하게 제공할 수 있습니다. 이러한 자격 증명은 애플리케이션에 다른 AWS 리소스에 액세스할 수 있는 권한을 제공합니다. 예를 들면 이러한 리소스에는 S3 버킷 및 DynamoDB 테이블이 있습니다.

 

⭐️ IAM 설정

IAM 초기 세팅

먼저 아래 링크에서 콘솔에 로그인을 한 뒤 IAM를 검색하여 초기 화면으로 이동

 

무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어

Q: AWS 프리 티어란 무엇입니까? AWS 프리 티어는 고객에게 서비스별로 지정된 한도 내에서 무료로 AWS 서비스를 살펴보고 사용해 볼 수 있는 기능을 제공합니다. 프리 티어는 12개월 프리 티어, 상

aws.amazon.com

IAM USER 만들기

AWS 검색창에 IAM이라고 입력해서 IAM 페이지로 넘어와주세요.

 

왼쪽 바에서 엑세스 관리 -> 사용자를 클릭해서 사용자를 생성해 봅시다.

 

 

 

저희는 IAM 사용자를 만들어 S3와 CodeDeploy를 GitHub Actios와 연결될 수 있도록 해야합니다.

연결은 IAM 사용자의 Access Key를 이용하기 때문에 사용자를 만든 후  발급받아야 합니다. 그래서 일단 아래와 같이 IAM USER를 생성해 봅시다.

 

 

AmazonS3FullAccess 권한과 AmazonCodeDeployFullAccess 권한 두개를 넣어줍시다.

 

 

아래처럼 두 개의 권한이 제대로 삽입됐다면 사용자를 생성해 줍시다.

 

사용자 로그인 암호와 이름은 이 페이지를 넘어가면 다시 찾을 수 없습니다. 꼭 csv 다운로드와 이메일 로그인 지침 두가지 중 하나를 꼭 선택해 주세요.

 

 

이제 만든 사용자로 들어와서 중단에 있는 보안 자격 증명에서 GitHub에 연동하기 위한 Access Key를 발급받아야 합니다.

 

 

GitHub에서 AWS CLI를 이용할 것이기 때문에 CLI를 이용하기 위한 Access Key를 발급받아 봅시다.

 

 

이렇게 엑세스 키를 만들었습니다.

여기서도 엑세스 키(Access Key)와 비밀 엑세스 키(Secret Access Key)는 이 페이지를 벗어나면 다시 볼 수 없기 때문에 꼭 csv 다운로드를 해둡시다.

여기서 이제 GitHub를 들어가 주시고 내가 배포할 Repo로 들어갑니다. 그 후 거기에 있는 Settings를 눌러 아래 3가지 항목에 맞게 입력해 줄 것입니다.

- AWS_ACCESS_KEY_ID

- AWS_SECRET_ACCESS_KEY

- AWS_REGION

 

Access Key와 Secret Access Key는 발급 받은 친구들을 입력해 주시고, AWS_REGION은 여러분이 만든 AWS 리전을 입력해 주시면 됩니다. 저는 ap-northeast-2 입니다.

 

 

이 항목들은 나중에 GitHub Actions에서 사용할 예정이기 때문에 잠깐 두고 이제 IAM 역할을 만들어 줘야 합니다.

지금까지는 IAM USER를 만든 것이고, IAM 역할은 EC2 인스턴스에 역할을 부여해 주는 것입니다. 

이제 역할을 만들어 봅시다.

EC2에서 S3, CodeDeploy 접근을 위한 IAM 역할

 

 

EC2에서 사용할 역할이기 때문에 EC2를 선택해 주고 다음을 누릅시다.

 

권한은 CodeDeploy와 S3에서 사용할 IAM 역할이기 때문에 위와 같이 CodeDeploy, S3를 검색해 FullAccess에 해당하는 권한을 삽입하고 다음을 누릅시다.

총 2가지 권한이 들어가면 되는겁니다!

 

 

이제 EC2의 인스턴스에서 IAM 역할을 바꿔야 합니다.

 

EC2로 돌아가셔서 이전에 만들었던 인스턴스에 IAM 역할을 바꿔봅시다.

 

방금 만든 역할이 있다면 선택해 주세요. 그리고 업데이트!

 

 

마지막으로 CodeDeploy에서 사용할 IAM 역할을 만들어 봅시다.

 

CodeDeploy에서 사용할 IAM 역할

'다른 AWS 서비스의 사용 사례:' 부분에서 CodeDeploy를 검색하고 아래와 같이 해주고 다음!

 

권한 한번 봐주시고

 

저는 이미 만들어둔게 있어서 연결된 엔터티가 2로 나오지만 처음이시라면 다르게 나올 수 있습니다!

 

이전에 만들었던 역할처럼 이름만 슬쩍 만들어주고 역할을 생성해 줍시다!

 

이 역할은 나중에 CodeDeploy에서 적용할 예정이니 이후 포스트에서 만납시다!

 

여기까지 완성하셨다면 IAM 설정은 끝이 났습니다. 이제 S3 버킷을 만드는 포스트를 작성해 보도록 하겠습니다.

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - EC2편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - IAM편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - S3 버킷편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - CodeDeploy편

2023.04.03 - [AWS] - [Spring Boot] AWS CodeDeploy + GitHub Actios 자동 배포 및 HTTPS 통신 - GitHub Actions편

 

728x90
반응형
LIST