IAM(Identity and Access Managemen)
IAM은 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있는 서비스이다. IAM을 사용하여 리소스를 사용하도록 인증 및 권한 부여된 대상을 제어합니다. 리소스에 접근할 사용자(User), 그룹(Group), 역할(Role), 그리고 소스 접근 정책(Policy)를 생성하고 관리한다. 이들은 모두 루트 사용자(Root Account)로부터 관리된다. 루트 사용자는 기본적으로 생성되는 것으로 모든 AWS 리소스에 접근 권한이 있지만, 일상적인 접근은 IAM을 통해 생성한 사용자를 이용한다.
유저(User)와 그룹(Group)
유저는 조직의 사용자이며 그룹은 유저들을 묶은 단위이다. 유저는 반드시 그룹에 속해야하는 것은 아니고, 그룹은 다른 그룹을 포함할 수 없다. 유저와 그룹은 IAM 콘솔페이지에서 생성 및 관리할 수 있다. 그럼 실제로 유저와 그룹을 한번 생성해보겠다.
루트 사용자를 대신하여 사용할 admin 계정을 생성하였다. password를 통하여 로그인 하도록 설정하였고 일단 접근 권한은 아무것도 설정하지 않았다.
admin_group 그룹을 생성하였다. 이 그룹에는 모든 리소스에 접근 가능한 AdministratorAccess 정책을 부여하였다.
그리고 admin_group에 admin 사용자를 추가한다. 이제 admin_group에는 AdministratorAccess 권한 정책이 부여되어있고, admin은 admin_group에 포함되어있으므로 모든 리소스에 접근가능하다.
새로 생성된 사용자로 로그인하기 위해서는 IAM 페이지 우측에 있는 로그인 URL에 접속하여 사용자 생성시 입력한 정보로 로그인하면 된다.
역할(Role)
IAM에서 역할은 유저와 유사하게 접근 권한을 가진 객체이다. 하지만 유저가 사람이 사용하기위한 것이라면 역할을 AWS 서비스가 다른 서비스에 접근하기위한 권한을 제어하는데 주로 사용한다. 예를 들어 EC2에서 S3 스토리지에 접근하려면 Lambda에 역할을 부여해야 한다. 아래는 실제 EC2에 S3 스토리지 읽기 전용 권한을 부여하기위한 역할 생성 예시이다.
정책(Policy)
// adminGroup에 적용한 AdministratorAccess 정책 JSON
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
}
]
}
IAM에서 정책은 사용자, 그룹, 역할에 연결되어 리소스에 대한 접근을 관리한다. 이러한 정책은 JSON 문서로 표현되고 저장된다. 각각 요소들과 뜻은 아래와 같다.
- Version - 사용하고자 하는 정책의 버전
- Id - 정책을 식별하는 Id
- Statement - 실제 정책 문장
- Sid(선택 사항) - 정책 ID,
- Effect - Allow 또는 Deny를 사용하여 정책에서 액세스를 허용하는지 또는 거부하는지 여부
- Principal(일부 상황에서만 필요) - 액세스를 허용하거나 거부할 계정, 사용자, 역할 또는 페더레이션 사용자를 표시
- Action - 정책이 허용하거나 거부하는 작업 목록
- Resource(일부 상황에서만 필요) - IAM 권한 정책을 생성하는 경우 작업이 적용되는 리소스 목록
- Condition(선택 사항) - 정책에서 권한을 부여하는 상황
IAM 보안 도구
현재 IAM의 상태를 확인하고 관리하기위해 IAM 보안도구를 사용할 수 있다. IAM의 보안도구에는 자격 증명 보고서와 액세스 관리자가 있다. 자격 증명 보고는 IAM 유저들의 정보와 인증상태를 확인할 수 있다. 액세스 관리자는 사용자의 실제 AWS 서비스 접근 기록을 확인할 수 있다.
'STUDY > AWS' 카테고리의 다른 글
AWS: EC2(Elastic Compute Cloud) (0) | 2023.01.02 |
---|