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"
                ]
            }
        }
    }
}

더 알아보기 (Learn more)