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

5 minuti di lettura
0

Desidero risolvere i problemi di rete nel mio ambiente AWS Elastic Beanstalk completamente privato.

Breve descrizione

Gli ambienti completamente privati hanno la seguente configurazione econsentono l'accesso all'applicazione Web solo dall'interno dello stesso Amazon Virtual Private Cloud (Amazon VPC).

  • Visibilità del sistema di bilanciamento del carico: privata
  • Sottoreti del sistema di bilanciamento del carico: entrambe le sottoreti private
  • IP pubblico dell'istanza: disabilitato
  • Sottoreti dell'istanza: entrambe le sottoreti private

Tutte le comunicazioni attraverso il VPC avvengono tramite gli endpoint VPC configurati. Inoltre, tutte le comunicazioni all'interno del VPC avvengono tramite l'instradamento locale nella tabella di instradamento. Di seguito sono riportati gli errori più comuni che potrebbero verificarsi nell'ambiente a causa delle 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 riuscita. Controlla la configurazione del VPC e prova ad avviare nuovamente l'ambiente.
  • Le istanze non hanno risposto nel tempo di timeout del comando consentito.

Risoluzione

Quando crei un ambiente Elastic Beanstalk completamente privato, assicurati di aver impostato le seguenti configurazioni:

  • È necessario disporre di un VPC con almeno due sottoreti private in diverse zone di disponibilità.
  • Il VPC deve avere i nomi host DNS e le risoluzioni DNS attivati. Una volta attivati, viene aggiunta una voce DNS nel cloud privato virtuale che associa l'endpoint del servizio pubblico all'endpoint VPC di interfaccia.
  • È necessario creare endpoint VPC in modo che i servizi AWS all'esterno del VPC e l'istanza all'interno del VPC possano comunicare attraverso questi endpoint.

Controlla gli endpoint VPC

Un ambiente Elastic Beanstalk standard deve avere i seguenti endpoint VPC per essere creato correttamente:

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

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

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

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

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

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

Controlla il gruppo di sicurezza

Quando si crea l'endpoint VPC di interfaccia, è necessario scegliere le sottoreti e il gruppo di sicurezza per l'endpoint VPC. Assicurati di scegliere le sottoreti private e il gruppo di sicurezza con le regole in entrata appropriate.

Il gruppo di sicurezza collegato agli endpoint VPC di interfaccia deve disporre di una regola in ingresso per la porta 443 (HTTPS):

Regola in entrata:

TipoProtocolloIntervallo di porteOrigine
HTTPSTCP443Indirizzo IP del client (vedi nota)

Nota: per proteggere il traffico in entrata attraverso l'endpoint VPC, considera di specificare solo l'indirizzo IP o la rete del client nel campo Origine.

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

Regola in entrata:

TipoProtocolloIntervallo di porteOrigine
HTTPTCP80Gruppo di sicurezza del sistema di bilanciamento del carico

Verifica che il gruppo di sicurezza associato al sistema di bilanciamento 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 instradamento

Quando si creano gli endpoint gateway, è possibile scegliere una tabella di instradamento. Assicurati di scegliere la tabella di instradamento associata alla sottorete privata del VPC. La tabella di instradamento associata alla sottorete privata deve avere un percorso per ogni endpoint VPC gateway. Ad esempio, è necessario disporre di un instradamento per ogni endpoint VPC gateway associato ad Amazon Simple Storage Service (Amazon S3) o Amazon DynamoDB.

Voci della tabella di instradamento:

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

Verifica le policy degli endpoint VPC

Le policy degli endpoint VPC devono consentire all'ambiente Elastic Beanstalk di comunicare privatamente con il servizio. Quando si crea un endpoint di interfaccia o un endpoint gateway, è possibile allegare una policy degli endpoint. La policy degli 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 non si specifica una policy dell'endpoint al momento della sua creazione, per impostazione predefinita l'endpoint ha accesso completo.

Di seguito è riportato un esempio di policy minima per gli endpoint VPC gateway di S3 richiesta per un endpoint S3 quando si lavora con 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 (Accedi a un servizio AWS utilizzando un endpoint VPC di interfaccia)

AWS UFFICIALE
AWS UFFICIALEAggiornata un anno fa