この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
안녕하세요 클래스메소드 김재욱(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이 추가된 것을 확인할 수 있습니다.
본 블로그 게시글을 보시고 문의 사항이 있으신 분들은 클래스메소드코리아 (info@classmethod.kr)로 연락 주시면 빠른 시일 내 담당자가 회신 드릴 수 있도록 하겠습니다 !