Usando AWS re:Post, accetti AWS re:Post Termini di utilizzo

Come posso risolvere i problemi degli endpoint VPC nella configurazione di rete di un ambiente Elastic Beanstalk privato?

5 minuti di lettura
0

Desidero risolvere i problemi di rete in un ambiente AWS Elastic Beanstalk completamente privato.

Breve descrizione

Gli ambienti completamente privati hanno la configurazione descritta di seguito e consentono l'accesso a un'applicazione web solo dall'interno dello stesso Amazon Virtual Private Cloud (Amazon VPC).

  • Visibilità del sistema di bilanciamento del carico: privato
  • Sottoreti del sistema di bilanciamento del carico: entrambe le sottoreti private
  • Instance public IP (IP pubblico dell'istanza): disabilitato
  • Sottoreti istanza: entrambe le sottoreti private

Tutte le comunicazioni attraverso il VPC avvengono tramite endpoint VPC configurati. Inoltre, tutte le comunicazioni all'interno del VPC avvengono tramite la route locale nella tabella di routing. Di seguito sono riportati errori comuni che potresti riscontrare nell'ambiente dovuti alle configurazioni di rete:

  • Le istanze di Amazon Elastic Compute Cloud (Amazon EC2) non sono riuscite a comunicare con Elastic Beanstalk. L'errore di comunicazione è dovuto a problemi di configurazione del VPC o a un'istanza EC2 non funzionante. Controlla la configurazione del VPC e prova a riavviare l'ambiente.
  • Le istanze non hanno risposto entro il timeout consentito per il comando.

Risoluzione

Quando crei un ambiente Elastic Beanstalk completamente privato, assicurati di configurare quanto segue:

  • Devi avere un VPC con almeno due sottoreti private in zone di disponibilità diverse.
  • Il VPC deve avere i nomi host DNS e le risoluzioni DNS attivati. La loro attivazione aggiunge una voce DNS nel VPC che mappa l'endpoint del servizio pubblico all'endpoint VPC dell'interfaccia.
  • Devi creare endpoint VPC in modo che i servizi AWS esterni al VPC e l'istanza all'interno del VPC possano comunicare attraverso questi endpoint.

Controlla gli endpoint VPC

Un ambiente Elastic Beanstalk standard deve avere gli endpoint VPC seguenti perché la sua creazione vada a buon fine:

  • com.amazonaws.your-region.elasticbeanstalk (endpoint dell'interfaccia Elastic Beanstalk)
  • com.amazonaws.your-region.elasticbeanstalk-health (endpoint dell'interfaccia di integrità di Elastic Beanstalk)
  • com.amazonaws.your-region.cloudformation (endpoint dell'interfaccia AWS CloudFormation)
  • com.amazonaws.your-region.logs (endpoint dell'interfaccia dei log)
  • com.amazonaws.your-region.sqs (endpoint dell'interfaccia Amazon Simple Queue Service (Amazon SQS))
  • com.amazonaws.your-region.s3 (endpoint del gateway Amazon Simple Storage Service (Amazon S3))

Gli ambienti in esecuzione sulla piattaforma Docker basata su Amazon Linux 2 a 64 bit devono avere gli endpoint VPC aggiuntivi seguenti:

  • com.amazonaws.your-region.ecr.dkr
  • com.amazonaws.your-region.ecr.api

Gli ambienti in esecuzione sulla piattaforma Amazon Elastic Container Service (Amazon ECS) basata su Amazon Linux 2 a 64 bit devono avere gli endpoint VPC aggiuntivi seguenti:

  • com.amazonaws.your-region.ecs
  • com.amazonaws.your-region.ecr.api
  • com.amazonaws.your-region.ecr.dkr

Nota: per assicurarti che i tuoi ambienti Docker e Multi-Docker funzionino correttamente, fornisci un'immagine Docker privata.

Controlla il gruppo di sicurezza

Quando crei l'endpoint VPC dell'interfaccia, devi scegliere le sottoreti e il gruppo di sicurezza per il tuo endpoint VPC. Assicurati di scegliere sottoreti private e il gruppo di sicurezza con le regole in entrata appropriate.

Il gruppo di sicurezza collegato agli endpoint VPC dell'interfaccia deve avere una regola in entrata per la porta 443 (HTTPS):

**Regola in entrata: **

TipoProtocolloIntervallo di porteOrigine
HTTPSTCP443Indirizzo IP del client (vedere la nota)

Nota: per proteggere il traffico in entrata attraverso l'endpoint VPC, è consigliabile specificare solo l'indirizzo IP o la rete del client come Origine.

Inoltre, verifica che il gruppo di sicurezza associato all'istanza consenta il traffico HTTP dal gruppo di sicurezza del bilanciatore del carico:

**Regola in entrata: **

TipoProtocolloIntervallo di porteOrigine
HTTPTCP80Gruppo di sicurezza del bilanciatore del carico

Verifica che il gruppo di sicurezza associato al bilanciatore del carico consenta tutto il traffico HTTP nella regola in entrata:

**Regola in entrata: **

TipoProtocolloIntervallo di porteOrigine
HTTPTCP800.0.0.0/0

Nota: non è necessario limitare il traffico in uscita in nessuno dei gruppi di sicurezza precedenti.

Controlla le voci della tabella di routing

Quando crei gli endpoint del gateway, hai la possibilità di scegliere una tabella di routing. Assicurati di scegliere la tabella di routing associata alla sottorete privata del VPC. La tabella di routing associata alla sottorete privata deve avere una route per ogni endpoint VPC del gateway. Ad esempio, devi avere una route per ogni endpoint VPC del gateway associato ad Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB.

Voci della tabella di routing:

DestinazioneTarget
172.xx.x.0/16local
pl-63a5xxxvpce-04xxx

Controlla le policy degli endpoint VPC

Le policy degli endpoint VPC devono consentire all'ambiente Elastic Beanstalk di comunicare privatamente con il servizio. Quando crei un'interfaccia o un endpoint gateway, puoi collegare una policy dell'endpoint. La policy dell'endpoint controlla quali principali AWS possono utilizzare l'endpoint VPC per accedere al servizio dell'endpoint. I principali AWS includono account AWS, utenti AWS Identity and Access Management (IAM) e ruoli IAM. Se quando crei un endpoint non specifichi una policy, per impostazione predefinita l'endpoint avrà accesso completo.

Di seguito è riportato un esempio di policy minima per gli endpoint VPC del gateway S3 necessaria per un endpoint S3 quando si usa Elastic Beanstalk.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "EBBucketAccess",
            "Effect": "Allow",
            "Principal": "*",
            "Action": [
                "s3:GetObject",
                "s3:ListBucket",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:DeleteObject",
                "s3:PutBucketPolicy",
                "s3:PutObjectVersionAcl"
            ],
            "Resource": [
                "arn:aws:s3:::elasticbeanstalk-*",
                "arn:aws:s3:::elasticbeanstalk-*/*",
                "arn:aws:s3:::cloudformation*/*"
            ]
        }
    ]
}

Informazioni correlate

Access an AWS service using an interface VPC endpoint

AWS UFFICIALE
AWS UFFICIALEAggiornata un mese fa