16. 사용자와 그룹을 생성하여 접근제어 및 권한관리를 제공하는 IAM
16. 사용자와 그룹을 생성하여 접근제어 및 권한관리를 제공하는 IAM 관련
IAM은 Identity and Access Management(식별 및 접근 관리)의 약어로 사용자와 그룹을 생성하고 AWS의 각 리소스에 대해 접근제어와 권한관리를 제공합니다. IAM은 실제로 서비스를 제공하는 AWS 리소스가 아니라서 사용 요금이 없습니다.
IAM은 AWS 계정 안에 IAM 그룹과 사용자를 생성하여 접근제어 및 권한관리를 세분화할 수 있습니다. 어떤 IAM 사용자는 EC2만 관리할 수 있고, 어떤 IAM 사용자는 S3의 내용을 읽을 수만 있도록 구성할 수 있습니다. 따라서 전체 권한이 아닌 필요한 권한만 주기 때문에 보안성이 높아집니다. IAM 그룹은 동일한 권한을 여러 IAM 사용자에게 적용시킬 때 사용합니다.
.AWS 계정으로 AWS 콘솔 페이지에 접속하듯이 IAM 사용자도 AWS 콘솔에 접속할 수 있습니다. IAM 사용자에게 특정 AWS 리소스에만 접근할 수 있도록 설정했다면 AWS 콘솔에서도 허용된 AWS 리소스만 제어할 수 있습니다. 또한 IAM 계정은 액세스 키를 별도로 생성할 수 있고, 이 액세스 키를 이용하여 AWS API를 사용할 수 있습니다.
IAM과 리전
IAM은 리전별로 설정할 수 없고 모든 리전에서 동일하게 작동합니다.
IAM은 소규모 벤처기업이나 스타트업 뿐만 아니라 규모가 크고 인원이 많은 조직에서 매우 유용합니다. 그림 16-2처럼 AWS 요금 결제와 제품 개발, 서비스 운영을 분리하여 구성할 수 있습니다.
.AWS 계정에는 다른 AWS 계정의 요금을 합쳐서 지불하는 통합 결제Consolidated Billing 기능이 있습니다. 일반적인 회사에서는 비용 지출을 재무회계팀에서 최종적으로 관리합니다. 따라서 재무회계팀에서 AWS 통합 계정을 사용하여 회사 내 모든 부서의 AWS 요금을 관리하고 지불할 수 있습니다.
부서가 다를 때는 AWS 계정을 분리하여 구성하면 매우 편리합니다. 제품 개발부의 개발용 EC2 인스턴스에 서비스 운영부의 사람들이 마음대로 접근해서는 안되겠죠. 이처럼 실제 조직의 특성에 맞게 접근제어와 권한관리를 설정할 수 있습니다.
AWS 통합 결제
.AWS 콘솔의 Billing & Cost Management에서 통합 결제Consolidated Billing 기능을 사용할 수 있습니다. 결제를 하는 계정(Payer Account)이 AWS 리소스를 사용하는 계정(Linked Account)에 연결 요청을 보내는 방식입니다.
IAM 그룹과 사용자에게 권한을 설정하는 것과는 달리 EC2 인스턴스 전용으로 권한을 설정할 수 있습니다. 이것을 IAM 역할Role이라고 합니다. IAM 역할은 EC2 인스턴스뿐만 아니라 다른 AWS 계정(또는 다른 AWS 계정의 IAM 사용자), Facebook, Google, Amazon.com 계정 전용으로 권한을 설정할 수 있습니다.