AWS CLI로 IAM Role 생성해 보기
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 AWS CLI로 IAM Role을 생성해 보는 과정을 정리해 봤습니다.
json 생성
먼저 sts:AssumeRole 이라는 임시 자격 증명을 받을 수 있는 정책을 생성합니다.
이 정책을 생성하기 위해서는 json 파일을 작성할 필요가 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:Describe*", "iam:ListRoles", "sts:AssumeRole" ], "Resource": "*" } ] }
기본적인 json 정책 코드는 다음과 같습니다.
여기서 sts:AssumeRole만을 사용하고 싶으면 아래와 같은 코드가 됩니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
IAM Role 생성
aws iam create-role \ --role-name test-role \ --assume-role-policy-document file://assumeRole.json
aws iam create-role 명령은 IAM 역할을 생성하고, 이전에 생성한 json 파일에 따라 신뢰 관계를 정의합니다.
aws iam attach-role-policy \ --role-name test-role \ --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore aws iam attach-role-policy \ --role-name test-role \ --policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy
이어서 각각의 정책을 IAM Role에 추가합니다.
여기까지 하면 무사히 IAM Role 생성이 된 것을 확인할 수 있습니다.
Instance Profile 생성
이어서 EC2 Instance에 IAM Role을 연결하기 위해서는 Instance Profile을 생성할 필요가 있습니다.
aws iam create-instance-profile \ --instance-profile-name test-role aws iam add-role-to-instance-profile \ --instance-profile-name test-role \ --role-name test-role
다음 명령어로 Instance Profile을 생성합니다. Instance Profile 이름은 IAM Role이름과 동일하게 사용해도 상관 없습니다.
aws ec2 associate-iam-instance-profile --iam-instance-profile Name=test-role --instance-id i-xxxx
그리고 위 명령어로 인스턴스에 Instance Profile을 추가하면 EC2 Instance에 IAM Role이 추가된 것을 확인할 수 있습니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.