상세 컨텐츠

본문 제목

특정 IP로만 AWS Console을 사용할 수 있게 설정

☁️ AWS

by chnh 2023. 5. 23. 10:08

본문

반응형

들어가며

보안을 위해 Console을 사용할 수 있는 계정 및 조직을 제한할 수 있는 AWS Management Console 프라이빗 액세스 기능이 발표되었다. VPC 엔드포인트 정책을 통해 제어하는 방식인데, 때문에 특정 서비스에 대해서는 콘솔 접근을 제어할 수 없고 아직 서울 리전에서는 제공하지 않는다. 따라서 현 상황에서 사용할 수 있는 콘솔 제어 방법에 대해 소개하려 한다.

 

 

IP 기반 AWS Console 사용 제어

 

IAM 사용자가 특정 IP로 로그인 했을 때만 Conosle 사용 가능

 

  • 예를 들어 "사무실 IP로만 콘솔 사용이 가능하게 해주세요."와 같은 요청이 있을 때 사용할 수 있다.
  • Console 로그인 자체를 차단할 수는 없지만 로그인 이후 콘솔 사용을 불가능하게 하는 데 의의가 있다.
  • 루트가 아닌 IAM User에 대해서만 적용이 가능하다. 따라서 Root 사용자 로그인 시에는 알람을 받도록 설정한다.

 

이를 구현하는 정책은 크게 두 가지로 생각해 볼 수 있다.

 

1. 특정 IP에서 명시적 허용, 다른 IP에서 암시적 거부
2. 특정 IP를 제외한 모든 IP에서 명시적 거부

 

 

두 정책 모두 지정한 IP 주소의 요청만 허용한다는 점에서 비슷하지만 명시적으로 모든 IP를 거부하는 정책이 더 보안상 안전하기 때문에 2번 방법을 선택하였다. '특정 IP에서 명시적 허용, 다른 IP에서 암시적 거부' 방식은 다른 IAM 정책과 결합하여 의도치 않게 액세스를 허용할 가능성이 있기 때문이다.

 

 

설정 방법

https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/tutorial_managed-policies.html

 

1. 정책 생성

IAM 콘솔에서 특정 IP를 제외한 모든 IP에서 콘솔 사용을 명시적 거부하는 정책을 생성한다.

"aws:SourceIp" :"xx.xx.xx.xx/32" 에 액션을 허용할 IP를 입력해준다.

 

✔️ 특정 IP만 허용할 경우

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp" :"xx.xx.xx.xx/32"
            }
        }
    }
}

✔️ 여러 IP를 허용할 경우

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Deny",
        "Action": "*",
        "Resource": "*",
        "Condition": {
            "NotIpAddress": {
                "aws:SourceIp" :["xx.xx.xx.xx/32", "yy.yy.yy.yy/32", "zz.zz.zz.zz/32"]
            }
        }
    }
}

 

2. 정책 연결

사용자 or 그룹에 생성한 정책을 연결한다.

 

3. 허용하지 않은 IP로 접근 테스트

허용하지 않은 IP로 로그인해서 (로그인까지는 성공한다.) 콘솔에서 아무거나 클릭해보면 다음과 같은 안내 문구가 표시되면서 접근이 제한된다.

 

not authorized to perform

 


 

참고자료

반응형

관련글 더보기

댓글 영역