IAM 용어(Terms)
IAM 작동 방식에 대해서 소개하기 앞서, IAM 서비스에서 정의하는 용어에 대해서 숙지하고 있어야 합니다.
- IAM 리소스(IAM Resources)
IAM 서비스에 저장된 사용자, 그룹, 정책 및 자격 증명 공급자 객체 등을 의미합니다. 다른 AWS 서비스와 마찬가지로 IAM에 리소스를 추가하고 편집 및 제거 할 수 있습니다. - IAM 자격 증명(IAM Identities)
식별 및 그룹화에 사용되는 IAM 리소스 객체입니다. IAM 자격 증명에는 정책을 연결하여 사용 할 수 있습니다. 여기에는 사용자, 그룹 및 역할이 포함 됩니다. - IAM 엔터티(IAM Entity)
AWS가 인증에 사용하는 IAM 리소스 객체입니다. 여기에는 IAM 사용자 및 역할이 포함됩니다. - 보안 주체(Principals)
AWS 루트 사용자, IAM 사용자 또는 IAM 역할을 사용하여 로그인하고 AWS에 요청을 하는 사람 또는 애플리케이션을 통틀어 의미합니다. 보안 주체에는 페더레이션(Federation, 외부에서 인증된) 사용자 및 수임된 역할이 포함됩니다.
IAM의 동작에는 보안 주체(Principals), 요청(Request), 인증(Authentication), 권한 부여(Authorization), 작업 또는 연산(Actions or Operations), 리소스(Resources) 단계를 거쳐서 진행됩니다. 이어서 각 단계에 대해서 간략하게 설명하도록 하겠습니다.
보안 주체(Principals)
보안 주체는 AWS 리소스에 작업을 요청하는 주체 또는 사람 또는 애플리케이션입니다. 보안 주체는 AWS 루트 사용자 또는 IAM 엔터티로부터 인증을 받아 AWS에 요청을 보낼 수 있습니다. AWS는 루트 사용자 대신 IAM 엔터티(사용자 및 역할)를 생성하여 사용하는 것을 권장합니다.
요청(Request)
AWS Management Console, AWS CLI 또는 AWS API를 사용할 때 보안 주체가 요청을 AWS에 전송합니다. 이 요청에는 다음 정보가 포함 됩니다.
- 작업 또는 작동(Actions or Operations)
수행하고자 하는 작업 또는 작동입니다. - 리소스(Resources)
수행된 작업 또는 작동에 대한 AWS 리소스 객체입니다. - 보안 주체(Principals)
엔터티(사용자 또는 역할)를 사용하여 요청을 보내는 사람 또는 애플리케이션입니다. - 환경 데이터(Enviroment data)
IP 주소, 사용자 에이전트(User agens), SSL 사용 상태 또는 시간대와 같은 정보입니다. - 리소스 데이터(Resource data)
요청되는 리소스와 관련된 데이터. 일종의 요청 파라미터라고 볼 수 있습니다.
AWS에서 요청을 평가하고 승인하는 데 사용되는 요청 컨텍스트(Request context)로써 상기 내용을 모두 포함합니다.
인증(Authentication)
보안 주체는 AWS에 요청을 보내기 위해 자격 증명을 사용하여 인증을 받아야 합니다. 웹 브라우저에서 AWS Management Console에 로그인하는 것 역시 인증 절차의 하나입니다. AWS S3 및 AWS STS 등의 서비스는 예외적으로 익명 사용자의 몇 가지 요청을 허용하나, 이는 예외적인 경우입니다.
- 루트 사용자로서 콘솔에 인증
이메일 주소와 암호를 사용해 로그인합니다. 추가적인 보안으로 MFA 사용을 권장합니다. - IAM 사용자로서 콘솔에 인증
IAM 사용자로서 계정 ID 또는 별칭을 입력한 다음 사용자 이름과 암호를 사용해 로그인합니다. 마찬가지로 MFA 사용을 권장합니다. - API 또는 AWS CLI에서 인증
엑세스 키와 보안 키를 제공해야 하며, 추가 보안 정보 역시 제공 할 수 있습니다.
권한 부여(Authorization)
AWS가 보안 주체의 요청에 대해서 인증을 완료했지만, 여전히 요청을 완료하기 위한 권한이 있어야 합니다. AWS는 권한 부여 동안 요청 컨텍스트의 값을 사용하여 요청을 허용할지 또는 거부할지에 필요한 정책을 점검합니다. 대부분의 정책은 AWS에 JSON 문서로 저장되며 보안 주체 엔터티에 대한 권한을 지정하고 있습니다.
AWS는 요청 컨텍스트에 적용되는 각 정책을 확인합니다. 권한 정책에 거부된 작업이 하나라도 포함된 경우 전체 요청을 거부합니다. 이를 명시적 거부(Explicit deny)라고 합니다. 따라서 요청 컨텍스트에 적용되는 모든 정책에 대해서 허용되는 경우에만 권한을 부여합니다.
작업 또는 연산(Actions or Operations)
요청이 인증 및 권한 부여된 후 AWS가 요청의 작업 또는 작동을 승인합니다. 작업은 리소스 보기, 생성, 편집 및 삭제와 같이 리소스에 대해서 수행 할 수 있는 내용을 포함합니다. 예를 들어, IAM 서비스에서는 IAM 사용자 리소스에 대한 CreateUser, DeleteUser, GetUser, UpdateUser와 같이 약 40여개의 작업을 수행 할 수 있습니다. 다만 보안 주체가 작업을 수행하기 앞서 보안 주체 또는 리소스에 적용되는 작업에 대한 정책이 포함되어 있어야 합니다.
리소스(Resources)
AWS가 요청 작업을 승인하면 계정 내의 관련 리소스에서 해당 작업을 수행 할 수 있습니다. 리소스는 서비스 내에 존재하는 객체입니다. AWS 서비스는 서비스에서 제공하는 리소스에서 수행 할 수 있는 일련의 작업을 정의하고 있습니다. 만약 정의되어 있지 않은 작업을 수행하도록 요청하면 거부됩니다.
'AWS > IAM' 카테고리의 다른 글
[AWS/IAM] IAM 튜토리얼#002.IAM 사용자와 그룹 생성 (0) | 2022.01.13 |
---|---|
[AWS/IAM] IAM 튜토리얼#001.IAM 사용하기 (0) | 2022.01.12 |
[AWS/IAM] 권한과 정책 (0) | 2022.01.12 |
[AWS/IAM] AWS 사용자 (0) | 2022.01.11 |
[AWS/IAM] AWS IAM(Identity and Access Management) 소개 (0) | 2022.01.10 |