- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
사용자와 그룹을 생성하여 접근제어 및 권한관리를 제공하는 IAM
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
IAM 역할을 사용하는 EC2 인스턴스 생성하기
EC2 인스턴스 전용 IAM 역할은 EC2 인스턴스를 생성할 때 설정해주어야 합니다. 이미 만들어진 EC2 인스턴스에는 IAM 역할을 설정할 수 없습니다. EC2 인스턴스 페이지로 이동한 뒤 EC2 인스턴스 목록(INSTANCES → Instances)에서 위쪽 Launch Instance 버튼을 클릭합니다.
EC2 가상 서버에 설치될 운영체제를 선택합니다. AWS 명령행 인터페이스AWS CLI가 미리 설치되어 있는 Amazon Linux를 사용하겠습니다.
Free tier only에 체크하고, Amazon Linux AMI의 Select 버튼을 클릭합니다.
EC2 인스턴스 유형을 선택합니다. 기본적으로 Free tier용인 Micro Instance가 선택되어 있습니다. Next: Configure Instance Details를 버튼을 클릭합니다.
EC2 인스턴스 세부 설정에서 IAM 역할을 설정할 수 있습니다. IAM role 부분에서 IAM 역할 목록이 표시됩니다. 앞에서 생성한 ExampleEC2Role을 선택합니다. 나머지 설정은 기본값 그대로 사용하고 Review and Launch 버튼을 클릭합니다(나머지 세부 설정은 생략하겠습니다. 자세한 내용은 '4.3 EC2 인스턴스 생성하기'를 참조하기 바랍니다).
지금까지 설정한 값들이 정상적으로 설정되었는지 확인합니다. 문제가 없다면 Launch 버튼을 클릭합니다.
앞에서 EC2 인스턴스를 생성해보았다면 EC2 인스턴스 접속을 위한 키가 이미 있을 것입니다. awskeypair를 선택한 뒤 I acknowledge that I have...를 체크하고 Launch Instances 버튼을 클릭합니다(EC2 인스턴스 접속을 위한 키가 없다면 '4.3 EC2 인스턴스 생성하기' 또는 '7장 EC2 인스턴스 접속을 위한 키 쌍'을 참조하여 키를 생성하기 바랍니다).
잠시 기다리면 EC2 인스턴스가 생성되었다는 화면이 나옵니다. View Instances 버튼을 클릭합니다.
EC2 인스턴스가 완전히 생성되었습니다. 방금 생성한 EC2 인스턴스를 선택하고 아래 세부 내용에서 Public IP를 확인합니다.
SSH로 위에서 확인한 Public IP에 접속한 뒤 다음 명령을 입력합니다(SSH 접속 방법은 '4.4 EC2 인스턴스에 접속하기'를 참조하기 바랍니다). aws s3 ls는 S3의 파일 목록을 보는 명령입니다. 앞에서 생성한 S3 버킷(examplebucket10)의 파일 목록을 출력해보겠습니다(S3 버킷을 생성하지 않았다면 '11.1 S3 버킷 생성하기', '11.2 S3 버킷에 파일 올리기/받기'를 참조하여 S3 버킷을 생성하고 파일을 올리기 바랍니다).
[ec2-user@ip-172-31-13-53 ~]$ aws s3 ls s3://examplebucket10
PRE logs/
2014-04-22 10:17:48 775702 Jellyfish.jpg
2014-04-22 10:28:52 620888 Tulips.jpg
앞에서 IAM 역할에 S3에 접근할 수 있는 Amazon S3 Full Access를 설정했기 때문에 S3 버킷의 파일 목록을 볼 수 있습니다. 또한, EC2 인스턴스를 생성할 때 IAM 역할을 사용하도록 설정했기 때문에 액세스 키와 시크릿 키를 따로 설정하지 않아도 aws s3 명령이 잘 동작합니다.
IAM 역할 삭제
EC2 인스턴스에서 IAM 역할을 사용하고 있을 때 IAM 역할을 삭제하면 안됩니다. IAM 역할을 삭제하는 즉시 EC2 인스턴스에서 AWS 리소스로 접근하는 권한이 사라지니 주의하기 바랍니다.
다음 명령을 입력하여 DynamoDB에 접근합니다. IAM 역할(ExampleEC2Role)에는 DynamoDB에 접근할 수 있는 권한이 없기 때문에 Access Denied 에러가 발생합니다.
[ec2-user@ip-172-31-13-53 ~]$ aws --region ap-northeast-1 dynamodb scan --table-name UsersLeaderboard
A client error (AccessDeniedException) occurred when calling the Scan operation: User: arn:aws:sts::232075047203:assumed-role/ExampleEC2Role/i-d7027cd1 is not authorized to perform: dynamodb:Scan on resource: arn:aws:dynamodb:ap-northeast-1:232075047203:table/UsersLeaderboard
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.