인터페이스 VPC 엔드포인트로 Amazon EC2에 액세스하기

인터페이스 VPC 엔드포인트로 Amazon EC2에 액세스하기

VPC의 리소스와 Amazon EC2 API 사이에 프라이빗 연결을 만들어 VPC의 보안 수준을 개선할 수 있어요. 인터넷 게이트웨이, NAT 디바이스, VPN 연결, 또는 Direct Connect 연결 없이 Amazon EC2 API를 마치 내 VPC 안에 있는 것처럼 액세스할 수 있습니다. VPC의 EC2 인스턴스는 Amazon EC2 API에 액세스하기 위해 퍼블릭 IP 주소가 필요하지 않아요.

출처: 문서

본문

VPC의 리소스와 Amazon EC2 API 사이에 프라이빗 연결을 만들어 VPC의 보안 수준을 개선할 수 있어요. 인터넷 게이트웨이, NAT 디바이스, VPN 연결, 또는 Direct Connect 연결 없이 Amazon EC2 API를 마치 내 VPC 안에 있는 것처럼 액세스할 수 있습니다. VPC의 EC2 인스턴스는 Amazon EC2 API에 액세스하기 위해 퍼블릭 IP 주소가 필요하지 않아요.

자세한 내용은 AWS PrivateLink Guide의 Access AWS services through AWS PrivateLink를 참고하세요.

인터페이스 VPC 엔드포인트 만들기 (Create an interface VPC endpoint)

다음 서비스 이름을 사용해 Amazon EC2용 인터페이스 엔드포인트를 만들어요.

  • com.amazonaws.region.ec2 – Amazon EC2 API 작업용 엔드포인트를 만듭니다.

자세한 내용은 AWS PrivateLink Guide의 Access an AWS service using an interface VPC endpoint를 참고하세요.

엔드포인트 정책 만들기 (Create an endpoint policy)

**엔드포인트 정책(endpoint policy)**은 인터페이스 엔드포인트에 연결할 수 있는 IAM 리소스예요. 기본 엔드포인트 정책은 인터페이스 엔드포인트를 통한 Amazon EC2 API에 대한 전체 액세스를 허용합니다. VPC에서 Amazon EC2 API에 허용되는 액세스를 제어하려면 인터페이스 엔드포인트에 사용자 지정 엔드포인트 정책을 연결하세요.

엔드포인트 정책은 다음 정보를 지정합니다.

  • 작업을 수행할 수 있는 보안 주체(principals)
  • 수행할 수 있는 작업(actions)
  • 작업을 수행할 수 있는 리소스(resources)

Important
Amazon EC2용 인터페이스 VPC 엔드포인트에 비기본(non-default) 정책이 적용되면, RequestLimitExceeded 같은 이유로 실패한 일부 API 요청이 AWS CloudTrail 또는 Amazon CloudWatch에 로깅되지 않을 수 있어요.

자세한 내용은 AWS PrivateLink Guide의 Control access to services using endpoint policies를 참고하세요.

다음 예시는 암호화되지 않은 볼륨을 만들거나 암호화되지 않은 볼륨으로 인스턴스를 시작하는 것을 거부하는 VPC 엔드포인트 정책을 보여줘요. 이 예시 정책은 그 외의 모든 Amazon EC2 작업을 수행하는 권한도 부여합니다.

{
    "Version":"2012-10-17",
    "Statement": [
    {
        "Action": "ec2:*",
        "Effect": "Allow",
        "Resource": "*",
        "Principal": "*"
    },
    {
        "Action": [
            "ec2:CreateVolume"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    },
    {
        "Action": [
            "ec2:RunInstances"
        ],
        "Effect": "Deny",
        "Resource": "*",
        "Principal": "*",
        "Condition": {
            "Bool": {
                "ec2:Encrypted": "false"
            }
        }
    }]
}

더 알아보기 (Learn more)