Amazon Data Firehose와 함께 사용하기 AWS PrivateLink - Amazon Data Firehose

Amazon Data Firehose는 이전에 Amazon Kinesis Data Firehose로 알려졌습니다.

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

Amazon Data Firehose와 함께 사용하기 AWS PrivateLink

Amazon Data AWS PrivateLink Firehose용 인터페이스 VPC 엔드포인트 ()

인터페이스 VPC 엔드포인트를 사용하여 Amazon VPC와 Amazon Data Firehose 간의 트래픽이 Amazon 네트워크를 벗어나지 않도록 할 수 있습니다. 인터페이스 VPC 엔드포인트에는 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 연결이 필요하지 않습니다. AWS Direct Connect 인터페이스 VPC 엔드포인트는 Amazon VPC의 사설 IP가 있는 Elastic Network 인터페이스를 사용하여 AWS 서비스 간 사설 통신을 가능하게 하는 AWS 기술인 에 의해 AWS PrivateLink 구동됩니다. 자세한 내용은 Amazon Virtual Private Cloud(VPC)를 참조하세요.

Amazon Data AWS PrivateLink Firehose용 인터페이스 VPC 엔드포인트 () 사용

시작하려면 Amazon VPC 리소스의 Amazon Data Firehose 트래픽이 인터페이스 VPC 엔드포인트를 통해 흐르기 시작하도록 인터페이스 VPC 엔드포인트를 생성하십시오. 엔드포인트를 생성할 때 Amazon Data Firehose에 대한 액세스를 제어하는 엔드포인트 정책을 엔드포인트에 연결할 수 있습니다. 정책을 사용하여 VPC 엔드포인트에서 Amazon Data Firehose로의 액세스를 제어하는 방법에 대한 자세한 내용은 VPC 엔드포인트를 사용한 서비스 액세스 제어를 참조하십시오.

다음 예제는 VPC에서 AWS Lambda 함수를 설정하고 VPC 엔드포인트를 생성하여 함수가 Amazon Data Firehose 서비스와 안전하게 통신할 수 있도록 하는 방법을 보여줍니다. 이 예시에서는 Lambda 함수가 현재 지역의 Firehose 스트림을 나열하지만 Firehose 스트림을 설명하지는 못하도록 허용하는 정책을 사용합니다.

VPC 엔드포인트 생성
  1. AWS Management Console 로그인하고 https://console.aws.amazon.com/vpc/ 에서 Amazon VPC 콘솔을 엽니다.

  2. VPC 대시보드에서 엔드포인트를 선택합니다.

  3. 엔드포인트 생성을 선택합니다.

  4. 서비스 이름 목록에서 com.amazonaws.your_region.kinesis-firehose를 선택합니다.

  5. 엔드포인트를 생성할 VPC와 서브넷(한 개 이상)을 선택합니다.

  6. 보안 그룹을 한 개 이상 선택하여 엔드포인트와 연결합니다.

  7. 정책에서 사용자 지정을 선택하고 다음 정책을 붙여 넣습니다.

    { "Statement": [ { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:ListDeliveryStreams" ], "Effect": "Allow", "Resource": [ "*" ] }, { "Sid": "Allow-only-specific-PrivateAPIs", "Principal": "*", "Action": [ "firehose:DescribeDeliveryStream" ], "Effect": "Deny", "Resource": [ "*" ] } ] }
  8. Create endpoint(엔드포인트 생성)을 선택합니다.

Lambda 함수에 사용할 IAM 역할 만들기
  1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 Roles(역할)을 선택한 다음 Create role(역할 생성)을 선택합니다.

  3. 신뢰할 수 있는 유형의 엔터티 선택에서 기본 선택인 AWS 서비스를 그대로 둡니다.

  4. Choose the service that will use this role(이 역할을 사용할 서비스 선택) 아래에서 Lambda를 선택합니다.

  5. Next: Permissions(다음: 권한)를 선택합니다.

  6. 정책 목록에서 AWS LambdaVPCAccessExecutionRole 정책과 AmazonDataFirehoseReadOnlyAccess 정책을 검색하여 추가합니다.

    중요

    이 정책은 예제이며, 프로덕션 환경의 경우 더 엄격한 정책이 필요할 수도 있습니다.

  7. 다음: 태그를 선택합니다. 이 연습에서는 태그를 추가할 필요가 없습니다. 다음: 검토를 선택합니다.

  8. 역할 이름을 입력한 다음 Create role(역할 생성)을 선택합니다.

VPC 내 Lambda 함수 생성
  1. https://console.aws.amazon.com/lambda/ 에서 AWS Lambda 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. 새로 작성을 선택합니다.

  4. 함수 이름을 입력한 다음 런타임을 Python 3.9 이상으로 설정합니다.

  5. 권한에서 실행 역할 선택 또는 생성을 확장합니다.

  6. 실행 역할 목록에서 기존 역할 사용을 선택합니다.

  7. 기존 역할 목록에서 앞서 만든 역할을 선택합니다.

  8. 함수 생성을 선택합니다.

  9. 함수 코드 아래에 다음 코드를 붙여 넣습니다.

    import json import boto3 import os from botocore.exceptions import ClientError def lambda_handler(event, context): REGION = os.environ['AWS_REGION'] client = boto3.client( 'firehose', REGION ) print("Calling list_delivery_streams with ListDeliveryStreams allowed policy.") delivery_stream_request = client.list_delivery_streams() print("Successfully returned list_delivery_streams request %s." % ( delivery_stream_request )) describe_access_denied = False try: print("Calling describe_delivery_stream with DescribeDeliveryStream denied policy.") delivery_stream_info = client.describe_delivery_stream(DeliveryStreamName='test-describe-denied') except ClientError as e: error_code = e.response['Error']['Code'] print ("Caught %s." % (error_code)) if error_code == 'AccessDeniedException': describe_access_denied = True if not describe_access_denied: raise else: print("Access denied test succeeded.")
  10. 기본 설정에서 제한 시간을 1분으로 설정합니다.

  11. 네트워크에서 앞서 엔드포인트를 생성한 VPC를 선택한 후, 엔드포인트를 생성할 때 엔드포인트와 연결한 서브넷 및 보안 그룹을 선택합니다.

  12. 페이지 상단에서 Save(저장)를 선택합니다.

  13. 테스트를 선택합니다.

  14. 이벤트 이름을 입력한 다음 Create(생성)를 선택합니다.

  15. 테스트를 다시 선택합니다. 그러면 함수가 실행됩니다. 실행 결과가 나타나면 세부 정보를 확장하고 로그 출력과 함수 코드를 비교합니다. 성공적인 결과에는 해당 지역의 Firehose 스트림 목록과 다음 출력이 표시됩니다.

    Calling describe_delivery_stream.

    AccessDeniedException

    Access denied test succeeded.

가용성

인터페이스 VPC 엔드포인트는 현재 다음 리전 내에서 지원됩니다.

  • 미국 동부(오하이오)

  • 미국 동부(버지니아 북부)

  • 미국 서부(캘리포니아 북부)

  • 미국 서부(오레곤)

  • 아시아 태평양(뭄바이)

  • 아시아 태평양(서울)

  • 아시아 태평양(싱가포르)

  • 아시아 태평양(시드니)

  • 아시아 태평양(도쿄)

  • 아시아 태평양(홍콩)

  • 캐나다(중부)

  • 캐나다 서부(캘거리)

  • 중국(베이징)

  • 중국(닝샤)

  • 유럽(프랑크푸르트)

  • 유럽(아일랜드)

  • 유럽(런던)

  • 유럽(파리)

  • 남아메리카(상파울루)

  • AWS GovCloud (미국 동부)

  • AWS GovCloud (미국 서부)

  • 유럽(스페인)

  • 중동(UAE)

  • 아시아 태평양(자카르타)

  • 아시아 태평양(오사카)

  • 이스라엘(텔아비브)