AWS CLI를 사용하여 클라이언트 VPN을 구성하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2021년 1월 22일

AWS 명령줄 인터페이스(AWS CLI)를 사용하여 AWS 클라이언트 VPN을 구성하려면 어떻게 해야 합니까?

간략한 설명

AWS CLI를 사용하여 클라이언트 VPN을 구성하려면 다음을 수행합니다.

1.    특정 인증 유형(상호 또는 사용자 기반)에 대해 클라이언트 VPN을 구성합니다.

2.    1단계에서 만든 클라이언트 VPN에 서브넷을 연결합니다.

3.    권한 부여 규칙을 추가하여 클라이언트에 타겟 Virtual Private Cloud(VPC)에 대한 액세스 권한을 부여합니다.

4.    (선택 사항) 필요에 따라 클라이언트 VPN 엔드포인트의 대상 네트워크에 추가 경로를 추가합니다.

5.    클라이언트 VPN 엔드포인트 구성 파일을 다운로드하여 클라이언트에 배포합니다.

해결 방법

참고: AWS 명령줄 인터페이스(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요. 클라이언트 VPN 서비스에 대한 API 작업은 최신 AWS CLI 버전에서만 사용할 수 있습니다.

상호 인증을 사용하여 클라이언트 VPN 구성

1.    서버 인증서를 프로비저닝하고 이를 AWS Certificate Manager(ACM)로 가져옵니다. 서버 및 클라이언트 인증서 및 키를 생성하는 자세한 단계는 상호 인증을 참조하세요.

2.    서버 인증서 Amazon Resource Name(ARN) 및 클라이언트 인증서 ARN을 확인합니다.

3.    create-client-vpn-endpoint 명령을 사용합니다. 예를 들어 다음 명령은 클라이언트 CIDR 블록이 172.16.0.0/16인 상호 인증을 사용하는 엔드포인트를 만듭니다.

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options Type=certificate-authentication,MutualAuthentication={ClientRootCertificateChainArn=arn:aws:acm:us-east-1:
1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678 }
--connection-log-options Enabled=false

참고:

  • 클라이언트 IPv4 CIDR 블록의 경우 CIDR 표기법으로 IP 주소 범위를 지정하여 클라이언트 IP 주소를 할당합니다. 예를 들어, 172.16.0.0/16입니다.
  • “ClientRootCertificateChainArn”은 클라이언트 인증서의 ARN입니다. 인증서는 인증 기관(CA)에서 서명하고 ACM에서 프로비저닝되어야 합니다.

사용자 기반 인증을 사용하여 클라이언트 VPN 구성

Active Directory 인증

1.    디렉터리 ID에 AWS Active Directory의 ID를 지정합니다.

2.    create-client-vpn-endpoint 명령을 사용합니다. 예를 들어 다음 명령은 클라이언트 CIDR 블록이 172.16.0.0/16인 Active Directory 기반 인증을 사용하는 엔드포인트를 만듭니다.

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options
Type=directory-service-authentication,ActiveDirectory={DirectoryId=d-1234567890}
--connection-log-options Enabled=false

참고:

  • “—dns-servers” 옵션을 사용하여 DNS 확인을 위해 사용자 지정 DNS 서버를 전달합니다. 클라이언트 VPN 엔드포인트에는 최대 두 개의 DNS 서버가 있을 수 있습니다. DNS 서버를 지정하지 않으면 로컬 장치에 구성된 DNS 주소가 사용됩니다.
  • VPN 세션에 대한 전송 프로토콜을 설정하려면 “—transport-protocol” 옵션을 사용합니다.

페더레이션 인증(SAML 기반 페더레이션 인증의 경우)

1.    SAML 공급자 ARN의 경우 AWS Identity and Access Management(IAM) Security Assertion Markup Language(SAML) 자격 증명 공급자의 ARN을 지정합니다.

2.    create-client-vpn-endpoint 명령을 사용합니다. 예를 들어 다음 명령은 클라이언트 CIDR 블록이 172.16.0.0/16인 페더레이션 인증을 사용하는 엔드포인트를 만듭니다.

$ aws ec2 create-client-vpn-endpoint --client-cidr-block 172.16.0.0/16
--server-certificate-arn arn:aws:acm:us-east-1:1234567890:certificate/abc1d23e-45fa-678b-9cd0-ef123a45b678
--authentication-options Type=federated-authentication,FederatedAuthentication={SAMLProviderArn=arn:aws:iam::123456789012:saml-provider/MySAMLProvider}
--connection-log-options Enabled=false

참고: “SAMLProviderArn”은 IAM에 있는 새 SAML 공급자 리소스의 ARN입니다.

서브넷을 클라이언트 VPN과 연결

1.    다음 명령을 사용하여 이전 단계에서 만든 클라이언트 VPN 엔드포인트와 서브넷을 연결합니다.

$  aws ec2 associate-client-vpn-target-network
--client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --subnet-id subnet-0123456789abc123

이 작업은 클라이언트 VPN의 상태를 “사용 가능”으로 변경합니다. VPC의 로컬 경로는 클라이언트 VPN 엔드포인트 라우팅 테이블에 자동으로 추가됩니다. VPC의 기본 보안 그룹은 서브넷 연결에 자동으로 적용됩니다. 서브넷을 연결한 후 보안 그룹을 수정할 수 있습니다.

클라이언트에 대상 VPC에 대한 액세스 권한을 부여하는 권한 부여 규칙 추가

1.    사용 사례에 따라 다음 명령 중 하나를 사용하여 권한 부여 규칙을 추가합니다.

상호 인증:

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --authorize-all-groups

Active Directory 기반 인증의 경우 다음을 수행합니다.

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id S-1-2-34-1234567890-1234567890-1234567890-1234

페더레이션 인증(ID 공급자 그룹이 “엔지니어링”인 SAML 2.0 사용)의 경우 다음을 수행합니다.

$ aws ec2 authorize-client-vpn-ingress --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --target-network-cidr 10.0.0.0/16 --access-group-id Engineering

(선택 사항) 필요에 따라 클라이언트 VPN 엔드포인트의 대상 네트워크에 추가 경로를 추가합니다.

1.    다음 명령을 사용하여 클라이언트 VPN 엔드포인트의 대상 네트워크에 추가 경로를 추가합니다.

$ aws ec2 create-client-vpn-route --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --destination-cidr-block 0.0.0.0/0 --target-vpc-subnet-id subnet-0123456789abcabca

클라이언트 VPN 엔드포인트 구성 파일을 다운로드하여 클라이언트에 배포합니다.

1.    클라이언트 VPN 엔드포인트 구성 파일을 다운로드하여 클라이언트에 배포합니다.

상호 인증의 경우 클라이언트 인증서와 클라이언트 키를 구성 파일에 추가합니다.

$ aws ec2 export-client-vpn-client-configuration --client-vpn-endpoint-id cvpn-endpoint-0ab1cd234ef567ab890 --output text>client-config.ovpn

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?