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
위 내용 관련하여 궁금증이 해결되지 않으셨거나,
추가 문의 사항이 있으시면 저희 고객 지원 포털에 문의 남겨주시기 바랍니다.