IAM 비즈니스 사용 사례
IAM 비즈니스 사용 사례
IAM의 간단한 비즈니스 사용 사례를 보면 사용자가 갖는 AWS 접근을 제어하기 위해 서비스를 구현하는 기본적인 방법을 이해하는 데 도움이 돼요. 이 사용 사례는 IAM API를 어떻게 사용해 원하는 결과를 얻는지에 대한 메커니즘 없이 일반적인 용어로 설명돼요. 가상 회사 Example Corp가 IAM을 사용할 수 있는 두 가지 전형적인 방식을 살펴봐요. 첫 번째 시나리오는 Amazon Elastic Compute Cloud(Amazon EC2), 두 번째는 Amazon Simple Storage Service(Amazon S3)를 다뤄요.
출처: 문서
본문
다른 AWS 서비스와 함께 IAM을 사용하는 방법에 대한 자세한 내용은 IAM과 함께 작동하는 AWS 서비스를 참고하세요.
Topics
- Example Corp 초기 설정
- Amazon EC2에서 IAM 사용 사례
- Amazon S3에서 IAM 사용 사례
Example Corp 초기 설정 (Initial setup of example corp)
Nikki Wolf와 Mateo Jackson은 Example Corp의 창업자예요. 회사를 시작하면서 AWS 계정을 만들고 AWS IAM Identity Center(IAM Identity Center)를 설정해 AWS 리소스에 사용할 관리 계정을 만들었어요. 관리 사용자에 대한 계정 접근을 설정하면 IAM Identity Center가 해당 IAM 역할을 만들어요. IAM Identity Center가 제어하는 이 역할은 관련 AWS 계정에 생성되고, AdministratorAccess 권한 세트에 지정된 정책이 역할에 연결돼요.
이제 관리자 계정이 있으므로 Nikki와 Mateo는 더 이상 루트 사용자로 AWS 계정에 접근할 필요가 없어요. 루트 사용자만 수행할 수 있는 작업을 완료하는 데만 루트 사용자를 사용할 계획이에요. 보안 모범 사례를 검토한 뒤 루트 사용자 자격 증명에 다중 인증(MFA)을 구성하고 루트 사용자 자격 증명을 안전하게 보호하는 방법을 결정했어요.
회사가 성장하면서 개발자, 관리자, 테스터, 매니저, 시스템 관리자로 일할 직원을 고용해요. Nikki는 운영을 담당하고 Mateo는 엔지니어링 팀을 관리해요. 직원 계정을 관리하고 회사 내부 리소스에 대한 접근을 관리하기 위해 Active Directory 도메인 서버를 설정해요.
직원들에게 AWS 리소스 접근 권한을 주기 위해 IAM Identity Center를 사용해 회사의 Active Directory를 AWS 계정에 연결해요. Active Directory를 IAM Identity Center에 연결했으므로 사용자, 그룹, 그룹 멤버십이 동기화·정의돼요. AWS 리소스에 대한 올바른 접근 수준을 사용자에게 주려면 다른 그룹에 권한 세트와 역할을 할당해야 해요. AWS Management Console에서 직무 함수용 AWS 관리형 정책을 사용해 다음과 같은 권한 세트를 만들어요.
- Administrator
- Billing
- Developers
- Network administrators
- Database administrators
- System administrators
- Support users
그런 다음 이 권한 세트를 Active Directory 그룹에 할당된 역할에 배정해요.
IAM Identity Center 초기 구성에 대한 단계별 가이드는 _AWS IAM Identity Center 사용자 가이드_의 시작하기를, IAM Identity Center 사용자 접근 프로비저닝에 대한 자세한 내용은 _AWS IAM Identity Center 사용자 가이드_의 AWS 계정에 대한 단일 로그온 접근을 참고하세요.
Amazon EC2에서 IAM 사용 사례 (Use case for IAM with Amazon EC2)
Example Corp 같은 회사는 일반적으로 Amazon EC2 같은 서비스와 상호작용하기 위해 IAM을 사용해요. 이 사용 사례를 이해하려면 Amazon EC2에 대한 기본적인 이해가 필요해요. Amazon EC2에 대한 자세한 내용은 Amazon EC2 사용자 가이드를 참고하세요.
사용자 그룹에 대한 Amazon EC2 권한 (Amazon EC2 permissions for the user groups)
"경계(perimeter)" 제어를 제공하기 위해 Nikki는 AllUsers 사용자 그룹에 정책을 연결해요. 이 정책은 원래 IP 주소가 Example Corp의 회사 네트워크 밖에 있는 경우 해당 사용자의 모든 AWS 요청을 거부해요.
Example Corp에서 서로 다른 IAM 그룹은 서로 다른 권한이 필요해요.
- 시스템 관리자 (System administrators) – AMI, 인스턴스, 스냅샷, 볼륨, 보안 그룹 등을 만들고 관리할 수 있는 권한이 필요해요. Nikki는 SysAdmins 사용자 그룹에
AmazonEC2FullAccessAWS 관리형 정책을 연결해 그룹 구성원에게 모든 Amazon EC2 액션을 사용할 수 있는 권한을 줘요. - 개발자 (Developers) – 인스턴스만 다룰 수 있는 능력이 필요해요. 그래서 Mateo는 Developers 사용자 그룹에 개발자가
DescribeInstances,RunInstances,StopInstances,StartInstances,TerminateInstances를 호출할 수 있게 하는 정책을 만들어 연결해요.
참고 — Amazon EC2는 특정 Amazon EC2 인스턴스의 운영 체제에 누가 접근할 수 있는지 제어하기 위해 SSH 키, Windows 비밀번호, 보안 그룹을 사용해요. IAM 시스템에는 특정 인스턴스의 운영 체제에 대한 접근을 허용하거나 거부하는 방법이 없어요.
- 지원 사용자 (Support users) – Amazon EC2 리소스 나열 외에는 어떤 Amazon EC2 액션도 수행할 수 없어야 해요. 그래서 Nikki는 Support users 그룹에 Amazon EC2 "Describe" API 작업만 호출하게 하는 정책을 만들어 연결해요.
이 정책의 예시는 예시 IAM 자격 증명 기반 정책과 _Amazon EC2 사용자 가이드_의 AWS Identity and Access Management 사용을 참고하세요.
사용자의 직무 함수 변경 (User's job function change)
어느 시점에 개발자 중 한 명인 Paulo Santos가 직무 함수를 바꿔 매니저가 돼요. 매니저가 된 Paulo는 개발자들을 위해 지원 케이스를 열 수 있도록 Support users 그룹의 일원이 돼요. Mateo는 Paulo를 Developers 사용자 그룹에서 Support users 사용자 그룹으로 옮겨요. 이 이동의 결과로 Paulo의 Amazon EC2 인스턴스 상호작용 능력이 제한돼요. 그는 인스턴스를 시작하거나 실행할 수 없어요. 자신이 시작한 인스턴스라도 중지하거나 종료할 수도 없어요. Example Corp 사용자가 시작한 인스턴스만 나열할 수 있어요.
Amazon S3에서 IAM 사용 사례 (Use case for IAM with Amazon S3)
Example Corp 같은 회사는 일반적으로 Amazon S3와 함께 IAM을 사용해요. John이 회사를 위해 _amzn-s3-demo-bucket_이라는 Amazon S3 버킷을 만들었어요.
다른 사용자와 사용자 그룹 만들기 (Creation of other users and user groups)
직원들인 Zhang Wei와 Mary Major는 각각 회사 버킷에 자신의 데이터를 만들 수 있어야 해요. 또한 모든 개발자가 작업하는 공유 데이터를 읽고 쓸 수 있어야 해요. 이를 위해 Mateo는 아래 그림처럼 Amazon S3 키 접두사 방식을 사용해 amzn-s3-demo-bucket의 데이터를 논리적으로 구성해요.
/amzn-s3-demo-bucket
/home
/zhang
/major
/share
/developers
/managers
Mateo는 /amzn-s3-demo-bucket을 각 직원의 홈 디렉터리 집합과 개발자·매니저 그룹의 공유 영역으로 나눠요. 이제 Mateo는 사용자와 사용자 그룹에 권한을 할당하기 위해 정책 집합을 만들어요.
- Zhang의 홈 디렉터리 접근 – Mateo는 Wei에게
/amzn-s3-demo-bucket/home/zhang/Amazon S3 키 접두사가 있는 객체를 읽고, 쓰고, 나열할 수 있게 하는 정책을 연결해요. - Major의 홈 디렉터리 접근 – Mateo는 Mary에게
/amzn-s3-demo-bucket/home/major/Amazon S3 키 접두사가 있는 객체를 읽고, 쓰고, 나열할 수 있게 하는 정책을 연결해요. - developers 사용자 그룹의 공유 디렉터리 접근 – Mateo는 사용자 그룹에
/amzn-s3-demo-bucket/share/developers/의 객체를 읽고, 쓰고, 나열할 수 있게 하는 정책을 연결해요. - managers 사용자 그룹의 공유 디렉터리 접근 – Mateo는 사용자 그룹에
/amzn-s3-demo-bucket/share/managers/의 객체를 읽고, 쓰고, 나열할 수 있게 하는 정책을 연결해요.
참고 — Amazon S3는 버킷이나 객체를 만든 사용자에게 해당 버킷·객체에서 다른 액션을 수행할 권한을 자동으로 주지 않아요. 따라서 IAM 정책에서 사용자에게 자신이 만든 Amazon S3 리소스를 사용할 권한을 명시적으로 부여해야 해요.
이 정책의 예시는 _Amazon Simple Storage Service 사용자 가이드_의 Access Control을, 런타임에 정책이 평가되는 방식은 정책 평가 논리를 참고하세요.
사용자의 직무 함수 변경 (User's job function change)
어느 시점에 개발자 중 한 명인 Zhang Wei가 직무 함수를 바꿔 매니저가 돼요. 그는 더 이상 share/developers 디렉터리의 문서에 접근할 필요가 없다고 가정해요. 관리자인 Mateo는 Wei를 Developers 사용자 그룹에서 Managers 사용자 그룹으로 옮겨요. 이 간단한 재할당만으로 Wei는 자동으로 Managers 사용자 그룹에 부여된 모든 권한을 얻고, share/developers 디렉터리의 데이터에는 더 이상 접근할 수 없게 돼요.
타사 비즈니스와의 통합 (Integration with a third-party business)
조직은 종종 파트너 회사, 컨설턴트, 계약자와 함께 일해요. Example Corp에는 Widget Company라는 파트너가 있고, Widget Company 직원 Shirley Rodriguez는 Example Corp가 사용할 버킷에 데이터를 넣어야 해요. Nikki는 _WidgetCo_라는 사용자 그룹과 Shirley라는 사용자를 만들고 Shirley를 WidgetCo 사용자 그룹에 추가해요. 그리고 Shirley가 사용할 _amzn-s3-demo-bucket1_이라는 특별한 버킷을 만들어요.
Nikki는 파트너 Widget Company를 수용하도록 기존 정책을 업데이트하거나 새 정책을 추가해요. 예를 들어 Nikki는 WidgetCo 사용자 그룹 구성원이 쓰기(write) 이외의 모든 액션을 사용하지 못하게 하는 새 정책을 만들 수 있어요. 이 정책은 모든 사용자에게 광범위한 Amazon S3 액션 집합에 대한 접근을 주는 광범위한 정책이 있을 때만 필요해요.