IAM
IAM이란
- Identity and Access Management
- 액세스를 제어해 안전한 AWS 리소스 사용을 도와주는 서비스
- 글로벌 서비스
- 즉, 리전을 선택하지 않아도 됨
User & Group
- User
- IAM 사용자를 의미
- 관리자 계정에 의해 부여받은 권한에 한해서만 서비스에 접근 가능한 사용자
- 사용자는 그룹에 속할 수 있지만, 꼭 그룹에 포함되어야 하는건 아님
- multiple group에 속할 수 있다.
- Group
- user만 포함하며, 다른 그룹을 포함할 수 없다.
- Permissions: user나 group은 정책(policy)이라 부르는 json 문서를 할당받을 수 있다.
역할 (Role)
- 역할을 가질 수 있는 주체
- IAM 사용자
- AWS 서비스 (EC2 등)
- 외부 자격 증명 공급자 서비스에 의해 인증된 외부 사용자
- 생성된 역할을 주체에 연결해야 함
- IAM이 글로벌 서비스이기 때문에 리전에 구애받지 않고 사용이 가능
- 하나의 역할에 여러 정책 연결이 가능
정책 (Policy)
- user, group, role이 사용할 수 있는 권한 범위를 지정하는 것
- AWS 관리형 정책을 통해 다양한 액세스 권한(S3FullAccess, Administrator Access 등)을 지정할 수 있음
- 사용자 정의 정책
- 직접 선택 혹은 json 형식을 통해 사용자 정의 정책 선택이 가능함
- json 형식의 정책 구성요소
- Effect: Allow 혹은 Deny를 사용해 허용 또는 거부 여부 표시
- Principal: 접근을 허용 혹은 차단할 대상
- Action: 작업을 허용 혹은 차단할 접근 타입
- Resource: 작업이 적용되는 리소스 목록
- Condition: 권한이 부여되는 조건
다중 인증 (MFA)
- Multi Factor Authentication
- 최소한 루트 계정과 iam 사용자를 보호하고 싶을 때 사용
- MFA = pw + 사용자가 가진 기기
- 만약 이렇게 다중 인증을 설정했을 경우 pw를 해킹당해도 계정이 해킹당할 가능성이 낮음
Security Tools
- IAM Credentials Report (계정 레벨에서)
- 자격 증명 사례를 포함
- IAM Access Advisor (사용자 레벨에서)
- 사용자에게 부여된 권한과 해당 서비스를 마지막으로 접근한 시간이 보임
- 어떤 권한이 사용되지 않는지 확인 가능
- 사용자의 권한을 줄여 최소 권한의 원칙을 준수할 수 있음
AWS CLI
Access Key, CLI 및 SDK
- Access Key
- 사용자가 본인의 액세스 키를 직접 관리
- CLI에 access key와 secret access key를 적용하면 AWS API 접근이 가능해짐
- CLI
- 명령어를 사용해 AWS 서비스와 상호작용할 수 있음
- AWS 서비스의 공용 API로 접근이 가능
- 콘솔 대신 사용하기도 함
- SDK
- Software Development Kit
- 특정 언어로 된 API로, 프로그래밍 언어에 따라 개별 SDK가 존재
- 코딩을 통해 애플리케이션에 포함시키는 것임
Summary
- AWS 계정을 설정할 때 제외하고 루트 계정 사용x
- 사용자를 그룹에 할당하고, 그룹에 permission을 할당하자
- strong pw를 설정하고, MFA를 사용해 보안을 높이자
- AWS 서비스에 권한 부여 시, 역할 생성 후 사용하자
- Access Key는 본인만 알고 있어야 하며, CLI나 SDK를 사용할 때 적용하자
Quiz
Q. 다음 중 IAM 역할의 올바른 정의는?
3. AWS 서비스에 요청을 생성하기 위한 일련의 권한을 정의하고, AWS 서비스에 의해 사용될 IAM 개체
AWS서비스는 사용자를 위해 특정 행동을 수행해야 하고, IAM 역할은 이런 권한을 할당하기 위해 사용됨
Q. 다음 중 IAM 보안 도구에 해당되는 것은?
1. IAM 자격 증명 보고서
IAM 자격 증명 보고서에 AWS 계정의 모든 IAM 사용자와 이들의 자격 증명 상태가 포함되어 있음
Q. IAM 사용자에 대해 잘못 서술된 내용을 고르세요.
4. IAM 사용자들은 루트 계정 자격 증명을 통해 AWS 서비스에 액세스한다.
루트 계정 자격 증명이 아닌 자신만의 자격 증명 (사용자 이름, pw or access key)을 통해 AWS 서비스에 액세스함
Q. IAM 모범 사례에 해당하는 것은?
2. 루트 계정 사용하지 않기
루트 계정은 IAM 사용자 생성과 일부 계정 관리 업무에만 사용해야 함
Q. IAM 정책은 무엇인가요?
2. AWS 서비스에 요청을 생성하기 위한 일련의 권한을 정의하며, IAM 사용자, 사용자 그룹 및 IAM 역할에서 사용하게 될 JSON 문서
Q. IAM 권한에는 다음 중 어떤 원칙이 적용되어야 할까요?
3. 최소 권한 부여하기
Q. 루트 계정 보안을 향상시키기 위해서는 어떤 작업을 수행해야 할까요?
4. 다중 인증(MFA) 활성화
Q. (참/거짓) IAM 사용자 그룹은 IAM 사용자 및 기타 사용자 그룹을 포함할 수 있습니다.
No
Q. IAM 정책은 하나 이상의 문장으로 구성됩니다. 다음 중 IAM 정책 내 문장의 구성 요소가 아닌 것을 고르세요.
3. 버전
IAM 정책의 문장은 시드, 효과, 원칙, 조치, 리소스, 조건으로 구성됨. 버전은 IAM 정책 자체의 일부지 문장의 일부가 아님
다음 글은 Udemy의 AWS Certified Solutions Architect Associate 강의를 토대로 작성되었습니다.