[AWS] IAM
IAM(AWS Identity and Access Management)은 AWS의 권한을 관리하는 서비스이다.
유저 각각의 권한을 부여하고 통제할 수 있다.
처음 AWS 가입 시 생성되는 ROOT 유저로 서비스를 운영하는 것은 매우 위험하다. 해당 계정이 노출되었을 때 공격자는 곧바로 모든 서비스에 접근이 가능한 계정을 손에 넣는 것이기 때문이다.
이런 상황을 대비해 IAM을 이용해 필요한 권한을 세분화하여 Role을 부여함으로써 불필요한 접근을 막을 수 있다.
IAM에서는 AWS 계정 인증에 MFA(Multi Factor Authentication)을 지원한다.
한마디로 ID/PW 방식 1개의 인증 외에 여러개의 인증 방식을 통해 접근을 허용하겠다는 뜻이다.
IAM 에는 크게 네가지가 존재한다.
1. IAM User - 사용자
2. IAM Group - 사용자 그룹
3. IAM Role - 권한
4. IAM Policy - 정책
IAM Policy는 JSON 형태로 작성된다. 밑의 예시를 보자.
{
"Version": "2012-10-17",
"Statement":[
{
"Effect" : "Allow",
"Action" : "s3:GetObject",
"Resource" : "arn:aws:s3:::test/*",
"Principal" : { "AWS" : "arn:aws:iam::AWS-account-ID:user/user-name" }
}
]
}
Statement - IAM Policy 를 부여하는 요소들을 나열한 배열.
Effect - Allow or Deny
Action - Allow or Deny 될 특정 작업 ( 위 예시에선 s3 버킷에 대한 GetObject 작업)
Principal - 리소스에 Allow or Deny 될 보안주체
AWS 계정 생성 및 권한 부여
우선, AWS 루트 계정으로 로그인 후 IAM 대시보드에서 [사용자 추가] 한다.
사용자 이름 입력 후, 그룹 선택으로 넘어가는데 초기에는 사용자 그룹이 존재하지 않으므로 새로 생성해주어야한다.
그룹 생성 클릭 후 가장 상단의 Administrator Access 를 체크하여 그룹을 생성하자.
해당 권한 그룹은 관리자에게 준하는 권한을 부여한다.
그룹까지 생성하면 사용자의 IAM 계정이 생성된다. 성공 후 링크를 통해 IAM 계정으로 로그인할 수 있다.
해당 링크를 들어가 로그인을 하면 IAM 계정으로 AWS에 접속 되는데, 초기에 계정의 별칭이 임의의 숫자 값이기 때문에 외우기 힘들다(로그인할 때 별칭 입력해야함)
따라서 자신이 알아볼 수 있는 별칭으로 바꿔야한다.
다시 ROOT 계정으로 접속 후 IAM 대시보드에서 IAM 계정에 대한 별칭을 바꿔야한다.
이제 바뀐 별칭과 패스워드 ID로 IAM 계정을 통해 권한별로 AWS 서비스를 관리할 수 있다.