Identity and Access Management(IAM)는 각 리소스에 대한 권한을 관리하는 서비스다.
규모가 큰 조직에서 유용하게 사용할 수 있고, 각 AWS 서비스 내에서 다른 서비스에 접근하기 위한 권한을 설정하는데에도 사용된다.
특히, Auto scaling할 때 각 EC2에 접속해서 액세스 키를 일일히 입력하는 것은 매우 귀찮은 일이다. IAM Role을 사용하면 로그인을 따로 할 필요 없어서 편하게 명령을 내릴 수 있다. 여러 계정의 요금을 합쳐서 지불하는 '통합 결제' 시스템도 있으니 재무 관리 측면에서도 편리하다고 할 수 있다.
tip) IAM는 리전 별 설정이 없고 모든 리전에서 동일하게 작동함.
정책 < 역할 < 사용자(User) < 그룹의 순서이다.
정책을 설정한 후 역할을 생성하고 해당 역할을 사용자에게 부여하며 그룹으로 사용자를 묶는다.
lambda에서는 역할까지만 생성하여 람다에 부여하지만
다수의 작업자가 인프라를 다룰 때는 사용자까지 생성하여 아이디를 생성하고, 더 많은 작업자가 존재하는 경우 그룹까지 부여하여 관리한다.
여기에서는 세부적인 정책보다는 다른 사람이 내 계정으로 접근하여 협업할 수 있게끔 그룹과 사용자를 만드는 과정을 해보고자 한다.
IAM 그룹 만들기
IAM 접속 후 [새로운 그룹 생성] 클릭
이름 설정 후 정책을 선택한다.
상당히 많은 항목이 있으니 검색 기능을 잘 활용하자.
여기서는 [AmazonEC2FullAccess]에 체크해서 EC2에 풀액세스할 수 있는 권한을 할당해보자.
정책을 살펴보면 아래와 같은 것을 확인할 수 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "ec2:*",
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "elasticloadbalancing:*",
"Resource": "*"
},
... 중략
]
}
🚨 ARN : amazon resource name
https://docs.aws.amazon.com/ko_kr/general/latest/gr/aws-arns-and-namespaces.html
arn:partition:service:region:account-id:resource-id
arn:partition:service:region:account-id:resource-type/resource-id
arn:partition:service:region:account-id:resource-type:resource-id
IAM User 그룹에 추가하기
앞서 만든 그룹에 이용자를 추가해보자 [사용자 추가] 클릭
사용자 이름과 액세스 유형을 선택한다.
콘솔 비밀번호는 자동 생성하는 방법과 사용자가 생성하는 방법이 있는데 원하는 것을 고르면 된다.
다음에는 권한을 설정합니다.
이 페이지에서 그룹을 생성할 수도 있지만 기존에 있던 그룹을 선택하도록 하겠습니다.
성공적으로 유저를 그룹에 포함시켰습니다. 아래 .csv 파일을 다운로드하면 Password 등 정보를 볼 수 있습니다.
파일을 다운로드 받아 놓은 후 보관하도록 합시다.
이제 액세스 키를 생성해보도록 합시다.
액세스 키를 생성하자 하는 유저를 클릭합니다.
스크롤을 내려 [보안 자격 증명] - [액세스 키 만들기]를 클릭합니다.
액세스 키를 만든 후에는 반드시 [.csv 파일 다운로드]를 클릭하여 액세스 키를 보관하도록 합니다.
액세스 키를 복사하여 보관하지 않는다면 시크릿 액세스 키를 알 수 없습니다.
IAM User로 접속하기
AWS 계정(루트 계정) 외에 IAM 사용자도 AWS에 접속할 수 있습니다.
생성한 IAM 유저를 이용하여 AWS에 접속해보도록 하겠습니다.
접속하고자 하는 유저의 Console login link로 이동합니다.
참고로, IAM 사용자용 AWS 접속 주소는 'https://[계정 ID].signin.aws.amazon.com/console'입니다.
왼쪽이 로그인 화면이며 오른쪽이 다운로드 받은 비밀번호.csv입니다.
이 계정에서는 S3, RDS 등의 리소스를 사용할 수 없습니다. (심지어 보는 것 마저도!)
IAM 역할(Role) 활용하기
IAM Role은 리소스 접근 권한을 설정할 때 사용한다.
EC2에 접근 권한을 가진 IAM User가 EC2 인스턴스에서 S3에 접근할 수 있는 역할이 부여된다.
EC2에서 S3 접근을 가능하게 만들어야 하므로 EC2를 선택한다.
Allow EC2 instances to call AWS services on your behalf라는 문구에서도 확인할 수 있다.
다음 단계에서는 S3FullAccess 정책을 주자.
IAM Role 생성 후에 EC2 등 리소스 생성 시 IAM Role 부분에서 해당 Role을 지정할 수 있다.
생성 후에도 IAM Role 연결할 수 있다.
이러면 aws configure안 해도 (액세스 키 복붙을 안해도) 권한에 따른 명령을 내릴 수 있다.
'AWS > ☁️ AWS' 카테고리의 다른 글
AWS SQS (0) | 2020.02.19 |
---|---|
AWS ElastiCache (0) | 2020.02.19 |
AWS Route 53 (0) | 2020.02.16 |
AWS RDS와 EC2 연동하기 (0) | 2020.02.15 |
AWS RDS (0) | 2020.02.15 |