728x90
반응형
IAM 정책에서 사용할 수 있는 주요 조건들 (Global Context Keys 및 기타 조건들)
AWS IAM 정책에서는 리소스에 대한 접근 제어를 보다 세밀하게 할 수 있도록 다양한 조건을 설정할 수 있습니다. 이 글에서는 IAM 조건의 주요 구성 요소와 그 사용법을 정리해보겠습니다.
1. 요청된 리전 (Requested Region)
- 기능: requested region은 요청이 이루어진 AWS 리전을 나타냅니다. 이를 사용하여 특정 리전에서만 특정 작업을 제한할 수 있습니다.
- 예시:
"Condition": {
"StringEquals": {
"aws:RequestedRegion": "eu-west-1"
}
}
- 위 예시에서는 eu-west-1 리전에서만 작업을 허용합니다.
- 주의사항: 글로벌 서비스를 사용하는 경우, 요청 리전은 항상 us-east-1로 간주됩니다. 이를 해결하려면 Deny와 NotAction을 사용하여 글로벌 서비스를 제외한 다른 리전에서의 작업을 제한해야 합니다.
2. PrincipleArn
- 기능: PrincipleArn은 요청을 보낸 IAM 사용자나 역할의 ARN을 비교하는 조건입니다.
- 예시:
"Condition": {
"StringEquals": {
"aws:PrincipalArn": "arn:aws:iam::123456789012:user/Alice"
}
}
- 이 예시는 요청을 보낸 IAM 사용자가 Alice일 경우에만 작업을 허용합니다.
- 사용처: IAM 사용자, IAM 역할, AWS 루트 사용자, STS(임시 보안 자격 증명) 세션 등에서 PrincipalArn을 사용하여 요청 주체를 확인할 수 있습니다.
3. SourceArn
- 기능: SourceArn은 서비스 간 상호작용에서 요청을 보낸 서비스의 ARN을 비교하는 데 사용됩니다.
- 예시:
"Condition": {
"StringEquals": {
"aws:SourceArn": "arn:aws:s3:::myBucket"
}
}
- 이 예시는 SNS가 S3 버킷에서만 데이터를 수신하도록 제한합니다.
- 사용처: 주로 서비스 간 상호작용에서 사용됩니다. 예를 들어, S3 버킷이 SNS에 이벤트 알림을 보낼 때 SourceArn을 사용하여 S3 버킷에서만 이벤트가 발생하도록 할 수 있습니다.
4. CalledVia
- 기능: CalledVia는 IAM 사용자나 역할을 대신해 요청을 보낸 서비스의 이름을 나타내는 조건입니다.
- 예시:
"Condition": {
"StringEquals": {
"aws:CalledVia": "Athena"
}
}
- 이 예시는 Athena가 S3에서 데이터를 쿼리할 때만 작업을 허용합니다.
- 지원되는 서비스: Athena, CloudFormation, DynamoDB, KMS 등에서만 사용할 수 있습니다.
5. IP 및 VPC 조건
- 기능: 요청의 IP 주소를 기반으로 접근을 제어하는 조건입니다.
- 예시:
"Condition": {
"IpAddress": {
"aws:SourceIp": "203.0.113.0/24"
}
}
- 위 예시는 203.0.113.0/24 IP 범위에서만 요청을 허용합니다.
- VPC 조건:
- aws:VpcSourceIp: VPC 엔드포인트를 통해 이루어진 요청의 IP 주소를 확인.
- aws:SourceVpc: 요청이 발생한 VPC를 식별.
- aws:SourceVpce: 요청이 어떤 VPC 엔드포인트를 통해 이루어졌는지 식별.
6. 리소스 태그와 원칙 태그 (Resource Tag & Principle Tag)
- 기능: 리소스와 IAM 사용자 또는 역할의 태그를 사용하여 접근을 제어합니다.
- 리소스 태그: 지정된 AWS 리소스에 존재하는 태그를 기반으로 접근을 제어합니다.
"Condition": {
"StringEquals": {
"aws:ResourceTag/Project": "DataAnalytics"
}
}
- 이 예시는 EC2 인스턴스가 Project 태그에 DataAnalytics 값을 가질 때만 작업을 허용합니다.
- 원칙 태그: 요청을 보낸 IAM 사용자 또는 역할에 존재하는 태그를 기반으로 접근을 제어합니다.
"Condition": {
"StringEquals": {
"aws:PrincipalTag/Department": "Finance"
}
}
- 이 예시는 요청을 보낸 IAM 사용자가 Department 태그에 Finance 값을 가질 때만 작업을 허용합니다.
결론
이와 같은 조건을 활용하면 AWS 리소스에 대한 접근 제어를 세밀하게 설정할 수 있습니다. IAM 정책을 설계할 때, 이러한 조건들을 적절히 사용하면 보안과 효율성을 크게 향상시킬 수 있습니다. 각 조건의 사용법과 특징을 잘 이해하고 활용한다면, AWS 리소스에 대한 접근을 더욱 안전하고 유연하게 관리할 수 있을 것입니다.
728x90
반응형
'자격증 > AWS Certified Security - Specialty' 카테고리의 다른 글
[AWS SCS] IAM Policy Evaluation Logic (0) | 2024.12.21 |
---|---|
[AWS SCS] IAM Permission Boundaries (1) | 2024.12.21 |
[AWS SCS] IAM Condition Operators (0) | 2024.12.21 |
[AWS SCS] IAM Policies 이해하기 (1) | 2024.12.21 |
[AWS SCS] Amazon SES (0) | 2024.12.17 |