aws 사용자에게는 장기 자격증명이 주어진다.
그룹을 지정할 수도 있고, 역할을 지정할 수도 있다.
역할을 지정하면 단기 자격 증명이 되는데 이떄 STS(보안 토큰 서비스)를 이용하여 해당 역할을 부여하고 일시적인 해당 자격 증명으로 주어진 권한으로 할 수 있는 작업을 진행하게 된다.
ec2 인스턴스는 ec2 메타데이터 서비스를 이용하며 ec2 인스턴스에 대한 단기 자격 증명을 부여하는 것이다. 보통 인스턴스당 하나의 역할만 할당할 수 있으나 단기 자격 증명의 경우 해당 인스턴스는 s3 버킷이나 dynamoDB 테이블 등에 액세스할 수 있다.
이외에도 서비스를 바로 할당할 수 있는 서비스 역할이 있다. api gateway나 codedeploy 처럼,
오토스케일링 그룹 혹은 람다 함수 등에 대한 작업이 필요한 서비스의 경우에는 역할이 있어야 하는데 해당 역할은 요구되는 모든 작업을 할 수 있게 활성화와 프로비저닝되어야 한다.
끝으로 교차계정역할이 있다. 이 역할은 한 계정에서 다른 계정으로 가는 액세스가 필요한 작업에서 유용하게 쓰인다. 교차 계정에서 사용자의 자격증명을 공유해서는 안되기 때문에 역할에 그 권한을 대신 부여해야 한다.
iam에는 정책이 있는데, 역할과 사용자가 할 수 있는 작업을 정의한다. 총 세가지 정책이 있다.
먼저 aws 관리형 정책은 aws가 정의한 정책으로 시간이 지남에 따라 변할 수 있으나 특정 작업을 수행한다.
고객관리형정책은 여러분이 직접 정책을 생성할 수 있고 해당정책에 여러 사용자나 역할을 할당할 수 있다.
끝으로 인라인 정책이 있는데 이 정책으로는 한 명의 사용자 또는 하나의 역할을 할당할 수 있고 이후 더 발전시킬 수 있으나 사용자 또는 역할 간 이를 공유할 수는 없다.
마지막으로 살펴볼 정책은 리소스 기반 정책으로 s3 버킷 정책 혹은 sqs 대기열 정책등이 속하며 흥미로운 패턴을 실행할 수 있다.
iam 정책은 json 문서이다. 그안에는 4가지 혹은 5가지가 포함되어 있다.
그것은 action, resource, conditions, policy variables, 정책변수 이다.