Sicurezza in Amazon RDS Custom - 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à.

Sicurezza in Amazon RDS Custom

Acquisisci familiarità con le considerazioni sulla sicurezza di RDS Custom.

Gestione sicura delle attività da parte di RDS Custom per conto dell'utente

RDS Custom utilizza gli strumenti e le tecniche descritti di seguito per eseguire in modo sicuro le operazioni per conto dell'utente:

AWSServiceRoleForRDSCustom ruolo collegato al servizio

Un ruolo collegato al servizio è definito automaticamente dal servizio e include tutte le autorizzazioni richieste dal servizio per chiamare altri  Servizi AWS  per conto dell'utente. Per RDS Custom, AWSServiceRoleForRDSCustom è un ruolo collegato al servizio definito in base al principio del privilegio minimo. RDS Custom utilizza le autorizzazioni in AmazonRDSCustomServiceRolePolicy, ovvero la policy associata a questo ruolo, per eseguire la maggior parte delle attività di provisioning e tutte le attività di gestione off-host. Per ulteriori informazioni, consulta AmazonRDS. CustomServiceRolePolicy

Quando esegue attività sull'host, RDS Custom Automation utilizza le credenziali del ruolo collegato al servizio per eseguire comandi utilizzando. AWS Systems ManagerÈ possibile controllare la cronologia dei comandi tramite la cronologia dei comandi di Systems Manager e  AWS CloudTrail. Systems Manager si connette all'istanza database RDS Custom utilizzando la configurazione di rete. Per ulteriori informazioni, consulta Fase 4: Configurazione di IAM for RDS Custom per Oracle.

Credenziali IAM temporanee

Durante il provisioning o l'eliminazione delle risorse, RDS Custom a volte utilizza credenziali temporanee derivate dalle credenziali del principale IAM chiamante. Queste credenziali IAM sono limitate dalle policy IAM associate a tale principale e scadono dopo il completamento dell'operazione. Per ulteriori informazioni sulle autorizzazioni richieste per i principali IAM che utilizzano RDS Custom, consulta Passaggio 5: concedi le autorizzazioni necessarie al tuo utente o ruolo IAM.

Profilo dell'istanza Amazon EC2

Un profilo dell'istanza EC2 è un container per un ruolo IAM che è possibile utilizzare per passare le informazioni sul ruolo a un'istanza EC2. Un'istanza EC2 è alla base di un'istanza DB personalizzata RDS. Fornire un profilo dell'istanza quando viene creata un'istanza database RDS Custom. RDS Custom utilizza le credenziali del profilo dell'istanza EC2 quando esegue attività di gestione basate su host come i backup. Per ulteriori informazioni, consulta Creare manualmente il ruolo IAM e il profilo dell'istanza.

Coppia di chiavi SSH

Quando RDS Custom crea l'istanza EC2 alla base di un'istanza database, crea una coppia di chiavi SSH per conto dell'utente. La chiave utilizza il prefisso di denominazione. do-not-delete-rds-custom-ssh-privatekey-db- AWS Secrets Manager memorizza questa chiave privata SSH come segreta nel tuo. Account AWS Amazon RDS non archivia queste credenziali, né vi ha accesso né le utilizza. Per ulteriori informazioni, consulta Coppie di chiavi Amazon EC2 e istanze Linux.

Certificati SSL

Le istanze database RDS personalizzate non supportano i certificati SSL gestiti. Se desideri implementare l'SSL, puoi gestire autonomamente i certificati SSL nel tuo portafoglio e creare un ascoltatore SSL per proteggere le connessioni tra il database client o per la replica del database. Per ulteriori informazioni, consulta Configuring Transport Layer Security Authentication nella documentazione del database Oracle.

Protezione del bucket Amazon S3 dal problema del "confused deputy"

Quando crei una versione del motore personalizzato (CEV) per Amazon RDS Custom per Oracle o un'istanza database RDS Custom per SQL Server, RDS Custom crea un bucket Amazon S3. Il bucket S3 memorizza i file come artefatti CEV, registri di ripristino (transazioni), elementi di configurazione per il perimetro di supporto e registri AWS CloudTrail .

È possibile rendere più sicuri questi bucket S3 utilizzando le chiavi di contesto delle condizioni globali per evitare problemi di tipo confused deputy. Per ulteriori informazioni, consulta Prevenzione del problema "confused deputy" tra servizi.

Il seguente esempio di RDS Custom per Oracle mostra l'uso delle chiavi di contesto delle condizioni globali aws:SourceArn e aws:SourceAccount in una policy del bucket S3. Per RDS Custom per Oracle, assicurati di includere gli Amazon Resource Names (ARN) per i CEV e le istanze database. Per RDS Custom per SQL Server, assicurati di includere l'ARN per le istanze database.

... { "Sid": "AWSRDSCustomForOracleInstancesObjectLevelAccess", "Effect": "Allow", "Principal": { "Service": "custom.rds.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:GetObjectVersion", "s3:DeleteObject", "s3:DeleteObjectVersion", "s3:GetObjectRetention", "s3:BypassGovernanceRetention" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-123456789012-us-east-2-c8a6f7/RDSCustomForOracle/Instances/*", "Condition": { "ArnLike": { "aws:SourceArn": [ "arn:aws:rds:us-east-2:123456789012:db:*", "arn:aws:rds:us-east-2:123456789012:cev:*/*" ] }, "StringEquals": { "aws:SourceAccount": "123456789012" } } }, ...

Rotazione delle credenziali RDS Custom per Oracle per i programmi di conformità

Alcuni programmi di conformità richiedono la modifica periodica delle credenziali dell'utente del database, ad esempio ogni 90 giorni. RDS Custom per Oracle esegue automaticamente la rotazione delle credenziali per alcuni utenti del database predefiniti.

Rotazione automatica delle credenziali per gli utenti predefiniti

Se l'istanza DB RDS Custom per Oracle è ospitata in Amazon RDS, per i seguenti utenti Oracle predefiniti viene eseguita la rotazione automatica delle credenziali ogni 30 giorni. Le credenziali per gli utenti precedenti risiedono in. AWS Secrets Manager

Utenti Oracle predefiniti
Utente del databaseCreato daVersioni del motore supportateNote
SYSOraclecustom-oracle-ee e custom-oracle-ee-cdb
SYSTEMOraclecustom-oracle-ee e custom-oracle-ee-cdb
RDSADMINRDScustom-oracle-ee
C##RDSADMINRDScustom-oracle-ee-cdbI nomi utente con un prefisso C## esistono solo nei CDB. Per ulteriori informazioni, consulta Panoramica dell'architettura Amazon RDS Custom per Oracle.
RDS_DATAGUARDRDScustom-oracle-eeQuesto utente esiste solo nelle repliche di lettura, nei database di origine per le repliche di lettura e nei database sottoposti a migrazione fisica in RDS Custom tramite Oracle Data Guard.
C##RDS_DATAGUARDRDScustom-oracle-ee-cdbQuesto utente esiste solo nelle repliche di lettura, nei database di origine per le repliche di lettura e nei database sottoposti a migrazione fisica in RDS Custom tramite Oracle Data Guard. I nomi utente con un prefisso C## esistono solo nei CDB. Per ulteriori informazioni, consulta Panoramica dell'architettura Amazon RDS Custom per Oracle.

Un'eccezione alla rotazione automatica delle credenziali è un'istanza DB RDS Custom per Oracle configurata manualmente come database in standby. RDS esegue la rotazione solo delle credenziali per le repliche di lettura create utilizzando il comando CLI create-db-instance-read-replica o l'API CreateDBInstanceReadReplica.

Linee guida per la rotazione delle credenziali utente

Per essere sicuro che le credenziali vengano ruotate in base al programma di conformità definito, tieni presente le seguenti linee guida:

  • Se per l'istanza DB viene eseguita la rotazione automatica delle credenziali, non modificare o eliminare manualmente un segreto, un file di password o la password per gli utenti elencati nella tabella Utenti Oracle predefiniti. In caso contrario, RDS Custom potrebbe collocare l'istanza DB al di fuori del perimetro di supporto; in questo caso, viene sospesa la rotazione automatica.

  • L'utente master RDS non è predefinito e pertanto sei tu il responsabile della modifica manuale della password o dell'impostazione della rotazione automatica in Secrets Manager. Per ulteriori informazioni, consulta Ruotare AWS Secrets Manager i segreti.

Rotazione manuale delle credenziali utente

Per le seguenti categorie di database, RDS non esegue la rotazione automatica delle credenziali per gli utenti elencati nella tabella Utenti Oracle predefiniti:

  • Un database configurato manualmente per funzionare come database in standby.

  • Database on-premise

  • Un'istanza DB esterna al perimetro di supporto o in uno stato in cui l'automazione RDS Custom non può essere eseguita. In questo caso RDS Custom inoltre non esegue la rotazione delle chiavi.

Se il database rientra in una delle categorie precedenti, è necessario eseguire manualmente la rotazione delle credenziali utente.

Per ruotare manualmente le credenziali utente per un'istanza DB
  1. Accedi AWS Management Console e apri la console Amazon RDS all'indirizzo https://console.aws.amazon.com/rds/.

  2. In Database, assicurati che al momento RDS non stia eseguendo il backup dell'istanza DB o operazioni come la configurazione della disponibilità elevata.

  3. Nella pagina dei dettagli del database, scegli Configurazione e annota l'ID risorsa dell'istanza DB. Oppure puoi usare il AWS CLI comandodescribe-db-instances.

  4. Apri la console di Secrets Manager all'indirizzo https://console.aws.amazon.com/secretsmanager/.

  5. Nella casella di ricerca inserisci l'ID risorsa dell'istanza DB e cerca il segreto nel modo seguente:

    do-not-delete-rds-custom-db-resource-id-numeric-string

    In questo segreto è archiviata la password per RDSADMIN, SYS e SYSTEM. La seguente chiave di esempio fa riferimento all'istanza DB con l'ID risorsa DB db-ABCDEFG12HIJKLNMNOPQRS3TUVWX:

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
    Importante

    Se l'istanza DB è una replica di lettura e utilizza il motore custom-oracle-ee-cdb, esistono due segreti con il suffisso db-resource-id-numeric-string, uno per l'utente master e l'altro per RDSADMIN, SYS e SYSTEM. Per trovare il segreto corretto, esegui il seguente comando sull'host:

    cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"

    L'attributo dbMonitoringUserPassword indica il segreto per RDSADMIN, SYS eSYSTEM.

  6. Se l'istanza DB esiste in una configurazione di Oracle Data Guard, cerca il segreto nel modo seguente:

    do-not-delete-rds-custom-db-resource-id-numeric-string-dg

    In questo segreto è archiviata la password per RDS_DATAGUARD. La seguente chiave di esempio fa riferimento all'istanza DB con l'ID risorsa DB db-ABCDEFG12HIJKLNMNOPQRS3TUVWX:

    do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
  7. Per tutti gli utenti del database elencati in Utenti Oracle predefiniti, aggiorna le password seguendo le istruzioni riportate in Modificare un AWS Secrets Manager segreto.

  8. Se il database è un database autonomo o un database di origine in una configurazione di Oracle Data Guard:

    1. Avvia il client Oracle SQL e accedi come SYS.

    2. Esegui un'istruzione SQL nel seguente modo per ogni utente del database elencato nella tabella Utenti Oracle predefiniti:

      ALTER USER user-name IDENTIFIED BY pwd-from-secrets-manager ACCOUNT UNLOCK;

      Ad esempio, se la nuova password per RDSADMIN archiviata in Secrets Manager èpwd-123, esegui la seguente istruzione:

      ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
  9. Se l'istanza DB è eseguita in Oracle Database 12c Release 1 (12.1) ed è gestita da Oracle Data Guard, copia manualmente il file di password (orapw) dall'istanza DB primaria in ciascuna istanza DB in standby.

    Se l'istanza DB è ospitata in Amazon RDS, la posizione del file di password è /rdsdbdata/config/orapw. Per i database non ospitati in Amazon RDS, la posizione predefinita è $ORACLE_HOME/dbs/orapw$ORACLE_SID su Linux e UNIX e %ORACLE_HOME%\database\PWD%ORACLE_SID%.ora su Windows.