튜토리얼: AWS Client VPN을(를) 사용한 프라이빗 네트워크 액세스 구성 - Amazon Managed Workflows for Apache Airflow

튜토리얼: AWS Client VPN을(를) 사용한 프라이빗 네트워크 액세스 구성

이 튜토리얼은 Amazon Managed Workflows for Apache Airflow 환경을 위해 컴퓨터에서 Apache Airflow 웹 서버로 VPN 터널을 생성하는 단계를 안내합니다. VPN 터널을 통해 인터넷에 연결하려면 먼저 AWS Client VPN 엔드포인트를 만들어야 합니다. 일단 설정이 완료되면 Client VPN 엔드포인트는 VPN 서버 역할을 하여 컴퓨터와 VPC의 리소스에 안전하게 연결할 수 있습니다. 그런 다음 AWS Client VPN 데스크톱용을 사용하여 컴퓨터에서 Client VPN에 연결합니다.

프라이빗 네트워크

이 튜토리얼에서는 Apache Airflow 웹 서버프라이빗 네트워크 액세스 모드를 선택했다고 가정합니다.

이 이미지는 프라이빗 웹 서버가 있는 Amazon MWAA 환경의 아키텍처를 보여줍니다.

프라이빗 네트워크 액세스 모드를 사용하면 Amazon VPC 내에서 사용자 환경의 IAM 정책에 대한 액세스 권한을 부여 받은 사용자만 Apache Airflow UI에 액세스할 수 있도록 제한됩니다.

프라이빗 웹 서버 액세스가 가능한 환경을 만들 때는 모든 종속성을 Python 휠 아카이브(.whl)에서 패키징한 다음 requirements.txt에서 .whl을 참조해야 합니다. 휠을 사용하여 종속성을 패키징하고 설치하는 방법에 대한 지침은 Python 휠을 이용한 종속성 관리를 참조하십시오.

다음 이미지는 Amazon MWAA 콘솔에서 프라이빗 네트워크 옵션을 찾을 수 있는 위치를 보여줍니다.

이 이미지는 Amazon MWAA 콘솔에서 프라이빗 네트워크 옵션을 찾을 수 있는 위치를 보여줍니다.

사용 사례

Amazon MWAA 환경을 생성하기 전 또는 생성한 후에 이 튜토리얼을 활용할 수 있습니다. 사용자 환경과 동일한 Amazon VPC, VPC 보안 그룹 및 프라이빗 서브넷을 사용해야 합니다. Amazon MWAA 환경을 만든 후 이 튜토리얼을 사용하는 경우 단계를 완료한 후 Amazon MWAA 콘솔로 돌아가서 Apache Airflow 웹 서버 액세스 모드를 프라이빗 네트워크로 변경할 수 있습니다.

시작하기 전 준비 사항

  1. 사용자 권한을 확인합니다. AWS Identity and Access Management(IAM)의 사용자 계정에 VPC 리소스를 생성하고 관리할 수 있는 충분한 권한이 있는지 확인합니다.

  2. Amazon MWAA VPC를 사용합니다. 이 튜토리얼에서는 Client VPN을 기존 VPC에 연결한다고 가정합니다. Amazon VPC는 Amazon MWAA 환경과 동일한 AWS 리전에 있어야 하며 두 개의 프라이빗 서브넷이 있어야 합니다. Amazon VPC를 생성하지 않은 경우 옵션 3: 인터넷에 액세스할 수 없는 Amazon VPC 네트워크 생성에서 AWS CloudFormation 템플릿을 사용합니다.

목표

이 튜토리얼에서는 다음을 수행합니다.

  1. 기존 Amazon VPC용 AWS CloudFormation 템플릿을 사용하여 AWS Client VPN 엔드포인트를 생성합니다.

  2. 서버와 클라이언트 인증서 및 키를 생성한 다음, 서버 인증서와 키를 Amazon MWAA 환경과 동일한 AWS 리전의 AWS Certificate Manager에 업로드합니다.

  3. Client VPN용 Client VPN 엔드포인트 구성 파일을 다운로드 및 수정하고, 이 파일을 사용하여 데스크톱용 Client VPN을 이용해 연결할 VPN 프로필을 생성합니다.

(선택 사항) 1단계: VPC, CIDR 규칙 및 VPC 보안을 식별합니다.

다음 섹션에서는 Amazon VPC, VPC 보안 그룹의 ID를 찾는 방법과 이후 단계에서 Client VPN을 생성하는 데 필요한 CIDR 규칙을 식별하는 방법을 설명합니다.

CIDR 규칙 식별

다음 섹션에서는 Client VPN을 만드는 데 필요한 CIDR 규칙을 식별하는 방법을 보여줍니다.

Client VPN의 CIDR을 식별하려면
  1. Amazon VPC 콘솔에서 내 Amazon VPC 페이지를 엽니다.

  2. 내비게이션 바의 리전 선택기를 사용하여 Amazon MWAA 환경과 동일한 AWS 리전을 선택합니다.

  3. Amazon VPC를 선택합니다.

  4. 프라이빗 서브넷의 CIDR이 다음과 같다고 가정합니다.

    • 프라이빗 서브넷 1: 10.192.10.0/24

    • 프라이빗 서브넷 2: 10.192.11.0/24

    Amazon VPC의 CIDR이 10.192.0.0/16인 경우, Client VPN에 지정한 Client IPv4 CIDR은 10.192.0.0/22이(가) 됩니다.

  5. 다음 단계를 위해 이 CIDR 값과 VPC ID의 값을 저장합니다.

VPC 및 보안 그룹 식별

다음 섹션에서는 Client VPN을 생성하는 데 필요한 Amazon VPC 및 보안 그룹의 ID를 찾는 방법을 보여줍니다.

참고

보안 그룹을 두 개 이상 사용하고 있을 수 있습니다. 이후 단계에서 사용자 VPC의 보안 그룹을 모두 지정해야 합니다.

보안 그룹을 식별하려면
  1. Amazon VPC 콘솔에서 보안 그룹 페이지를 엽니다.

  2. 내비게이션 바에서 리전 선택기를 사용하여 AWS 리전을 선택합니다.

  3. VPC ID에서 Amazon VPC를 찾아 VPC와 관련된 보안 그룹을 식별합니다.

  4. 후속 단계를 위해 보안 그룹 및 VPC의 ID를 저장합니다.

2단계: 서버 및 클라이언트 인증서 생성

Client VPN 엔드포인트는 1024비트 및 2048비트 RSA 키 크기만 지원합니다. 다음 섹션에서는 OpenVPN easy-rsa를 사용하여 서버 및 클라이언트 인증서와 키를 생성한 다음 AWS Command Line Interface(AWS CLI)을(를) 사용하여 인증서를 ACM에 업로드하는 방법을 보여줍니다.

클라이언트 인증서를 생성하려면
  1. 다음의 빠른 단계에 따라 클라이언트 인증 및 권한 부여: 상호 인증의 AWS CLI을(를) 통해 인증서를 생성하고 ACM에 업로드합니다.

  2. 이 단계에서는 서버 및 클라이언트 인증서를 업로드할 때 AWS CLI 명령에 Amazon MWAA 환경과 동일한 AWS 리전을 반드시 지정해야 합니다. 다음은 이러한 명령에서 리전을 지정하는 방법을 몇 가지 예시로 보여줍니다.

    1. 예 서버 인증서 리전
      aws acm import-certificate --certificate fileb://server.crt --private-key fileb://server.key --certificate-chain fileb://ca.crt --region us-west-2
    2. 예 클라이언트 인증서 리전
      aws acm import-certificate --certificate fileb://client1.domain.tld.crt --private-key fileb://client1.domain.tld.key --certificate-chain fileb://ca.crt --region us-west-2
    3. 이 단계를 거친 후 서버 인증서 및 클라이언트 인증서 ARN에 대한 AWS CLI 응답에 반환된 값을 저장해야 합니다. AWS CloudFormation 템플릿에서 이러한 ARN을 지정하여 Client VPN을 생성합니다.

  3. 이 단계에서는 클라이언트 인증서와 프라이빗 키가 컴퓨터에 저장됩니다. 다음은 이러한 보안 인증을 찾을 수 있는 방법을 보여주는 예시입니다.

    1. 예 macOS에서

      macOS에서는 콘텐츠가 /Users/youruser/custom_folder에 저장됩니다. 이 디렉터리의 모든 (ls -a) 콘텐츠를 나열하면 다음과 비슷한 내용이 표시됩니다.

      . .. ca.crt client1.domain.tld.crt client1.domain.tld.key server.crt server.key
    2. 이 단계를 수행한 후 내용을 저장하거나 client1.domain.tld.crt의 클라이언트 인증서와 client1.domain.tld.key의 프라이빗 키 위치를 메모해 둡니다. 이 값을 Client VPN의 구성 파일에 추가할 것입니다.

3단계: AWS CloudFormation 템플릿을 로컬에 저장

다음 섹션에는 Client VPN을 생성하기 위한 AWS CloudFormation 템플릿이 포함되어 있습니다. Amazon MWAA 환경과 동일한 Amazon VPC, VPC 보안 그룹 및 프라이빗 서브넷을 지정해야 합니다.

  • 다음 템플릿의 내용을 복사하고 로컬에 mwaa_vpn_client.yaml로 저장합니다. 템플릿을 다운로드할 수도 있습니다.

    다음 값을 대체합니다.

    • YOUR_CLIENT_ROOT_CERTIFICATE_ARNClientRootCertificateChainArnclient1.domain.tld 인증서에 대한 ARN.

    • YOUR_SERVER_CERTIFICATE_ARNServerCertificateArnserver 인증서에 대한 ARN.

    • ClientCidrBlock의 Client IPv4 CIDR 규칙. 10.192.0.0/22의 CIDR 규칙이 제공되었습니다.

    • VpcId의 사용자 Amazon VPC ID. vpc-010101010101의 VPC가 제공되었습니다.

    • SecurityGroupIds의 사용자 VPC 보안 그룹 ID. sg-0101010101의 보안 그룹이 제공되었습니다.

    AWSTemplateFormatVersion: 2010-09-09 Description: This template deploys a VPN Client Endpoint. Resources: ClientVpnEndpoint: Type: 'AWS::EC2::ClientVpnEndpoint' Properties: AuthenticationOptions: - Type: "certificate-authentication" MutualAuthentication: ClientRootCertificateChainArn: "YOUR_CLIENT_ROOT_CERTIFICATE_ARN" ClientCidrBlock: 10.192.0.0/22 ClientConnectOptions: Enabled: false ConnectionLogOptions: Enabled: false Description: "MWAA Client VPN" DnsServers: [] SecurityGroupIds: - sg-0101010101 SelfServicePortal: '' ServerCertificateArn: "YOUR_SERVER_CERTIFICATE_ARN" SplitTunnel: true TagSpecifications: - ResourceType: "client-vpn-endpoint" Tags: - Key: Name Value: MWAA-Client-VPN TransportProtocol: udp VpcId: vpc-010101010101 VpnPort: 443
참고

환경에 두 가지 이상의 보안 그룹을 사용하는 경우 다음 형식으로 여러 보안 그룹을 지정할 수 있습니다.

SecurityGroupIds: - sg-0112233445566778b - sg-0223344556677889f

4단계: Client VPN AWS CloudFormation 스택 생성

AWS Client VPN를 생성하려면
  1. AWS CloudFormation 콘솔을 엽니다.

  2. 템플릿이 준비됨을 선택하고 템플릿 파일 업로드를 선택합니다.

  3. 파일 선택을 선택하고 mwaa_vpn_client.yaml 파일을 선택합니다.

  4. 다음, 다음을 선택합니다.

  5. 승인을 선택한 다음 스택 생성을 선택합니다.

5단계: Client VPN에 서브넷을 연결

프라이빗 서브넷을 AWS Client VPN에 연결하려면
  1. Amazon VPC 콘솔을 엽니다.

  2. Client VPN 엔드포인트 페이지를 선택합니다.

  3. Client VPN을 선택한 다음 연결 탭에서 연결을 선택합니다.

  4. 드롭다운 목록에서 다음을 선택합니다.

    • VPC의 사용자 Amazon VPC.

    • 연결할 서브넷 선택에 있는 프라이빗 서브넷 중 하나.

  5. 연결을 선택합니다.

참고

VPC와 서브넷을 Client VPN에 연결하는 데 몇 분 정도 걸립니다.

6단계: Client VPN에 인증 수신 규칙 추가

VPC의 CIDR 규칙을 사용하는 인증 수신 규칙을 Client VPN에 추가해야 합니다. Active Directory 그룹 또는 SAML 기반 ID 제공업체(idP)의 특정 사용자 또는 그룹에 권한을 부여하려면 Client VPN 가이드권한 부여 규칙을 참조하십시오.

AWS Client VPN에 CIDR을 추가하려면
  1. Amazon VPC 콘솔을 엽니다.

  2. Client VPN 엔드포인트 페이지를 선택합니다.

  3. Client VPN을 선택한 다음 권한 부여 탭의 수신 승인을 선택합니다.

  4. 다음을 지정합니다.

    • 대상 네트워크 활성화의 사용자 Amazon VPC CIDR 규칙. 예:

      10.192.0.0/16
    • 액세스 권한 부여에서 모든 사용자에게 액세스 허용을 선택합니다.

    • 설명에 설명 이름을 입력합니다.

  5. 권한 부여 규칙 추가를 선택합니다.

참고

Amazon VPC의 네트워킹 구성 요소에 따라 네트워크 액세스 제어 목록(NACL)에 이 인증 수신 규칙이 필요할 수도 있습니다.

7단계: Client VPN 엔드포인트 구성 파일 다운로드

구성 파일을 다운로드하려면
  1. Client VPN 엔드포인트 구성 파일 다운로드에서 다음 빠른 단계에 따라 Client VPN 구성 파일을 다운로드합니다.

  2. 이 단계에서는 Client VPN 엔드포인트 DNS 이름 앞에 문자열을 추가하라는 메시지가 표시됩니다. 다음은 그 예입니다.

    1. 예 엔드포인트 DNS 이름

      Client VPN 엔드포인트 DNS 이름이 다음과 같은 경우:

      remote cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443

      다음과 같이 Client VPN 엔드포인트를 식별하는 문자열을 추가할 수 있습니다.

      remote mwaavpn.cvpn-endpoint-0909091212aaee1.prod.clientvpn.us-west-1.amazonaws.com 443
  3. 이 단계에서 새 <cert></cert> 태그 세트 사이에 클라이언트 인증서의 내용을 추가하고 새 <key></key> 태그 세트 사이에 프라이빗 키의 내용을 추가하라는 메시지가 표시됩니다. 다음은 그 예입니다.

    1. 명령 프롬프트를 열고 디렉터리를 클라이언트 인증서 및 프라이빗 키가 있는 위치로 변경합니다.

    2. 예 macOS client1.domain.tld.crt

      macOS에서 client1.domain.tld.crt 파일 내용을 표시하려면 cat client1.domain.tld.crt을(를) 사용할 수 있습니다.

      터미널에서 값을 복사하고 downloaded-client-config.ovpn을(를) 다음과 같이 붙여넣습니다.

      ZZZ1111dddaBBB -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.crt -----END CERTIFICATE----- </cert>
    3. 예 macOS client1.domain.tld.key

      client1.domain.tld.key의 내용을 표시하려면 cat client1.domain.tld.key을(를) 사용할 수 있습니다.

      터미널에서 값을 복사하고 downloaded-client-config.ovpn을(를) 다음과 같이 붙여넣습니다.

      ZZZ1111dddaBBB -----END CERTIFICATE----- </ca> <cert> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.crt -----END CERTIFICATE----- </cert> <key> -----BEGIN CERTIFICATE----- YOUR client1.domain.tld.key -----END CERTIFICATE----- </key>

8단계: AWS Client VPN에 연결

AWS Client VPN 클라이언트는 무료로 제공됩니다. 컴퓨터를 AWS Client VPN에 직접 연결하여 종단 간 VPN 환경을 이용할 수 있습니다.

Client VPN에 연결하려면
  1. 데스크톱용 AWS Client VPN 다운로드 및 설치

  2. AWS Client VPN을 엽니다.

  3. VPN 클라이언트 메뉴에서 파일, 관리 프로필을 선택합니다.

  4. 프로필 추가를 선택한 다음 downloaded-client-config.ovpn을(를) 선택합니다.

  5. 이름 표시에 설명이 포함된 이름을 입력합니다.

  6. 프로필 추가, 완료를 선택합니다.

  7. 연결(을 선택합니다.

Client VPN에 연결한 후 Amazon VPC의 리소스를 보려면 다른 VPN과의 연결을 끊어야 합니다.

참고

클라이언트를 종료하고 다시 시작해야 연결할 수 있을 것입니다.

다음 단계