Creazione di un proxy per Amazon RDS - Amazon Relational Database Service

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à.

Creazione di un proxy per Amazon RDS

Puoi associare un proxy a un'istanza database RDS per MariaDB, RDS per Microsoft SQL Server, RDS per MySQL o RDS per PostgreSQL.

Per creare un proxy
  1. Accedi a AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. Nel riquadro di navigazione scegli Proxy.

  3. Scegli Create proxy (Crea proxy).

  4. Configura il proxy utilizzando le impostazioni indicate di seguito.

    Impostazione Description
    Famiglia di motori Il protocollo di rete del database riconosciuto dal proxy quando interpreta il traffico di rete verso e dal database.
    Nota

    Per utilizzare RDS per PostgreSQL, assicurati di mantenere il database postgres nella tua istanza. Consulta Risoluzione dei problemi relativi al database postgres eliminato.

    Identificatore proxy Un nome univoco all'interno dell'ID AWS dell'account e AWS della regione corrente.
    Timeout di connessione client inattivo

    Il proxy chiude una connessione client se questa rimane inattiva per un determinato periodo. Il valore predefinito è 1.800 secondi (30 minuti). Una connessione client è inattiva quando l’applicazione non invia una nuova richiesta entro il tempo specificato dopo il completamento della richiesta precedente. Il proxy mantiene aperta la connessione al database sottostante e la restituisce al pool di connessioni, rendendola disponibile per nuove connessioni client.

    Per eliminare in modo proattivo le connessioni obsolete, riduci il timeout della connessione client per inattività. Per ridurre al minimo i costi di connessione durante i picchi dei carichi di lavoro, aumenta il timeout.

    Database Scegli un’istanza database RDS per l’accesso tramite questo proxy. L'elenco include solo istanze DB e cluster con motori di database compatibili, versioni del motore e altre impostazioni. Se l'elenco è vuoto, crea una nuova istanza database o un cluster compatibile con RDS Proxy. A tale scopo, segui la procedura in Creazione di un'istanza database Amazon RDS. Quindi prova a creare nuovamente il proxy.
    Numero massimo di connessioni del pool di connessione Un valore compreso tra 1 e 100 per definire il limite per max_connections, espresso in percentuale, che Server proxy per RDS può utilizzare. Se intendi utilizzare un solo proxy con questa istanza o cluster di database, puoi impostare il limite su 100. Per ulteriori informazioni su come Server proxy per RDS utilizza questa impostazione, consulta MaxConnectionsPercent.
    Filtri per l’aggiunta di sessioni

    Impedisce a Server proxy per RDS di bloccare determinati stati di sessione rilevati, ignorando così le misure di sicurezza predefinite per le connessioni multiplexing. Attualmente, PostgreSQL non supporta questa impostazione e l’unica opzione disponibile è EXCLUDE_VARIABLE_SETS. La sua attivazione potrebbe far sì che le variabili di sessione di una connessione influiscano sulle altre, causando errori o problemi di correttezza se le query si basano su variabili di sessione impostate al di fuori della transazione corrente. Utilizza questa opzione solo dopo aver verificato che le applicazioni possano condividere in modo sicuro le connessioni al database.

    I seguenti modelli sono considerati sicuri:

    • Istruzioni SET in cui non viene apportata alcuna modifica al valore della variabile di sessione effettiva. In altre parole, la variabile di sessione rimane invariata.

    • Modifichi il valore della variabile di sessione ed esegui un'istruzione nella stessa transazione.

    Per ulteriori informazioni, consulta Evitare di effettuare il pinning di un Server proxy per RDS.

    Timeout del prestito della connessione Se prevedi che il proxy utilizzerà tutte le connessioni al database disponibili, imposta il tempo di attesa prima della restituzione di un errore di timeout. Puoi specificare fino a 5 minuti. Questa impostazione si applica solo quando il proxy ha il numero massimo di connessioni aperte e tutte le connessioni sono già in uso.
    Query di inizializzazione

    (Opzionale) Aggiungi una query di inizializzazione o modifica quella corrente. Puoi specificare una o più istruzioni SQL per l'esecuzione del proxy all'apertura di ogni nuova connessione al database. L’impostazione è in genere utilizzata con le istruzioni SET per assicurarsi che ogni connessione abbia impostazioni identiche. Assicurati che la query che aggiungi sia valida. Per includere più variabili in una singola istruzione SET, utilizza la virgola come separatore. Ad esempio:

    SET variable1=value1, variable2=value2

    Per più istruzioni, utilizzare il punto e virgola come separatore.

    Importante

    Poiché è possibile accedervi nell’ambito della configurazione del gruppo di destinazione, la query di inizializzazione non è protetta da metodi di autenticazione o crittografia. Chiunque abbia accesso alla visualizzazione o alla gestione della configurazione del gruppo di destinazione proxy può visualizzare la query di inizializzazione. È opportuno evitare di aggiungere a questa opzione dati sensibili, ad esempio password o chiavi di crittografia di lunga durata.

    AWS Identity and Access Management Ruolo (IAM)

    Un ruolo IAM con autorizzazione di accesso ai segreti Secrets Manager, che rappresentano le credenziali per gli account utente del database che il proxy può utilizzare. In alternativa, è possibile creare un nuovo ruolo IAM dalla AWS Management Console.

    Segreti Secrets Manager

    Crea o scegli i segreti di Secrets Manager che rappresentano le credenziali per gli account degli utenti del database che possono utilizzare il proxy.

    Quando lo schema di autenticazione predefinito è impostato su Nessuno, questo campo è obbligatorio. Quando lo schema di autenticazione predefinito è impostato sull'autenticazione IAM, questo campo diventa facoltativo e viene contrassegnato come tale nella console.

    Puoi scegliere uno o più segreti dal menu a discesa o creare un nuovo segreto utilizzando il link Crea un nuovo segreto.

    Tipo di autenticazione client Il tipo di autenticazione utilizzato dal proxy per le connessioni dei client. La tua scelta si applica a tutti i segreti di Secrets Manager che associ a questo proxy. Se devi specificare un tipo di autenticazione client diverso per ogni segreto, crea il tuo proxy utilizzando invece l'API AWS CLI o l'API. Specificate questa opzione solo quando la connessione del client utilizza le credenziali del database per l'autenticazione.
    Autenticazione IAM Specificate Obbligatoria , Consentita o Non consentita per l'autenticazione IAM per le connessioni al proxy. L'opzione Allowed è valida solo per i proxy per RDS per SQL Server. La tua scelta si applica a tutti i segreti di Secrets Manager che associ a questo proxy. Se devi specificare un'autenticazione IAM diversa per ogni segreto, crea il proxy utilizzando invece l'API AWS CLI o.
    Schema di autenticazione predefinito

    Scegli il tipo di autenticazione predefinito utilizzato dal proxy per le connessioni del client al proxy e le connessioni dal proxy al database sottostante. Sono disponibili le seguenti opzioni:

    • Nessuno (impostazione predefinita): il proxy recupera le credenziali del database dai segreti di Secrets Manager.

    • Autenticazione IAM: il proxy utilizza l'autenticazione IAM per connettersi al database, abilitando l'autenticazione end-to-end IAM.

    Quando si seleziona l'autenticazione IAM, viene visualizzato un avviso informativo che ricorda di abilitare l'autenticazione del database IAM per i database nella configurazione del gruppo target.

    Nota

    Questa opzione è supportata solo per le famiglie di motori MySQL, PostgreSQL e MariaDB.

    Account di database per l'autenticazione IAM

    Questo campo viene visualizzato solo quando lo schema di autenticazione predefinito è impostato sull'autenticazione IAM e il ruolo di gestione delle identità e degli accessi (IAM) è impostato su Crea ruolo IAM.

    Assegna un nome agli account utente del database per il proxy da utilizzare con l'autenticazione IAM. Questo è un campo obbligatorio. Specificare più account mediante:

    • Digitare il nome utente di un database per aggiungerlo come tag

    • Utilizzo di nomi utente specifici del database (ad esempiodb_user,jane_doe)

    • Utilizzo di pattern jolly per più utenti (ad esempio,db_test_*)

    Ogni account appare come un tag rimovibile che puoi eliminare facendo clic sull'icona X. La console utilizza questi valori per creare le rds-db:connect autorizzazioni appropriate nella policy del ruolo IAM.

    Richiede Transport Layer Security

    Applica TLS/SSL per tutte le connessioni client. Il proxy utilizza la stessa impostazione di crittografia quando effettua la connessione al database sottostante, indipendentemente dal fatto che la connessione client sia crittografata o meno.

    Tipo di rete della connessione di destinazione

    La versione IP utilizzata dal proxy per connettersi al database di destinazione. Seleziona una delle opzioni seguenti:

    • IPv4— Il proxy si connette al database utilizzando IPv4 gli indirizzi.

    • IPv6— Il proxy si connette al database utilizzando IPv6 gli indirizzi.

    Il valore predefinito è IPv4. Per poter essere utilizzato IPv6, il database deve supportare la modalità dual-stack. La modalità dual-stack non è disponibile per le connessioni di destinazione.

    Tipo di rete dell’endpoint

    La versione IP dell’endpoint proxy utilizzato dai client per connettersi al proxy. Seleziona una delle opzioni seguenti:

    • IPv4— L'endpoint proxy utilizza solo indirizzi. IPv4

    • IPv6— L'endpoint proxy utilizza solo IPv6 indirizzi.

    • Dual-stack: l'endpoint proxy supporta entrambi gli indirizzi. IPv4 IPv6

    Il valore predefinito è IPv4. Per utilizzare IPv6 il dual-stack, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato.

    Sottoreti

    Questo campo è precompilato con tutte le sottoreti associate al VPC. È possibile rimuovere tutte le sottoreti non necessarie per il proxy, ma è necessario lasciarne almeno due. Per i tipi di rete endpoint IPv6 o dual-stack, assicurati che le sottoreti selezionate supportino il tipo di rete scelto.

    Gruppo di sicurezza VPC

    Scegli un gruppo di sicurezza VPC esistente o creane uno nuovo dalla AWS Management Console. Configura le regole in entrata per permettere alle applicazioni di accedere al proxy e le regole in uscita per consentire il traffico proveniente dalle destinazioni del database.

    Nota

    Questo gruppo di sicurezza deve consentire le connessioni dal proxy al database. Viene utilizzato sia per l’ingresso dalle applicazioni al proxy sia per l’uscita dal proxy al database. Ad esempio, se utilizzi lo stesso gruppo di sicurezza sia per il database che per il proxy, assicurati che le risorse al suo possano comunicare tra loro.

    Quando ricorri a un VPC condiviso, evita di utilizzare il gruppo di sicurezza predefinito per il VPC o uno associato a un altro account. Scegli un gruppo di sicurezza appartenente all’account. Se non ne esiste uno, crealo. Per ulteriori informazioni, consulta Work with shared. VPCs

    RDS implementa un proxy su più zone di disponibilità per garantire una disponibilità elevata. Per abilitare la comunicazione tra zone di disponibilità, la lista di controllo degli accessi (ACL) relativa alla sottorete del proxy deve consentire l’uscita sulla porta del motore e l’ingresso su tutte le porte. Per ulteriori informazioni sulla rete ACLs, consulta Controllare il traffico verso le sottoreti utilizzando la rete. ACLs Se l'ACL di rete per il proxy e la destinazione sono identici, devi aggiungere una regola di ingresso del protocollo TCP in cui Origine è impostata sul VPC CIDR. È inoltre necessario aggiungere una regola di uscita del protocollo TCP specifica per la porta del motore in cui l’opzione Destinazione sia impostata su CIDR VPC.

    Attiva la registrazione di log avanzata

    Attiva questa impostazione per risolvere problemi di compatibilità o prestazioni del proxy. Se abilitato, Server proxy per RDS registra informazioni dettagliate sulle prestazioni per aiutarti a eseguire il debug del comportamento SQL o delle prestazioni e della scalabilità della connessione proxy.

    Abilita questa impostazione solo per il debug e assicurati che siano state adottate misure di sicurezza adeguate per proteggere le informazioni sensibili nei log. Per ridurre al minimo il sovraccarico, Server proxy per RDS disattiva automaticamente questa impostazione 24 ore dopo l’attivazione. Utilizzala temporaneamente per risolvere problemi specifici.

  5. Scegli Create proxy (Crea proxy).

Per creare un proxy utilizzando il AWS CLI, chiamate il create-db-proxycomando con i seguenti parametri obbligatori:

  • --db-proxy-name

  • --engine-family

  • --role-arn

  • --vpc-subnet-ids

Il valore --engine-family prevede la distinzione tra lettere maiuscole e minuscole.

Esempio

Per Linux, macOS o Unix:

aws rds create-db-proxy \ --db-proxy-name proxy_name \ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } \ --role-arn iam_role \ --vpc-subnet-ids space_separated_list \ [--default-auth-scheme { NONE | IAM_AUTH }] \ [--auth ProxyAuthenticationConfig_JSON_string] \ [--vpc-security-group-ids space_separated_list] \ [--require-tls | --no-require-tls] \ [--idle-client-timeout value] \ [--debug-logging | --no-debug-logging] \ [--endpoint-network-type { IPV4 | IPV6 | DUAL }] \ [--target-connection-network-type { IPV4 | IPV6 }] \ [--tags comma_separated_list]

Per Windows:

aws rds create-db-proxy ^ --db-proxy-name proxy_name ^ --engine-family { MYSQL | POSTGRESQL | SQLSERVER } ^ --role-arn iam_role ^ --vpc-subnet-ids space_separated_list ^ [--default-auth-scheme { NONE | IAM_AUTH }] ^ [--auth ProxyAuthenticationConfig_JSON_string] ^ [--vpc-security-group-ids space_separated_list] ^ [--require-tls | --no-require-tls] ^ [--idle-client-timeout value] ^ [--debug-logging | --no-debug-logging] ^ [--endpoint-network-type { IPV4 | IPV6 | DUAL }] ^ [--target-connection-network-type { IPV4 | IPV6 }] ^ [--tags comma_separated_list]

Di seguito è riportato un esempio di valore JSON per l'opzione --auth. In questo esempio viene applicato un tipo di autenticazione client diverso per ciascun segreto.

[ { "Description": "proxy description 1", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:123456789123:secret/1234abcd-12ab-34cd-56ef-1234567890ab", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_SCRAM_SHA_256" }, { "Description": "proxy description 2", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122223333:secret/1234abcd-12ab-34cd-56ef-1234567890cd", "IAMAuth": "DISABLED", "ClientPasswordAuthType": "POSTGRES_MD5" }, { "Description": "proxy description 3", "AuthScheme": "SECRETS", "SecretArn": "arn:aws:secretsmanager:us-west-2:111122221111:secret/1234abcd-12ab-34cd-56ef-1234567890ef", "IAMAuth": "REQUIRED" } ]

Il parametro --endpoint-network-type specifica la versione IP dell’endpoint proxy utilizzato dai client per connettersi al proxy. I valori validi sono:

  • IPV4— L'endpoint proxy utilizza solo IPv4 indirizzi (impostazione predefinita).

  • IPV6— L'endpoint proxy utilizza solo IPv6 indirizzi.

  • DUAL— L'endpoint proxy supporta entrambi IPv4 gli IPv6 indirizzi.

Il parametro --target-connection-network-type specifica la versione IP utilizzata dal proxy per connettersi al database di destinazione. I valori validi sono:

  • IPV4— Il proxy si connette al database utilizzando IPv4 gli indirizzi (impostazione predefinita).

  • IPV6— Il proxy si connette al database utilizzando IPv6 gli indirizzi.

Per utilizzare tipi IPv6 di rete endpoint dual-stack, il VPC e le sottoreti devono essere configurati per supportare il tipo di rete selezionato. Per utilizzare il tipo di rete con connessione IPv6 di destinazione, il database deve supportare la modalità dual-stack.

Suggerimento

Se non conosci già la sottorete IDs da utilizzare per il --vpc-subnet-ids parametro, consulta Configurazione dei prerequisiti di rete per Server proxy per RDS alcuni esempi su come trovarli.

Nota

Il gruppo di protezione deve consentire l'accesso al database a cui si connette il proxy. Lo stesso gruppo di protezione viene utilizzato per l'ingresso dalle applicazioni al proxy e per l'uscita dal proxy al database. Si supponga, ad esempio, di utilizzare lo stesso gruppo di protezione per il database e il proxy. In questo caso, assicurarsi di specificare che le risorse di tale gruppo di protezione possono comunicare con altre risorse dello stesso gruppo di protezione.

Quando si utilizza un VPC condiviso, non è possibile utilizzare il gruppo di sicurezza predefinito per il VPC o uno appartenente a un altro account. Scegli un gruppo di sicurezza appartenente all'account. Se non esiste, creane uno. Per ulteriori informazioni su questa limitazione, consulta Work with shared VPCs.

Per creare le associazioni corrette per il proxy, si usa anche il register-db-proxy-targetscomando. Specificare il tipo di gruppo di destinazione default RDS Proxy crea automaticamente un gruppo di destinazione con questo nome quando si crea ogni proxy.

aws rds register-db-proxy-targets --db-proxy-name value [--target-group-name target_group_name] [--db-instance-identifiers space_separated_list] # rds db instances, or [--db-cluster-identifiers cluster_id] # rds db cluster (all instances)

Per creare un proxy RDS, chiama l'operazione API Amazon RDS Create. DBProxy Passi un parametro con la struttura dei AuthConfigdati.

RDS Proxy crea automaticamente un gruppo di destinazione denominato default quando si crea ogni proxy. È possibile associare un cluster DB di istanze RDS al gruppo di destinazione chiamando la funzione DBProxy Register Targets.

Importante

Quando si seleziona l'autenticazione IAM per lo schema di autenticazione predefinito:

  • È necessario abilitare l'autenticazione del database IAM sulle istanze o sui cluster del database di destinazione prima che il proxy possa connettersi correttamente.

  • Se scegli Crea il ruolo IAM, è obbligatorio il campo Database accounts for IAM authentication.

  • Se selezioni un ruolo IAM esistente, la console non aggiorna automaticamente il ruolo con le autorizzazioni di connessione al database. Verifica che il ruolo disponga delle rds-db:connect autorizzazioni necessarie.