AWS: 소스 IP를 기준으로 AWS 액세스 거부하기
AWS: 소스 IP를 기준으로 AWS 액세스 거부하기
이 예시는 요청이 지정한 IP 범위 밖의 프린시펄(principal)에서 왔을 때 계정의 모든 AWS 액션에 대한 액세스를 거부하는 자격 증명 기반 정책을 만드는 방법을 보여드려요. 회사의 IP 주소가 지정된 범위 안에 있을 때 이 정책이 유용해요.
이 예시에서는 요청이 192.0.2.0/24 또는 203.0.113.0/24 CIDR 범위에서 오지 않으면 거부돼요. 원래 요청자의 IP 주소가 보존되기 때문에 이 정책은 AWS 서비스가 Forward access sessions을 사용해서 보낸 요청은 거부하지 않아요.
출처: 문서
본문
"Effect": "Deny"와 같은 정책 스테이트먼트에 부정(Negative) 조건을 사용할 때는 주의해야 해요. 그렇게 하면 지정된 조건을 제외한 모든 조건에서 스테이트먼트에 지정된 액션이 명시적으로 거부되거든요.
중요
이 정책은 어떤 액션도 허용하지 않아요. 특정 액션을 허용하는 다른 정책과 함께 사용하세요. 다른 정책이 액션을 허용하면 프린시펄은 IP 주소 범위 안에서 요청할 수 있어요. AWS 서비스도 프린시펄의 자격 증명으로 요청할 수 있어요. 프린시펄이 IP 범위 밖에서 요청하면 그 요청은 거부돼요.
aws:SourceIp 조건 키 사용에 대한 자세한 내용과 정책에서 aws:SourceIp가 동작하지 않을 수 있는 시점은 AWS global condition context keys 문서를 참고하세요.
{
"Version":"2012-10-17",
"Statement": {
"Effect": "Deny",
"Action": "*",
"Resource": "*",
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
"192.0.2.0/24",
"203.0.113.0/24"
]
}
}
}
}