쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

퍼블릭 서브넷에 대한 예방적 속성 기반 액세스 제어 배포 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

퍼블릭 서브넷에 대한 예방적 속성 기반 액세스 제어 배포

작성자: Joel Alfredo Nunez Gonzalez(AWS) 및 Samuel Ortega Sancho(AWS)

요약

중앙 집중식 네트워크 아키텍처에서 검사 및 엣지 Virtual Private Cloud(VPC)는 인터넷으로 들어오고 나가는 트래픽과 같은 모든 인바운드 및 아웃바운드 트래픽을 집중시킵니다. 하지만 이로 인해 병목 현상이 발생하거나 AWS service quotas 한도에 도달할 수 있습니다. VPC의 워크로드와 함께 네트워크 엣지 보안을 배포하면 일반적인 중앙 집중식 접근 방식에 비해 전례 없는 확장성을 제공합니다. 이를 분산 엣지 아키텍처라고 합니다.

워크로드 계정에 퍼블릭 서브넷을 배포하면 이점을 얻을 수 있지만 공격 표면이 증가하므로 새로운 보안 위험도 발생합니다. 이러한 VPC의 퍼블릭 서브넷에는 Application Load Balancer 또는 NAT 게이트웨이와 같은 Elastic Load Balancing(ELB) 리소스만 배포하는 것이 좋습니다. 전용 퍼블릭 서브넷에서 로드 밸런서와 NAT 게이트웨이를 사용하면 인바운드 및 아웃바운드 트래픽을 세밀하게 제어할 수 있습니다.

ABAC(속성 기반 액세스 제어)는 부서, 직무, 팀 이름 등의 사용자 속성을 기반으로 세분화된 권한을 생성하는 방식입니다. 자세한 내용은 AWS용 ABAC를 참조하십시오. ABAC는 워크로드 계정의 퍼블릭 서브넷을 위한 가드레일을 제공할 수 있습니다. 이를 통해 애플리케이션 팀은 인프라 보안을 손상시키지 않으면서 민첩성을 유지할 수 있습니다.

이 패턴은 AWS Organizations의 서비스 제어 정책(SCP) 및 AWS Identity and Access Management(IAM)의 정책을 통해 ABAC를 구현함으로써 퍼블릭 서브넷을 보호하는 방법을 설명합니다. SCP를 조직의 구성원 계정이나 조직 단위(OU)에 적용합니다. 이러한 ABAC 정책은 사용자가 대상 서브넷에 NAT 게이트웨이를 배포하고 ECAmazon EC2EC2) 리소스를 배포하지 못하도록 허용합니다.  

사전 조건 및 제한 사항

사전 조건 

  • AWS Organizations의 조직

  • AWS Organizations 루트 계정에 대한 관리 액세스

  • 조직에서 SCP 테스트를 위한 활성 구성원 계정 또는 OU

제한 사항

  • 이 솔루션의 SCP는 서비스 연결 역할을 사용하는 AWS 서비스가 대상 서브넷에 리소스를 배포하는 것을 막지 않습니다. 이러한 서비스의 예로는 Elastic Load Balancing(ELB), Amazon Elastic Container Service(Amazon ECS) 및 Amazon Relational Database Service(RDS)가 있습니다. 자세한 내용은 AWS Organizations 설명서의 SCP가 권한에 미치는 영향을 참조하십시오. 보안 제어를 구현하여 이러한 예외를 탐지하십시오.

아키텍처

대상 기술 스택

  • AWS Organizations의 AWS 계정 또는 OU에 SCP 적용

  • IAM 역할은 다음과 같습니다.

    • AutomationAdminRole – SCP 구현 후 서브넷 태그를 수정하고 VPC 리소스를 생성하는 데 사용

    • TestAdminRole – SCP가 관리 액세스 권한이 있는 사용자를 비롯한 다른 IAM 보안 주체가 AutomationAdminRole 전용 작업을 수행하는 것을 막고 있는지 테스트하는 데 사용

대상 아키텍처 

태그는 사용자가 퍼블릭 서브넷에서 NAT 게이트웨이 이외의 리소스를 배포하지 못하도록 합니다.
  1. 대상 계정에서 AutomationAdminRole IAM 역할을 생성합니다. 이 역할에는 네트워킹 리소스를 관리할 권한이 있습니다. 이 역할에만 적용되는 다음 권한에 유의하십시오.

    • 이 역할은 VPC와 퍼블릭 서브넷을 생성할 수 있습니다.

    • 이 역할은 대상 서브넷의 태그 할당을 수정할 수 있습니다.

    • 이 역할은 자체 권한을 관리할 수 있습니다.

  2. AWS Organizations에서는 대상 AWS 계정 또는 OU에 SCP를 적용합니다. 샘플 정책은 이 패턴의 추가 정보를 참조하십시오.

  3. CI/CD 파이프라인의 사용자 또는 도구가 대상 서브넷에 SubnetType 태그를 적용하는 AutomationAdminRole 역할을 맡을 수 있습니다.

  4. 조직의 승인된 IAM 보안 주체는 다른 IAM 역할을 맡아 대상 서브넷의 NAT 게이트웨이와 AWS 계정의 기타 허용된 네트워킹 리소스(예: 라우팅 테이블)를 관리할 수 있습니다. IAM 정책을 사용하여 이러한 권한을 부여할 수 있습니다. 자세한 내용은 Amazon VPC의 자격 증명 및 액세스 관리를 참조하십시오.

자동화 및 규모 조정

퍼블릭 서브넷을 보호하려면 해당 AWS 태그를 적용해야 합니다. SCP를 적용한 후 NAT 게이트웨이는 승인된 사용자가 SubnetType:IFA 태그가 있는 서브넷에서 생성할 수 있는 유일한 종류의 Amazon EC2 리소스입니다. (IFA인터넷 연결 자산을 의미합니다.) SCP는 인스턴스 및 탄력적 네트워크 인터페이스와 같은 다른 Amazon EC2 리소스의 생성을 방지합니다. 이러한 태그가 퍼블릭 서브넷에 올바르게 적용되도록 AutomationAdminRole 역할을 수임하는 CI/CD 파이프라인을 사용하여 VPC 리소스를 생성하는 것이 좋습니다.

도구

서비스

  • AWS Identity and Access Management(IAM)를 사용하면 사용자에 대해 인증 및 권한 부여를 제어함으로써 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있습니다.

  • AWS Organizations는 사용자가 생성하고 중앙에서 관리하는 조직으로 여러 AWS 계정을 통합할 수 있는 계정 관리 서비스입니다. AWS Organizations에서 조직의 권한을 관리하는 데 사용할 수 있는 정책 유형인 서비스 제어 정책(SCP)을 구현할 수 있습니다.

  • Amazon Virtual Private Cloud(VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있습니다. 이 가상 네트워크는 사용자의 자체 데이터 센터에서 운영하는 기존 네트워크와 유사하며 AWS의 확장 가능한 인프라를 사용한다는 이점이 있습니다.

에픽

작업설명필요한 기술

테스트 관리자 역할을 생성합니다.

관리자 계정에서 TestAdminRole이라는 이름의 IAM 역할을 생성합니다. AdministratorAccess AWS 관리형 IAM 정책을 새 역할에 연결합니다. 지침은 IAM 설명서의 IAM 사용자에게 권한을 위임하기 위한 역할 생성을 참조하십시오.

AWS 관리자

자동화 관리자 역할을 생성합니다.

  1. 관리자 계정에서 AutomationAdminRole이라는 이름의 IAM 역할을 생성합니다.

  2. AdministratorAccess AWS 관리형 IAM 정책을 새 역할에 연결합니다.

다음은 000000000000 계정에서 역할을 테스트하는 데 사용할 수 있는 신뢰 정책의 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:root" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
AWS 관리자

SCP를 생성하고 연결합니다.

  1. 추가 정보 섹션에 제공된 샘플 코드를 사용하여 보안 제어 정책을 생성합니다. 지침은 AWS Organizations 설명서의 SCP 생성을 참조하십시오.

  2. 대상 AWS 계정 또는 OU에 SCP를 연결합니다. 지침은 AWS Organizations 설명서의 서비스 제어 정책 연결 및 분리를 참조하세요.

AWS 관리자

SCP 적용

작업설명필요한 기술

테스트 관리자 역할을 생성합니다.

관리자 계정에서 TestAdminRole이라는 이름의 IAM 역할을 생성합니다. AdministratorAccess AWS 관리형 IAM 정책을 새 역할에 연결합니다. 지침은 IAM 설명서의 IAM 사용자에게 권한을 위임하기 위한 역할 생성을 참조하십시오.

AWS 관리자

자동화 관리자 역할을 생성합니다.

  1. 관리자 계정에서 AutomationAdminRole이라는 이름의 IAM 역할을 생성합니다.

  2. AdministratorAccess AWS 관리형 IAM 정책을 새 역할에 연결합니다.

다음은 000000000000 계정에서 역할을 테스트하는 데 사용할 수 있는 신뢰 정책의 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::000000000000:root" ] }, "Action": "sts:AssumeRole", "Condition": {} } ] }
AWS 관리자

SCP를 생성하고 연결합니다.

  1. 추가 정보 섹션에 제공된 샘플 코드를 사용하여 보안 제어 정책을 생성합니다. 지침은 AWS Organizations 설명서의 SCP 생성을 참조하십시오.

  2. 대상 AWS 계정 또는 OU에 SCP를 연결합니다. 지침은 AWS Organizations 설명서의 서비스 제어 정책 연결 및 분리를 참조하세요.

AWS 관리자
작업설명필요한 기술

VPC 또는 서브넷을 생성합니다.

  1. 대상 AWS 계정에서 TestAdminRole 역할을 맡습니다.

  2. 기존 VPC에 VPC 또는 새 퍼블릭 서브넷을 생성해 보십시오. 지침은 Amazon VPC 설명서에서 VPC, 서브넷 및 기타 VPC 리소스 생성을 참조하십시오. 이러한 리소스를 생성할 수 없어야 합니다.

  3. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이제 네트워킹 리소스를 생성할 수 있을 것입니다.

AWS 관리자

태그를 관리합니다.

  1. 대상 AWS 계정에서 TestAdminRole 역할을 맡습니다.

  2. 사용 가능한 퍼블릭 서브넷에 SubnetType:IFA 태그를 추가합니다. 이 태그를 추가할 수 있어야 합니다. AWS Command Line Interface(AWS CLI)를 통해 태그를 추가하는 방법에 대한 지침은 AWS CLI 명령 참조태그 생성을 참조하십시오.

  3. 보안 인증을 변경하지 말고 이 서브넷에 할당된 SubnetType:IFA 태그를 수정해 보십시오. 이 태그는 수정할 수 없어야 합니다.

  4. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이 역할은 이 태그를 추가하고 수정할 수 있어야 합니다.

AWS 관리자

대상 서브넷에 리소스를 배포합니다.

  1. TestAdminRole 역할을 맡습니다.

  2. SubnetType:IFA 태그가 있는 퍼블릭 서브넷의 경우 EC2 인스턴스를 생성해 보십시오. 지침은 Amazon EC2 설명서의 인스턴스 시작을 참조하세요. 이 서브넷에서는 NAT 게이트웨이를 제외한 Amazon EC2 리소스를 생성, 수정 또는 삭제할 수 없습니다.

  3. 동일한 서브넷에서 NAT 게이트웨이를 생성합니다. 지침은 Amazon VPC 설명서의 NAT 게이트웨이 생성을 참조하십시오. 이 서브넷에서 NAT 게이트웨이를 생성, 수정 또는 삭제할 수 있어야 합니다.

AWS 관리자

AutomationAdminRole 역할을 관리합니다.

  1. TestAdminRole 역할을 맡습니다.

  2. AutomationAdminRole 역할을 수정해 보십시오. 지침은 IAM 설명서의 역할 수정을 참조하십시오. 이 역할을 수정할 수 없어야 합니다.

  3. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이제 역할을 수정할 수 있을 것입니다.

AWS 관리자

SCP 테스트

작업설명필요한 기술

VPC 또는 서브넷을 생성합니다.

  1. 대상 AWS 계정에서 TestAdminRole 역할을 맡습니다.

  2. 기존 VPC에 VPC 또는 새 퍼블릭 서브넷을 생성해 보십시오. 지침은 Amazon VPC 설명서에서 VPC, 서브넷 및 기타 VPC 리소스 생성을 참조하십시오. 이러한 리소스를 생성할 수 없어야 합니다.

  3. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이제 네트워킹 리소스를 생성할 수 있을 것입니다.

AWS 관리자

태그를 관리합니다.

  1. 대상 AWS 계정에서 TestAdminRole 역할을 맡습니다.

  2. 사용 가능한 퍼블릭 서브넷에 SubnetType:IFA 태그를 추가합니다. 이 태그를 추가할 수 있어야 합니다. AWS Command Line Interface(AWS CLI)를 통해 태그를 추가하는 방법에 대한 지침은 AWS CLI 명령 참조태그 생성을 참조하십시오.

  3. 보안 인증을 변경하지 말고 이 서브넷에 할당된 SubnetType:IFA 태그를 수정해 보십시오. 이 태그는 수정할 수 없어야 합니다.

  4. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이 역할은 이 태그를 추가하고 수정할 수 있어야 합니다.

AWS 관리자

대상 서브넷에 리소스를 배포합니다.

  1. TestAdminRole 역할을 맡습니다.

  2. SubnetType:IFA 태그가 있는 퍼블릭 서브넷의 경우 EC2 인스턴스를 생성해 보십시오. 지침은 Amazon EC2 설명서의 인스턴스 시작을 참조하세요. 이 서브넷에서는 NAT 게이트웨이를 제외한 Amazon EC2 리소스를 생성, 수정 또는 삭제할 수 없습니다.

  3. 동일한 서브넷에서 NAT 게이트웨이를 생성합니다. 지침은 Amazon VPC 설명서의 NAT 게이트웨이 생성을 참조하십시오. 이 서브넷에서 NAT 게이트웨이를 생성, 수정 또는 삭제할 수 있어야 합니다.

AWS 관리자

AutomationAdminRole 역할을 관리합니다.

  1. TestAdminRole 역할을 맡습니다.

  2. AutomationAdminRole 역할을 수정해 보십시오. 지침은 IAM 설명서의 역할 수정을 참조하십시오. 이 역할을 수정할 수 없어야 합니다.

  3. AutomationAdminRole 역할을 맡고 이전 단계를 다시 시도하십시오. 이제 역할을 수정할 수 있을 것입니다.

AWS 관리자
작업설명필요한 기술

배포된 리소스를 정리합니다.

  1. AWS 계정 또는 OU에서 SCP를 분리합니다. 지침은 AWS Organizations 설명서의 SCP 분리를 참조하십시오.

  2. SCP를 삭제합니다. 지침은 SCP 삭제(AWS Organizations 설명서)를 참조하십시오.

  3. AutomationAdminRole 역할과 TestAdminRole 역할을 삭제합니다. 지침은 IAM 설명서의 역할 삭제를 참조하십시오.

  4. 이 솔루션용으로 생성한 모든 네트워킹 리소스(예: VPC 및 서브넷)를 삭제합니다.

AWS 관리자

정리

작업설명필요한 기술

배포된 리소스를 정리합니다.

  1. AWS 계정 또는 OU에서 SCP를 분리합니다. 지침은 AWS Organizations 설명서의 SCP 분리를 참조하십시오.

  2. SCP를 삭제합니다. 지침은 SCP 삭제(AWS Organizations 설명서)를 참조하십시오.

  3. AutomationAdminRole 역할과 TestAdminRole 역할을 삭제합니다. 지침은 IAM 설명서의 역할 삭제를 참조하십시오.

  4. 이 솔루션용으로 생성한 모든 네트워킹 리소스(예: VPC 및 서브넷)를 삭제합니다.

AWS 관리자

관련 리소스

설명서

추가 AWS 참조

추가 정보

다음 서비스 제어 정책은 조직에서 이 접근 방식을 테스트하는 데 사용할 수 있는 예제입니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyVPCActions", "Effect": "Deny", "Action": [ "ec2:CreateVPC", "ec2:CreateRoute", "ec2:CreateSubnet", "ec2:CreateInternetGateway", "ec2:DeleteVPC", "ec2:DeleteRoute", "ec2:DeleteSubnet", "ec2:DeleteInternetGateway" ], "Resource": [ "arn:aws:ec2:*:*:*" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "AllowNATGWOnIFASubnet", "Effect": "Deny", "NotAction": [ "ec2:CreateNatGateway", "ec2:DeleteNatGateway" ], "Resource": [ "arn:aws:ec2:*:*:subnet/*" ], "Condition": { "ForAnyValue:StringEqualsIfExists": { "aws:ResourceTag/SubnetType": "IFA" }, "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "DenyChangesToAdminRole", "Effect": "Deny", "NotAction": [ "iam:GetContextKeysForPrincipalPolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListInstanceProfilesForRole", "iam:ListRolePolicies", "iam:ListRoleTags" ], "Resource": [ "arn:aws:iam::*:role/AutomationAdminRole" ], "Condition": { "StringNotLike": { "aws:PrincipalARN": ["arn:aws:iam::*:role/AutomationAdminRole"] } } }, { "Sid": "allowbydefault", "Effect": "Allow", "Action": "*", "Resource": "*" } ] }
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.