크로스 계정 접근: 리소스 기반 정책과 IAM 역할의 차이점
AWS에서 크로스 계정 리소스 접근을 설정하는 방법에는 두 가지 주요 방식이 있습니다: 리소스 기반 정책과 IAM 역할입니다. 이 두 가지 방식은 비슷해 보일 수 있지만, 각 방식은 서로 다른 목적과 사용 사례를 가지고 있습니다. 이 글에서는 각 방법의 특징과 사용 사례를 설명하고, 두 방식의 차이점을 명확히 알아보겠습니다.
1. 리소스 기반 정책 (Resource-based Policy)
리소스 기반 정책은 특정 리소스에 접근할 수 있는 권한을 제어하는 방식입니다. 예를 들어, S3 버킷 정책을 사용하여 다른 계정의 사용자에게 버킷에 대한 접근을 허용할 수 있습니다. 이 방식은 리소스를 중심으로 접근 제어를 설정하므로, 주체가 자신의 권한을 포기하지 않고도 리소스에 접근할 수 있도록 허용합니다.
주요 특징:
- 리소스 자체가 접근을 제어함
- 사용자는 자신의 권한을 포기할 필요 없음
- AWS에서 다양한 리소스에 지원됨 (예: S3, SNS, SQS, Lambda 등)
예시:
- S3 버킷 정책: 계정 A의 사용자가 계정 B의 S3 버킷에 접근하려면, 계정 B의 S3 버킷 정책에 리소스 기반 정책을 설정하여 계정 A의 사용자에게 접근을 허용합니다.
- EventBridge와 리소스 기반 정책: EventBridge 규칙이 Lambda 함수 또는 SQS 큐와 같은 리소스를 호출할 때, 리소스 기반 정책을 사용하여 이러한 서비스에 접근할 수 있는 권한을 부여합니다.
2. IAM 역할 (IAM Role)
IAM 역할은 사용자가 다른 계정에서 임시 권한을 부여받을 수 있도록 하는 방식입니다. 계정 A의 사용자가 계정 B의 리소스를 접근하려면, 계정 B에서 IAM 역할을 생성하고 해당 역할을 계정 A의 사용자에게 할당하여 액세스를 허용합니다. IAM 역할을 수행하면 사용자는 원래의 권한을 포기하고, 역할에 할당된 권한만을 사용하게 됩니다.
주요 특징:
- 주체가 역할을 수행(assume) 하여 권한을 얻음
- 역할 수행 후 원래 권한은 상실하고, 역할에 할당된 권한만 사용 가능
- 임시 권한으로 제한된 작업을 수행할 때 유용
예시:
- IAM 역할을 통한 크로스 계정 접근: 계정 A의 사용자가 계정 B의 S3 버킷에 접근하려면, 계정 B에서 IAM 역할을 생성하고 이 역할에 S3에 대한 권한을 부여합니다. 그런 다음, 계정 A의 사용자가 이 역할을 수행하여 S3 버킷에 접근합니다.
3. 리소스 기반 정책 vs. IAM 역할
이 두 방법은 사용 용도와 동작 방식에서 차이가 있습니다. 다음은 두 방법의 주요 차이점입니다:
권한 제어 대상 | 리소스 (예: S3 버킷, SNS 주제 등) | 사용자 또는 서비스 (역할을 수행하는 주체) |
주체의 권한 | 주체는 원래 권한을 그대로 유지하며 리소스 정책만 적용 | 주체는 역할을 수행할 때 원래 권한을 포기하고 역할에 할당된 권한만 사용 |
임시 권한 | 영구적인 권한 부여 (리소스 정책 내에서 설정된 한 계속 유효) | 권한이 임시적이며, 역할을 수행하는 동안만 유효 |
사용 사례 | 크로스 계정 리소스 접근 제어, 서비스 간 접근 제어 | 특정 작업을 위해 임시 권한을 부여해야 할 때 |
특징리소스 기반 정책IAM 역할
4. 리소스 기반 정책의 활용 사례
리소스 기반 정책은 특정 리소스의 접근을 제어하는 데 매우 유용합니다. 예를 들어, AWS의 다양한 리소스에서 리소스 기반 정책을 사용하여 외부 계정의 접근을 제어할 수 있습니다. 아래는 몇 가지 예시입니다:
- S3 버킷 정책: 특정 계정의 사용자에게 S3 버킷에 대한 읽기/쓰기 권한을 부여할 수 있습니다.
- SNS, SQS와 EventBridge: EventBridge 규칙이 SNS, SQS와 같은 리소스를 호출할 때 리소스 기반 정책을 사용하여 필요한 권한을 설정합니다.
- Lambda 함수와 EventBridge: EventBridge 규칙이 Lambda 함수를 호출하는 경우, Lambda 함수의 리소스 기반 정책을 통해 EventBridge의 호출을 허용할 수 있습니다.
5. IAM 역할의 활용 사례
IAM 역할은 임시 권한을 부여할 수 있는 유용한 방법입니다. 예를 들어, 한 계정에서 다른 계정으로 권한을 부여하거나, 특정 작업을 수행할 수 있도록 허용할 때 사용됩니다. 아래는 몇 가지 예시입니다:
- IAM 역할을 통한 S3 접근: 계정 A의 사용자가 계정 B의 S3 버킷에 접근할 수 있도록 IAM 역할을 통해 임시 권한을 부여합니다.
- EventBridge와 IAM 역할: EventBridge 규칙이 Kinesis 데이터 스트림 또는 ECS 작업을 호출할 때 IAM 역할을 수행하여 권한을 얻습니다.
6. 결론
리소스 기반 정책과 IAM 역할은 각각의 사용 사례에 따라 유용하게 활용될 수 있습니다. 리소스 기반 정책은 리소스 중심으로 접근 제어를 설정하는 방식이고, IAM 역할은 임시 권한을 부여하여 다른 계정이나 리소스에 대한 접근을 허용하는 방식입니다. 각 방식의 특성을 잘 이해하고 적절한 상황에 맞춰 사용하면, AWS에서의 크로스 계정 접근을 효율적으로 관리할 수 있습니다.
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] IAM MFA (0) | 2024.12.21 |
---|---|
[AWS SCS] ABAC (0) | 2024.12.21 |
[AWS SCS] IAM Policy Evaluation Logic (0) | 2024.12.21 |
[AWS SCS] IAM Permission Boundaries (1) | 2024.12.21 |
[AWS SCS] IAM Global condition context keys (0) | 2024.12.21 |