IAM(Identity And Access Management)
인증되있고 권한이 있는 사용자만이 특정 리소스들을 사용할 수 있도록 제어하기 위한 웹 서비스
AWS account를 생성시, single sign-in identity로 시작하는데 account에 있는 모든 AWS service, resource들에 대한 완전한 접근을 가지고 있다. 이 identity를 AWS account root user라고 부른다. 보통 root user 계정은 첫번째 IAM user를 만드는데만 사용하는것이 권장된다.
IAM features
IAM은 다음과 같은 특징이 있다.
Shared access to your AWS account
password, access key 공유 없이 다른 사람들에게 AWS account에 있는 리소스들을 사용하고 관리할 권한을 부여할 수 있다.
Granular permission
You can grant different permissions to different peoeple for different resources.
EC2에서 동작하는 어플리케이션들에게 AWS 리소스들에 대한 안전한 접근
EC2 instance에서 동작하는 어플리케이션에게 안전하게 credential을 제공해주고 S3 bucket이나 DynamodbDB table과 같은 리소스에 접근가능하도록 허락한다.
Multi-factor authentication(MFA)
two-factor authentication을 계정에 추가할 수 있다. MFA를 사용해서 사용자들은 password, access key를 제공해야할 뿐 아니라, specially configured device로 부터의 코드 또한 제공 해야한다.
동작방식
용어
- IAM Resources : IAM에 저장되어있는 user,group,role,policy, identity provider 오브젝트들.
- IAM Identities : group을 식별하는데 사용되는 IAM resource objects. policy를 IAM identity에 부여가능. 이는 users,groups,roles를 포함한다.
- IAM Entities : 인증을 위해 AWS가 사용하는 IAM resource 객체. 이는 IAM user와 role을 포함한다.
- Principles : AWSaccount root user, IAM user, IAM role을 사용하는 person or application. Principal들은 federated user, assumed role들을 포함.
- Cross-Account Access : 하나의 계정으로 여러 role에 대해서 사용할 수 있도록 해주는 기능