Question 


개인정보 점검 준비 중에 관리자 접근 권한(access key)를 IP로 제한해야 한다는 요건이 확인되었습니다.

Access Key 또는 IAM user에 대하여 IP를 제한할 수 있는 방안이 있을까요?




Answer


아래 예제에서는 지정된 IP 범위를 벗어나는 보안 주체에서 요청이 오는 경우, 계정의 모든 AWS 작업에 대한 액세스를 거부합니다.

이 정책은 프로그래밍 방식(CLI) 및 콘솔 액세스에 대한 권한을 정의합니다.


아래 예제는 소스 IP "192.0.2.0/24""203.0.113.0/24"를 제외한 모든 IP를 Deny하는 정책입니다.

즉, 해당 IP만 AWS 작업을 허용하는 정책입니다.


소스 IP 부분을 사용자 환경에 맞게 변경하시어 사용하시면 됩니다. 



{

    "Version": "2012-10-17",

    "Statement": {

        "Effect": "Deny",

        "Action": "*",

        "Resource": "*",

        "Condition": {

            "NotIpAddress": {

                "aws:SourceIp": [

                    "192.0.2.0/24",

                    "203.0.113.0/24"

                ]

            },

            "Bool": {"aws:ViaAWSService": "false"}

        }

    }

}


해당 정책에 대한 부연설명을 드립니다.


이 정책은 "Deny" 효과를 사용하는 하나의 문장을 포함하고 있으며, 이는 명시적으로 접근을 거부함을 의미합니다. 

이는 특정 조건 하에서 모든 작업(`"Action": "*"`)에 대해 모든 리소스(`"Resource": "*"`)에 적용됩니다.


Condition 요소는 정책이 효력을 발휘하는 조건을 지정하는 정책의 부분입니다. 여기에는 두 가지 조건이 있습니다:


1. "NotIpAddress": 이 조건은 요청의 원본 IP가 지정된 "192.0.2.0/24" 또는 "203.0.113.0/24" IP 주소 범위 중 어느 것도 아닐 경우에 일치합니다. 이렇게 하면 이 IP 범위 외부에서의 접근을 제한합니다.


2. "Bool": {"aws:ViaAWSService": "false"}`: 이 조건은 요청이 AWS 서비스를 통하지 않은 경우에 일치합니다.


따라서, 이 정책의 문장은 요청이 지정된 범위 외부의 IP 주소에서 오고, 요청이 AWS 서비스를 통하지 않은 경우, 모든 리소스에 대한 모든 작업에 대한 접근을 명시적으로 거부합니다.


더 간단한 용어로 말하면, 이 정책은 "특정 IP 범위에서 들어오고 AWS 서비스를 통한 요청이 아니라면, 모든 것을 거부하라"는 내용입니다.


명시적인 거부는 모든 허용을 무시하기 때문에, 이 정책의 지정된 조건이 충족된 경우 다른 정책이 접근 권한을 부여하더라도 이 정책은 접근을 거부할 것입니다.



참조 링크:

[1] AWS: 소스 IP를 바탕으로 AWS에 대한 액세스 거부 -

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html







위 내용 관련하여 궁금증이 해결되지 않으셨거나, 

추가 문의 사항이 있으시면 저희 고객 지원 포털에 문의 남겨주시기 바랍니다.