평소에 개발자 계정(PowerUserAccess 권한 계정)은 IAM 서비스를 이용하지 못함
개발자 사용자가 IAM 롤이 필요할 때 사용할 IAM Role을 만들어 볼 예정
앞서 만들었던 IAM 어드민 계정(song-admin)으로 AWS 콘솔 접속
IAM(IAM Identity Center 아님) 서비스에서 좌측 역할 메뉴 클릭, '역할 생성' 버튼 클릭
'역할 생성' 버튼을 클릭하면 다음과 같이 신뢰할 수 있는 엔티티를 선택할 수 있음
보통은 'AWS 서비스'를 가장 많이 사용
IAM Role은 Role에 어떤 Policy를 붙이느냐가 중요(어떠한 권한을 부여하느냐)
또한 누가 그 역할을 호출할 수 있게 할 것인지(Trust Relationship 개체 선택)도 중요
지금은 유저 계정에 Role을 부여하므로 'AWS 계정' 선택
IAM 호출 권한을 만드는 주체는 admin 계정이므로 '이 계정(계정ID)' 선택
이 계정의 아이디들이 지금 만드는 IAM Role을 호출할 수 있게 한다는 의미
앞서 만들었던 IAM 개발자 계정(song-admin)도 같은 ID를 가짐
다음은 권한을 추가하는 단계
이번에 추가할 권한은 IAM 권한이므로 검색에 iam 입력하여 필터링
그 중 'IAMFullAccess' 선택 후 '다음' 버튼 클릭
아래와 같이 역할 이름, 설명을 적고 '역할 생성' 버튼을 누르면 됨
그러면 처음의 역할 탭으로 리다이렉트 되는데, 'iam-full' 역할이 생긴 것을 볼 수 있음
만들어진 iam-full 역할을 클릭해서 들어오면 아래와 같은 창을 볼 수 있음
iam-full 역할의 ARN은 'arn:aws:iam::계정ID:role/iam-full'의 형식
이 ARN을 사용하여 iam-full Role을 사용할 수 있음
'Assume Role'이라는 API를 호출하여 사용
이 중 신뢰 관계의 Json에서 "Principal" 부분을 보면, "AWS" 유형으로 값은 'arn:aws:iam::계정ID:root'라고 되어 있음
root라는 뜻은 계정ID 계정에 속한 모든 사용자들이 이 Role을 사용할 수 있다는 것
이 Json의 root 부분을 수정하면 특정 유저만 사용할 수 있도록 편집할 수 있음
예를 들어, 'song-develop'만 이 Role을 사용할 수 있게 하려면 아래와 같이 수정할 수 있음
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::{계정ID}:user/song-develop"
},
"Action": "sts:AssumeRole",
"Condition": {}
}
]
}
근데 아래와 같이 에러다 뜸,,
아마 내가 만든 IAM 사용자 계정들이 IAM 서비스에서 만든 것이 아닌 IAM Identity Center에서 만들어서 인듯,,
그래서 접근 ARN이 다르기 때문이지 않을까? 라는 생각
해결법은 찾아봐야겠음
어쨋든 Role을 확인해보기 위해 일단 다시 개발자 계정(song-develop)으로 들어옴
현재는 IAM 서비스 리소스에 접근이 거부되는 모습
우측 상단의 내 계정 표시를 클릭하면 아래와 같이 창이 뜨는데, 맨 밑 '역할 전환' 버튼 클릭
위처럼 정보 입력 후 'Switch Role' 버튼 클릭
그러면 이제 IAM 서비스 리소스에 이제 접근이 가능한 것을 볼 수 있음!
우측 상단 계정 정보에도 iam-full이 적용된 것을 확인할 수 있음
다시 Role을 해제하고 싶다면 '다시 전환' 버튼을 누르면 됨
그러면 다시 IAM 리소스 접근 불가