이 포스팅에서는 AWS ENI 에 적용하여 네트워크 보안 기능을 제공하는 Security Group 에서 사용 가능한 최대 규칙의 수를 살펴보도록 하겠습니다.
아래 AWS 웹사이트에서 제공하는 VPC Limit 중 Security Group 과 관련한 Limit 을 살펴보면,
- 하나의 리전에서 사용 가능한 Security Group 의 수 = 기본값 2,500 최대값 5,000 혹은 그 이상(AWS Support Team 의 Review 후 결정)
- Security Group 별 Inbound 혹은 Outbound 규칙의 수 = 기본값 60, 최대값 1,000
- 하나의 ENI 에 적용 가능한 Security Group 의 수 = 기본값 5, 최대값 16
과 같은 내용들이 담겨 있는데요.
제가 살펴 볼 내용은 하나의 ENI 에 적용 가능한 최대 Security Group 의 규칙 수 입니다. 위 AWS 문서에 따르면 사용 가능한 규칙의 최대값은 Security Group 의 수와 관련이 있다고 나와 있습니다.
예를 들면, 모든 설정들을 기본값으로 사용하는 경우 하나의 ENI 에 적용 가능한 최대 Security Group 의 규칙의 수는
Security Group 5개 * 각 Security Group 에 Rule 60개씩 = 300 Permission Entry 가 됩니다.
그런데 여러분들은 Security Group 의 Limit 이 발생하였을 경우 AWS Support Team 에 기본 Limit 값에 대한 증설이나 축소를 요청하여 사용 가능한 최대 Security Group Rule 의 갯수를 조절하실 수 있습니다.
단, 여기에 조건이 하나 있는데 어떠한 경우에도 “Security Group 의 수 * Security Group 의 Rule” 의 조합이 1,000 을 넘길 수는 없습니다.
그럼 상황별로 최대 사용 가능한 Security Group 규칙의 수를 살펴 보도록 하겠습니다.
Case 1. “하나의 ENI 에 적용 가능한 Security Group 의 수” 는 기본값 5 를 그대로 사용
이 때에는 증설 가능한 옵션이 Security Group 내의 최대 규칙의 수입니다. 즉, 기본값인 “60” 을 그 이상으로 증설하는 방법인데요. 이 때, 증설 가능한 최대 수치는 “200” 이 되겠습니다.
왜냐하면,
Security Group 5개 * 각 Security Group 에 Rule 200개씩 = 1,000Permission Entry
가 되기 때문에 200 이상의 값으로 요청할 수는 없습니다.
Case 2. “하나의 ENI 에 적용 가능한 Security Group 의 수” 를 최대값 16으로 증설
이 때에 증설 가능한 Security Group 의 최대 규칙의 수는 아래의 계산식을 통해 얻을 수 있습니다.
1,000 / Security Group 16개 = 62.5 Permission Entry
Security Group 별로 약 62개의 규칙을 사용할 수 있습니다. 즉, 기본값에서 Security Group 의 Rule 갯수를 증설 요청할 때 62개까지만 요청할 수 있습니다.
Case 3. “하나의 ENI 에 적용 가능한 Security Group 의 수” 를 최소값 1으로 축소
이 경우에는 다음과 같은 계산식에 기반하여 각 Security Group 당 1,000개의 규칙을 사용할 수 있습니다.
1,000 / Security Group 1개 = 1,000 Permission Entry
즉, Security Group 하나에 1,000개의 규칙을 사용하고 싶다면 ENI 당 사용 가능한 Security Group 의 최대값을 1로 축소하는 요청과 함께 Security Group 규칙 수를 1,000으로 증설하는 요청이 제공되어야 합니다.
Security Group 규칙의 수 제한은 Inbound 와 Outbound 가 별개로 적용됩니다. 즉, Limit 이 1,000 이라고 가정하면 Inbound 규칙 1,000개 + Outbound 규칙 1,000개를 설정할 수 있습니다.
아래는 하나의 Security Group 에서 사용 가능한 규칙의 수만 증설한 후 테스트한 화면인데요. ENI 당 Security Group 을 적용할 수 있는 기본값은 “5” 로 유지하였기 때문에 단일 Security Group 에는 아래처럼 “200” 개의 규칙이 사용 가능한 최대값으로 적용되었습니다.
ENI 에서 사용 가능한 Security Group 의 최대값과 단일 Security Group 에서 사용 가능한 규칙의 최대값은 AWS 운영 환경과 각 조직의 보안 정책에 따라 다양하게 적용될 수 있을 것 같습니다. 단순하게 단일 Security Group 에서 사용 가능한 최대값 1,000을 얻기 위해서 ENI 에서 사용 가능한 Security Group 기본값을 “1” 로 낮추는게 어떤 조직에서는 적합할 수도 있겠으나 Security Group 의 관리정책을 좀 더 효율적으로 가져가는 상황등을 고려한다면(서비스나 용도별로 Security Group 을 구분하여 생성한 후 ENI 에 할당하는 것 등) 단일 ENI 에 여러 개의 Security Group 을 적용하는 것이 효율적일 수도 있습니다.
감사합니다.