Day 37: EC2 액세스 관리와 S3 역할 기반 권한
I’m happy to translate the article for you, but I need the full text of the post (the content you’d like translated). The source line you provided is just the link; please paste the article’s body here, and I’ll translate it into Korean while preserving the formatting, markdown, and code blocks.
Lab Information
Nautilus DevOps 팀은 데이터를 저장하고 검색하기 위해 S3 버킷과 상호 작용하는 애플리케이션을 EC2 인스턴스에 설정해야 합니다. 팀은 프라이빗 S3 버킷을 생성하고, 적절한 IAM 정책 및 역할을 설정한 뒤, 애플리케이션 기능을 테스트해야 합니다.
Task Overview
-
EC2 Instance Setup
xfusion-ec2라는 이름의 인스턴스가 이미 존재합니다.- 해당 인스턴스는 S3 버킷에 접근할 수 있어야 합니다.
-
Setup SSH Keys
aws-client호스트에서 새로운 SSH 키 쌍(id_rsa및id_rsa.pub)을 생성합니다.- 공개 키를 EC2 인스턴스의 root 사용자
authorized_keys에 추가합니다.
-
Create a Private S3 Bucket
- 버킷 이름:
xfusion-s3-29734. - 버킷이 프라이빗 상태인지 확인합니다.
- 버킷 이름:
-
Create an IAM Policy and Role
- 정책은
xfusion-s3-29734에 대해s3:PutObject,s3:GetObject,s3:ListBucket권한을 허용해야 합니다. - 역할 이름:
xfusion-role. - 정책을 역할에 연결하고, 해당 역할을 EC2 인스턴스에 할당합니다.
- 정책은
-
Test the Access
- EC2 인스턴스에 SSH 접속한 뒤 파일을 버킷에 업로드합니다.
- 버킷 내용을 나열하여 정상 동작을 확인합니다.
Step 1: 기존 EC2 인스턴스 확인
xfusion-ec2라는 이름의 EC2 인스턴스가 이미 존재합니다. 현재 단계에서는 변경이 필요하지 않으며, 이후에 이 인스턴스에 S3 접근을 위한 IAM 역할을 연결할 예정입니다.
단계 2: SSH 키 설정 (비밀번호 없는 접근)
2.1 aws-client에서 SSH 키 쌍 생성
# Generate a new SSH key pair:
ssh-keygen -t rsa -f /root/.ssh/id_rsa -N ""
# Confirm files exist:
ls /root/.ssh/
다음과 같이 표시됩니다:
id_rsa id_rsa.pub
2.2 공개 키를 EC2 인스턴스에 추가
- AWS 콘솔을 사용하여
xfusion-ec2에 연결합니다 (Instance Connect 또는 Session Manager). - EC2 보안 그룹이 인바운드 SSH(포트 22)를 허용하는지 확인합니다.
authorized_keys파일을 편집합니다:
sudo -i
vi /root/.ssh/authorized_keys
aws-client호스트의/root/.ssh/id_rsa.pub내용을 붙여넣고 저장한 뒤 종료합니다.
✅ 이제 비밀번호 없는 SSH가 활성화되었습니다.
Step 3: 프라이빗 S3 버킷 만들기
-
AWS 콘솔을 열고 → S3 → Create bucket.
-
설정:
- Bucket name:
xfusion-s3-29734 - Region: EC2 인스턴스와 동일
- Object Ownership: ACL 비활성화
- Block Public Access: 모두 활성화 유지 (버킷은 프라이빗 상태 유지)
- Bucket name:
-
Create bucket 클릭.
✅ 버킷은 기본적으로 프라이빗입니다.
단계 4: S3 액세스를 위한 IAM 정책 만들기
4.1 정책 만들기
IAM → Policies → Create policy 로 이동하여 JSON 탭을 선택하고, 아래 내용을 붙여넣으세요:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject"
],
"Resource": "arn:aws:s3:::xfusion-s3-29734/*"
},
{
"Effect": "Allow",
"Action": "s3:ListBucket",
"Resource": "arn:aws:s3:::xfusion-s3-29734"
}
]
}
- Next 를 클릭하고, 정책 이름을
xfusion-s3-policy로 지정한 뒤 생성합니다.
단계 5: IAM 역할 생성 및 정책 연결
5.1 역할 생성
- IAM → Roles → Create role 로 이동합니다.
- 신뢰된 엔터티: AWS service → EC2.
- Next 를 클릭합니다.
5.2 정책 연결
방금 만든 xfusion-s3-policy 를 선택하고 Next 를 클릭합니다.
5.3 역할 이름
xfusion-role 를 역할 이름으로 입력하고 Create role 을 클릭합니다.
✅ 역할이 준비되었습니다.
Step 6: EC2 인스턴스에 IAM 역할 연결
- EC2 → Instances를 엽니다.
xfusion-ec2를 선택합니다.- Actions → Security → Modify IAM role을 선택합니다.
xfusion-role를 선택하고 Update IAM role을 클릭합니다.
✅ 이제 EC2 인스턴스가 S3 버킷에 접근할 수 있는 권한을 갖게 되었습니다.
단계 7: EC2에서 S3 접근 테스트
7.1 EC2 인스턴스에 SSH 접속
ssh root@
7.2 테스트 파일 생성
echo "S3 access test" > testfile.txt
7.3 파일을 S3에 업로드
aws s3 cp testfile.txt s3://xfusion-s3-29734/
7.4 버킷 내 파일 목록 보기
aws s3 ls s3://xfusion-s3-29734/
업로드가 성공하면 파일이 목록 출력에 표시됩니다.