As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Você pode usar uma interface VPC endpoint (AWS PrivateLink) para acessar o Amazon Data Firehose de sua VPC sem precisar de um Internet Gateway ou NAT Gateway. Os endpoints VPC de interface não exigem um gateway de internet, dispositivo NAT, conexão VPN ou conexão. AWS Direct Connect Os endpoints de VPC de interface são alimentados por AWS PrivateLink uma AWS tecnologia que permite a comunicação privada entre AWS serviços usando uma interface de rede elástica com privacidade em IPs sua Amazon VPC. Para obter mais informações, consulte o Amazon Virtual Private Cloud.
Usando a interface VPC endpoints ()AWS
PrivateLink para Firehose
Para iniciar, crie um endpoint da VPC de interface para que o tráfego do Amazon Data Firehose vindo dos recursos da Amazon VPC comece a fluir através do endpoint da VPC de interface. Quando você cria um endpoint, pode anexar a ele uma política de endpoint que controla o acesso ao Amazon Data Firehose. Para saber mais sobre o uso de políticas para controlar o acesso de um endpoint da VPC ao Amazon Data Firehose, consulte Controle de acesso aos serviços com endpoints da VPC.
O exemplo a seguir mostra como você pode configurar uma AWS Lambda função em uma VPC e criar um VPC endpoint para permitir que a função se comunique com segurança com o serviço Amazon Data Firehose. Neste exemplo, você usa uma política que permite que a função do Lambda liste os fluxos do Firehose na região atual, mas não os descreva.
Criar um VPC endpoint
Faça login no AWS Management Console e abra o console da Amazon VPC em. https://console.aws.amazon.com/vpc/
-
No painel da VPC, selecione Endpoints.
-
Escolha Criar endpoint.
-
Na lista de nomes de serviço, escolha
com.amazonaws.
.your_region
.kinesis-firehose -
Escolha a VPC e uma ou mais sub-redes nas quais criar o endpoint.
-
Escolha um ou mais grupos de segurança para associar ao endpoint.
-
Para Policy (Política), selecione Custom (Personalizar) e cole a seguinte política:
{ "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": [ "*" ] } ] }
-
Escolha Criar endpoint.
Criar um perfil do IAM para ser usado com a função do Lambda
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação à esquerda, escolha Perfis e Criar perfil.
-
Em Selecionar o tipo de entidade confiável, deixe a seleção padrão Serviço da AWS .
-
Em Escolha o serviço que usará esse perfil, escolha Lambda.
-
Escolha Next: Permissions (Próximo: Permissões).
-
Na lista de políticas, procure e adicione as duas políticas chamadas
AWS LambdaVPCAccessExecutionRole
eAmazonDataFirehoseReadOnlyAccess
.Importante
Este é um exemplo. É possível precisar de políticas mais rigorosas para o ambiente de produção.
-
Escolha Próximo: tags. Para a finalidade deste exercício, não é necessário adicionar tags. Escolha Próximo: revisar.
-
Insira um nome para o perfil e escolha Criar perfil.
Criar uma função do Lambda dentro da VPC
Abra o AWS Lambda console em https://console.aws.amazon.com/lambda/
. -
Escolha Create function (Criar função).
-
Escolha Author from scratch (Criar do zero).
-
Insira um nome para a função e defina Runtime como
Python 3.9
ou posterior. -
Em Permissions (Permissões), expanda Choose or create an execution role (Escolher ou criar uma função de execução).
-
Na lista Execution role (Função de execução), selecione Use an existing role (Usar uma função existente).
-
Na lista Existing role (Função existente), selecione a função criada acima.
-
Escolha a opção Criar função.
-
Em Function code (Código da função), cole o código a seguir.
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.")
-
Em Basic settings (Configurações básicas), defina o tempo limite como 1 minuto.
-
Em Network (Rede), selecione a VPC onde você criou o endpoint acima e selecione as sub-redes e o grupo de segurança que foram associados ao endpoint quando ele foi criado.
-
Próximo ao alto da página, selecione Salvar.
-
Escolha Testar.
-
Insira o nome de um evento e escolha Criar.
-
Escolha Test (Testar) novamente. Isso faz com que a função seja executada. Depois que o resultado da execução for exibido, expanda Details (Detalhes) e compare a saída do log com o código da função. Resultados com êxito mostram uma lista de fluxos do Firehose na região, bem como a saída a seguir:
Calling describe_delivery_stream.
AccessDeniedException
Access denied test succeeded.
Suportado Regiões da AWS
No momento, há suporte para os endpoints da VPC nas regiões a seguir.
-
Leste dos EUA (Ohio)
-
Leste dos EUA (Norte da Virgínia)
-
Oeste dos EUA (Norte da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tailândia)
-
Ásia-Pacífico (Tóquio)
-
Ásia-Pacífico (Hong Kong)
-
Canadá (Central)
-
Oeste do Canadá (Calgary)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Paris)
-
México (Central)
-
América do Sul (São Paulo)
-
AWS GovCloud (Leste dos EUA)
-
AWS GovCloud (Oeste dos EUA)
-
Europa (Espanha)
-
Oriente Médio (Emirados Árabes Unidos)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Osaka)
-
Israel (Tel Aviv)
-
Ásia-Pacífico (Malásia)