IAM : Users & Groups
- IAM(Identity and Access Management)에서는 사용자를 생성하고, 그룹에 배치하는 글로벌 서비스이다.
- 루트 계정 : 계정을 생성할 때 기본으로 생성되는 계정이다. 루트 계정은 오직 계정을 생성할 때만 사용되어야 한다. 그 후에는 루트 계정을 더 이상 사용해서도, 공유해서도 안된다.
- User 계정 : 조직 내에 해당하는 한 사용자를 말한다. 필요하다면 사용자들을 그룹으로 묶을 수 있다. 어느 그룹에도 포함되지 않은 사용자가 있을 수 있다. 또한 한 사용자가 다수의 그룹에 포함될 순 있다.
- 그룹 : 그룹에는 사용자만 배치시킬 수 있다. 다른 그룹을 포함시킬 순 없다.
IAM : Permission
- 이들이 AWS 계정을 사용할 수 있도록 허용하기 위해선 권한을 부여해줘야 한다.
- 이를 위해 사용자 또는 그룹에게 IAM 정책이라고 불리는 JSON 문서를 지정할 수 있다.
- 사용자에게 필요 이상의 권한을 부여할 경우 너무 많은 서비스를 실행시키거나, 보안 문제를 야기할 수 있다. 따라서 AWS에서는 최소 권한 원칙을 적용한다.
IAM : Policy
- 그룹 단위로 정책을 설정하여 권한을 부여해줄 수 있다.
- 혹은 인라인 정책(inline policy)라는걸 생성할 수도 있다.
IAM : Policies structure
- 정책의 구조
- Version : policy language version를 지정, 대부분 “2012-10-17”이다.
- Id (optional): 정책을 식별하는 id
- Statement : 1개 혹은 그 이상의 문장들이 구성되어 있어야 한다.
IAM : Password Policy
IAM default 정책과 별개로 사용자가 직접 정의하는 비밀번호 정책을 지정할 수 있다.
IAM : MFA(Multi Factor Authentication)
MFA = password + security device
MFA device in AWS
- Virtual MFA device : google authenticator, authy
- U2F(Universal 2nd Factor) Security Key : Yubikey
- Hardware Key Fob MFA Device : AWS의 제 3자 회사인 Gemalto 제품
- Hardware Key Fob MFA Device for AWS GovCloud(US) : 미국 정부의 클라우드인 AWS GovCloud를 사용하는 경우라면, 필요한 특수 키팝
AWS에 접근하는 방법
- AWS Management Console : protected by password + MFA
- AWS Command Line Interface(CLI) : protected by access key
- AWS Software Developer Kit(SDk) : (for code) protected by access key
Access key는 management console에서 생성할 수 있다.
IAM : Roles for service
- 몇몇 aws 서비스들은 우리들의 계정에서 실행해야 된다.
- 이를 위해서는 User와 마찬가지로 aws 서비스에도 권한이 필요하다. 즉, aws 서비스에 권한을 부여해줘야 한다.
- 그러기 위해선 IAM Roles 라는 것을 만들어야 한다. IAM Role은 User와 같지만 사람을 대상으로 하는 권한이 아닌 aws 서비스를 위해 만들어졌다. 예를 들어 ec2 인스턴스 한 개가 존재할 때 해당 인스턴스는 어떠한 작업을 aws의 어떤 정보에 접근할 필요가 있을 수 있다. 그러기 위해선 권한이 필요하고 이것이 IAM Role이다.
- 일반적인 Role들: EC2 instance Roles, Lambda function Roles, Roles for CloudFoundation
IAM : Security Tools
- IAM Credentials Reports(account-level) : report은 계정에 있는 User와 다양한 자격 증명의 상태를 포함한다.
- IAM Access Advisor(user-level) : User 에게 부여된 서비스의 권한과 해당 서비스에 마지막으로 액세스한 시간을 볼 수 있다. 해당 도구를 사용하여 User가 사용하지 않는 권한을 체크하고 최소 권한 원칙을 지키는데 도움을 줄 수 있다.
IAM : summary
- Users: mapped to a physical user, has a password for AWS Console
- Groups: contains users only
- Policies: JSON document that outlines permissions for users or groups
- Roles: for EC2 instances or AWS services
- Security: MFA + Password Policy
- AWS CLI: manage your AWS services using the command-line
- AWS SDK: manage your AWS services using a programming language
- Access Keys: access AWS using the CLI or SDK
- Audit: IAM Credential Reports & IAM Access Advisor