AWS: 요청된 리전(Region)을 기준으로 AWS 액세스 거부하기
AWS: 요청된 리전(Region)을 기준으로 AWS 액세스 거부하기
이 예시는 aws:RequestedRegion 조건 키를 사용해, NotAction으로 지정한 서비스의 액션을 제외하고 지정한 리전 밖의 모든 액션에 대한 액세스를 거부하는 자격 증명 기반 정책을 만드는 방법을 보여드려요. 이 정책은 프로그래매틱 액세스와 콘솔 액세스 모두에 대한 권한을 정의해요.
출처: 문서
본문
이 정책은 Deny 효과와 NotAction 요소를 사용해서, 스테이트먼트에 나열되지 않은 모든 액션에 대한 액세스를 명시적으로 거부해요.
CloudFront, IAM, Route 53, Support 서비스의 액션은 거부하면 안 돼요. 이들은 물리적으로 us-east-1 리전에 위치한 단일 엔드포인트를 가진 널리 쓰이는 AWS 글로벌 서비스이기 때문이에요. 이 서비스들에 대한 모든 요청은 us-east-1 리전으로 보내지기 때문에, NotAction 요소가 없으면 그 요청들까지 거부돼요. budgets, globalaccelerator, importexport, organizations, waf처럼 사용하는 다른 AWS 글로벌 서비스의 액션을 포함하도록 이 요소를 편집하면 돼요.
일부 다른 글로벌 서비스, 예를 들어 채팅 애플리케이션의 Amazon Q Developer와 AWS Device Farm은 엔드포인트가 물리적으로 us-west-2 리전에 위치한 글로벌 서비스예요. 단일 글로벌 엔드포인트를 가진 모든 서비스에 대해 알아보려면 AWS General Reference의 AWS Regions and Endpoints 문서를 참고하세요. Deny 효과와 함께 NotAction 요소를 사용하는 방법은 IAM JSON policy elements: NotAction 문서를 참고하세요.
중요
이 정책은 어떤 액션도 허용하지 않아요. 특정 액션을 허용하는 다른 정책과 함께 사용하세요.
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "DenyAllOutsideRequestedRegions",
"Effect": "Deny",
"NotAction": [
"cloudfront:*",
"iam:*",
"organizations:*",
"route53:*",
"support:*"
],
"Resource": "*",
"Condition": {
"StringNotEquals": {
"aws:RequestedRegion": [
"eu-central-1",
"eu-west-1",
"eu-west-2",
"eu-west-3"
]
}
}
}
]
}