[AWS] IAM 역할 사용하기
- AWS
- 2020. 9. 9.
이번 글에서는 IAM 기능 중 IAM 역할을 사용해보도록 하겠습니다.
0. IAM 이란?
Identitiy and Access Management(식별 및 접근 관리)의 약어로 사용자와 그룹을 생성하고 AWS의 각 리소스에 대해 접근제어와 권한관리를 제공합니다.
IAM은 AWS 계정 안에 IAM 그룹과 사용자를 생성해 접근제어 및 권한관리를 세분화할 수 있습니다. 어떤 IAM 사용자는 EC2만 관리할 수 있고, 어떤 IAM 사용자는 S3의 내용을 읽을 수만 있도록 구성할 수 있습니다. 따라서 전체 권한이 아닌 필요한 권한만 주기 때문에 보안성이 높아집니다.
1. IAM 역할 생성하기
IAM 역할(Role)은 그룹과 사용자에게 권한을 설정하는 것과는 달리 EC2 인스턴스, 다른 AWS 계정, Facebook, Google, Amazon 게정 전용으로 AWS 리소스에 대해 접근 권한을 설정할 수 있습니다. 이번글에서는 EC2 전용으로 IAM 역할을 생성하고, EC2 인스턴스에서 IAM 역할을 사용해보겠습니다.
자세한 내용은 아래의 책을 참고하시길 바랍니다.
먼저 IAM 역할을 생성하겠습니다. IAM의 Role탭에서 'Crate role' 버튼을 눌러줍니다.
EC2 인스턴스용 IAM 역할을 생성하기로 했으므로 AWS Service의 EC2를 선택하고 'Next:Permissions' 버튼을 눌러줍니다.
IAM 역할이 S3에만 접근할 수 있도록 설정해보겠습니다. 전체 목록 중 Amazon S3 Full Access 를 선택하고 'Next:tags' 버튼을 눌러줍니다.
적절한 태그를 입력하고 'Next:Review' 버튼을 눌러줍니다.
마지막으로 IAM 역할의 이름을 입력한뒤 'Create role' 버튼을 눌러 IAM 역할을 생성합니다.
다음과 같이 IAM 역할이 생성되었습니다.
2. IAM 역할을 사용하는 EC2 인스턴스 생성하기
EC2 인스턴스 전용 IAM 역할은 EC2 인스턴스를 생성할 때 설정해줘야 합니다. 이미 만들어진 EC2 인스턴스에는 IAM 역할을 설정할 수 없습니다.
간단하게 IAM 역할을 사용하는 EC2 인스턴스를 생성해보겠습니다.
Instance 탭의 'Launch Instance' 버튼을 클릭합니다.
사용할 AMI는 Amazon Linux를 선택하겠습니다.
인스턴스 타입으로는 프리티어 전용인 t2.micro를 선택하겠습니다.
세부설정을 입력한 뒤, 앞서 생성했던 IAM 역할을 선택 후 'Review and Launch' 버튼을 눌러 EC2 인스턴스를 생성합니다.
앞서 EC2 인스턴스를 생성한 적이 있다면 발급받은 EC2 인스턴스 접속키가 있을 것입니다. 해당하는 키를 선택 후 'Launch Instances' 버튼을 눌러 EC2 인스턴스를 생성합니다.
EC2 인스턴스가 아래와 같이 생성되었습니다.
3. 테스트
SSH로 위에서 생성한 EC2 인스턴스에 접속해 S3에 접근해보겠습니다.
먼저 생성한 EC2 인스턴스의 Public IP를 확인합니다. 저의 경우엔 13.125.237.127입니다.
저는 윈도우를 사용하므로 Putty를 사용해 EC2에 접속하겠습니다. Host Name에 앞서 확인한 Public IP를 입력합니다.
다음으로, SSH > Auth 경로에서 Browse 버튼을 눌러 액세스 키를 선택 후 Open 을 눌러줍니다.
로그인 화면에서 ec2-user를 입력하면
아래와 같이 EC2 접속이 완료되었습니다.
자, 이제 S3 접근이 가능한지 확인해보겠습니다.
EC2 인스턴스에 접속한 상태로 아래와 같이 S3의 파일 목록을 보는 명령어를 입력합니다. // 뒤에는 본인의 S3 Bucket을 입력해주시면 됩니다.
aws s3 ls s3://testminhobucket
결론적으로, EC2 인스턴스에서 아래와 같이 S3 Bucket의 파일목록을 조회할 수 있습니다.
만약 IAM 역할을 등록하지 않았다면, 액세스 키와 시크릿 키를 등록해야지만 S3에 접근할 수 있습니다.
4. 결론
편리한 접근제어와 권한관리가 필요하다면?
-> IAM 을 사용하자
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'AWS' 카테고리의 다른 글
[AWS] ELB(Elastic Load Balancing) 생성하기 (0) | 2020.09.09 |
---|---|
[AWS] Free Tier 사용시 유의사항 (0) | 2020.09.09 |
[AWS] ElastiCache Redis 사용하기 (0) | 2020.09.09 |
[AWS] DynamoDB 테이블 생성하기 (0) | 2020.09.09 |
[AWS] RDS DB 인스턴스 Read Replica 생성하기 (0) | 2020.09.09 |