누가, 무엇을, 어떻게 할 것인지에 대해 인증과 인가를 제어하는 서비스
IAM 에서 관리하는 리소스를 크게 보면 다음과 같습니다.
정책에는 어떠한 권한에 대한 상세한 설정을 합니다. 그리고 이 정책을 역할을 연결하고, 역할은 사용자나 AWS 리소스에 연결되어 해당 리소스나 유저의 권한을 설정합니다.
IAM 사용자는 인증 을 위한 리소스입니다. IAM 사용자를 만든 후에는 다음 자격 증명을 생성할 수 있습니다.
사용자는 반드시 사람일 필요가 없으며 어플리케이션 등에서 액세스 키 ID나 비밀 액세스 키를 활용하여 인증을 하는 데에도 많이 사용됩니다.
IAM 유저나 특정 AWS 서비스들은 IAM 역할을 이용하여 권한을 설정할 수 있습니다.
IAM 역할도 인증을 위해 사용되지만 유저와 다른 점은 역할 자체가 요청을 보내는 주체가 되지는 않습니다. 즉, 역할을 맡은 유저나 서비스가 요청의 주체가 됩니다.
또한 역할은 하나의 유저에 귀속되지 않고 해당 역할이 필요한 모든 유저나 서비스에 연결될 수 있습니다. 귀속되지 않기 때문에 유저가 해당 역할을 이용하기 위해 AWS Security Token Service(STS) 라는 서비스에 임시 보안 자격 증명을 요청합니다. 그럼 STS에서 IAM에 해당 유저가 역할을 맡을 수 있는지 확인한 후 역할을 이용할 수 있는 임시 보안 자격 증명을 제공합니다. 그리고 해당 증명 세션이 유효한 시간 동안 유저는 해당 역할의 권한이 이용 가능합니다.
AWS IAM 정책(policy) 과 역할(role) 의 차이
권한를 부여하는 것이다. 권한을 갖는 주체는 IAM 사용자, 역할, 그룹, AWS 리소스 등이 될 수 있다. 권한을 갖는 주체에 따라 자격 증명 기반 정책, 리소스 기반 정책 등으로 분류된다.
사용자는 정책을 통해 영구한 권한을 바로 얻거나, 정책에 따라 권한이 부여된 역할을 위임 받아 권한을 임시로 얻는다.