Utilizzo di Amazon Data Firehose con AWS PrivateLink - Amazon Data Firehose

Amazon Data Firehose era precedentemente noto come Amazon Kinesis Data Firehose

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di Amazon Data Firehose con AWS PrivateLink

Endpoint VPC di interfaccia ()AWS PrivateLink per Amazon Data Firehose

Puoi utilizzare un endpoint VPC di interfaccia per impedire che il traffico tra Amazon VPC e Amazon Data Firehose esca dalla rete Amazon. Gli endpoint VPC di interfaccia non richiedono un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. AWS Direct Connect Gli endpoint VPC di interfaccia sono basati su una AWS tecnologia che consente la comunicazione privata tra AWS i servizi utilizzando un'interfaccia di rete elastica con IP privati nel tuo Amazon VPC. AWS PrivateLink Per ulteriori informazioni, consulta Amazon Virtual Private Cloud.

Utilizzo dell'interfaccia VPC endpoint ()AWS PrivateLink per Amazon Data Firehose

Per iniziare, crea un endpoint VPC di interfaccia in modo che il traffico Amazon Data Firehose proveniente dalle risorse Amazon VPC inizi a fluire attraverso l'endpoint VPC dell'interfaccia. Quando crei un endpoint, puoi allegare una policy per gli endpoint che controlli l'accesso ad Amazon Data Firehose. Per ulteriori informazioni sull'utilizzo delle policy per controllare l'accesso da un endpoint VPC ad Amazon Data Firehose, consulta Controlling Access to Services with VPC Endpoints.

L'esempio seguente mostra come configurare una AWS Lambda funzione in un VPC e creare un endpoint VPC per consentire alla funzione di comunicare in modo sicuro con il servizio Amazon Data Firehose. In questo esempio, si utilizza una policy che consente alla funzione Lambda di elencare i flussi Firehose nella regione corrente ma non di descrivere alcun flusso Firehose.

Creare un endpoint VPC
  1. Accedi AWS Management Console e apri la console Amazon VPC all'indirizzo https://console.aws.amazon.com/vpc/.

  2. Nel Pannello di controllo VPC scegliere Endpoint.

  3. Scegliere Create Endpoint (Crea endpoint).

  4. Nell'elenco dei nomi dei servizi scegliere com.amazonaws.your_region.kinesis-firehose.

  5. Scegliere il VPC e una o più sottoreti in cui creare l'endpoint.

  6. Scegliere uno o più gruppi di sicurezza da associare all'endpoint.

  7. Per Policy, scegliere Personalizza e incollare la seguente policy:

    { "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. Seleziona Crea endpoint.

Creare un ruolo IAM da utilizzare con la funzione Lambda
  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione sinistro scegli Ruoli, quindi Crea ruolo.

  3. Per Seleziona il tipo di entità attendibile, lasci il valore predefinito Servizio AWS .

  4. In Choose the service that will use this role (Scegli il servizio che utilizzerà questo ruolo), seleziona Lambda.

  5. Seleziona Next: Permissions (Successivo: Autorizzazioni).

  6. Nell'elenco delle policy, cercare e aggiungere le due policy denominate AWS LambdaVPCAccessExecutionRole e AmazonDataFirehoseReadOnlyAccess.

    Importante

    Questo è un esempio. Potrebbero essere necessarie policy più rigorose per l'ambiente di produzione.

  7. Scegli Successivo: Tag. Non è necessario aggiungere tag ai fini di questo esercizio. Scegli Prossimo: Rivedi.

  8. Immetti un nome del ruolo, quindi scegli Crea ruolo.

Creare una funzione Lambda all'interno del VPC
  1. Apri la AWS Lambda console all'indirizzo https://console.aws.amazon.com/lambda/.

  2. Selezionare Create function (Crea funzione).

  3. Scegli Author from scratch (Crea da zero).

  4. Immettete un nome per la funzione, quindi impostate Runtime su Python 3.9 o superiore.

  5. In Autorizzazioni, espandere Scegli o crea un ruolo di esecuzione.

  6. Nell'elenco Ruolo di esecuzione scegliere Utilizza un ruolo esistente.

  7. Nell'elenco Ruolo esistente scegliere il ruolo creato in precedenza.

  8. Scegli Crea funzione.

  9. In Codice della funzione, incollare il seguente codice.

    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. In Impostazioni di base, impostare il timeout su 1 minuto.

  11. In Rete, scegliere il VPC in cui è stato creato l'endpoint in precedenza, quindi scegliere le sottoreti e il gruppo di sicurezza che è stato associato all'endpoint quando è stato creato.

  12. Nella parte superiore della pagina, scegli Salva.

  13. Scegli Test (Esegui test).

  14. Immetti il nome di un evento e scegli Crea.

  15. Scegliere Test di nuovo. In tal modo si avvia l'esecuzione della funzione. Quando viene visualizzato il risultato dell'esecuzione, espandere Dettagli e confrontare l'output del log con il codice della funzione. I risultati positivi mostrano un elenco degli stream Firehose nella regione, oltre al seguente output:

    Calling describe_delivery_stream.

    AccessDeniedException

    Access denied test succeeded.

Disponibilità

Gli endpoint VPC dell'interfaccia sono attualmente supportati nelle seguenti regioni:

  • Stati Uniti orientali (Ohio)

  • Stati Uniti orientali (Virginia settentrionale)

  • Stati Uniti occidentali (California settentrionale)

  • Stati Uniti occidentali (Oregon)

  • Asia Pacifico (Mumbai)

  • Asia Pacifico (Seoul)

  • Asia Pacifico (Singapore)

  • Asia Pacifico (Sydney)

  • Asia Pacifico (Tokyo)

  • Asia Pacifico (Hong Kong)

  • Canada (Centrale)

  • Canada occidentale (Calgary)

  • Cina (Pechino)

  • China (Ningxia)

  • Europa (Francoforte)

  • Europa (Irlanda)

  • Europe (London)

  • Europa (Parigi)

  • Sud America (San Paolo)

  • AWS GovCloud (Stati Uniti orientali)

  • AWS GovCloud (Stati Uniti occidentali)

  • Europa (Spagna)

  • Medio Oriente (Emirati Arabi Uniti)

  • Asia Pacifico (Giacarta)

  • Asia Pacifico (Osaka-Locale)

  • Israele (Tel Aviv)