Creazione e utilizzo di una policy IAM per l'accesso al database IAM - 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 e utilizzo di una policy IAM per l'accesso al database IAM

Per permettere a un utente o un ruolo di connettersi all'istanza database, devi creare una policy IAM. Dopo questa operazione, collega la policy a un set di autorizzazioni o un ruolo.

Nota

Per ulteriori informazioni sulle policy IAM, consulta Gestione accessi e identità per Amazon RDS.

La policy nell'esempio seguente permette a un utente di connettersi a un'istanza database tramite l'autenticazione database IAM.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:db-ABCDEFGHIJKL01234/db_user" ] } ] }
Importante

Un utente con le autorizzazioni di amministratore può accedere alle istanze database senza una policy IAM esplicita. Se vuoi limitare l'accesso come amministratore a di istanze, puoi creare un ruolo IAM con le autorizzazioni appropriate, con privilegi minori e assegnarlo all'amministratore.

Nota

Non confondere il prefisso rds-db: con altri prefissi di operazione API RDS che iniziano con rds:. Utilizzi il prefisso rds-db: e l'operazione rds-db:connect solo per l'autenticazione database IAM. Non sono validi in altri contesti.

La policy di esempio include una singola istruzione con i seguenti elementi:

  • Effect – Specifica Allow per concedere l'accesso all'istanza database. Se non si concede esplicitamente l'accesso, questo viene rifiutato per impostazione predefinita.

  • Action – Specifica rds-db:connect per consentire le connessioni al dell'istanza database.

  • Resource – Specifica un Amazon Resource Name (ARN) che descrive un account database in un'istanza database. Di seguito è riportato il formato ARN.

    arn:aws:rds-db:region:account-id:dbuser:DbiResourceId/db-user-name

    In questo formato, sostituisci quanto segue:

    • region è la regione AWS per l'istanza. Nella policy di esempio, la regione AWS è us-east-2.

    • account-id è il numero di account AWS per l'istanza. Nella policy di esempio, il numero di account è 1234567890. L'utente deve essere nello stesso account dell'account dell'istanza database.

      Per eseguire l'accesso multi-account, crea un ruolo IAM con la policy mostrata in precedenza nell'account per l'istanza database e consenti all'altro account di assumere il ruolo.

    • DbiResourceId è l'identificatore del dell'istanza database. L'identificatore è univoco per una regione AWS e non cambia mai. Nella policy di esempio, l'identificatore è db-ABCDEFGHIJKL01234.

      Per trovare l'ID risorsa di un'istanza database nella AWS Management Console per Amazon RDS, scegli l'istanza database per visualizzarne i dettagli. Quindi seleziona la scheda Configuration (Configurazione). Resource ID (ID risorsa) è visualizzato nella sezione Configuration (Configurazione).

      In alternativa, puoi utilizzare il comando AWS CLI per elencare gli identificatori e gli ID della risorsa per tutte le istanze nella regione AWS corrente, come riportato di seguito.

      aws rds describe-db-instances --query "DBInstances[*].[DBInstanceIdentifier,DbiResourceId]"

      Se utilizzi Amazon Aurora, specifica DbClusterResourceId anziché DbiResourceId. Per ulteriori informazioni, consulta Creazione e utilizzo di una policy IAM per l'accesso al database IAM nella Guida per l'utente di Amazon Aurora.

      Nota

      Se si sta effettuando la connessione a un database tramite proxy RDS, specificare l'ID risorsa proxy, ad esempio prx-ABCDEFGHIJKL01234. Per informazioni sull'utilizzo dell'autenticazione del database IAM con proxy RDS, vedere Connessione a un proxy mediante autenticazione IAM.

    • db-user-name è il nome dell'account database da associare all'autenticazione IAM. Nella policy di esempio, l'account database è db_user.

Puoi creare altri nomi ARN per supportare i vari modelli di accesso. La policy seguente permette l'accesso a due diversi account database in un dell'istanza database.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/jane_doe", "arn:aws:rds-db:us-east-2:123456789012:dbuser:db-ABCDEFGHIJKL01234/mary_roe" ] } ] }

La policy seguente usa il carattere "*" per trovare le corrispondenze di tutte le istanze DB e di tutti gli account database per un account AWS e una regione AWS specifici.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:1234567890:dbuser:*/*" ] } ] }

La policy seguente ricerca la corrispondenza di tutte le istanze per un account AWS e una regione AWS specifici. Tuttavia, la policy concede l'accesso solo a istanze database che hanno un account database jane_doe.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "rds-db:connect" ], "Resource": [ "arn:aws:rds-db:us-east-2:123456789012:dbuser:*/jane_doe" ] } ] }

L'utente o il ruolo ha accesso solo a quei database ai quali l'utente ha accesso. Supponiamo, ad esempio, che il dell'istanza database abbia un database denominato dev e un altro database denominato test. Se l'utente del database jane_doe ha accesso solo a dev, anche qualsiasi utente o ruolo che accede all'istanza database con l'utente jane_doe ha accesso solo a dev. Questa restrizione dell'accesso è anche valida per altri oggetti database, come tabelle, visualizzazioni e così via.

Un amministratore deve creare policy IAM che concedono alle entità l'autorizzazione per eseguire operazioni API specifiche sulle risorse specificate di cui hanno bisogno. L'amministratore deve quindi collegare queste policy ai set di autorizzazioni o ai ruoli che richiedono tali autorizzazioni. Per esempi di policy, consulta Esempi di policy di Amazon RDS basate su identità.

Collegamento di una policy IAM a un set di autorizzazioni o un ruolo

Dopo aver creato una policy IAM per consentire l'autenticazione del database, devi collegare la policy a un set di autorizzazioni o un ruolo. Per un tutorial su questo argomento, consulta Creare e collegare la tua prima policy gestita dal cliente nella Guida per l'utente IAM.

Durante il tutorial, puoi utilizzare uno degli esempi di policy indicati in questa sezione come punto di partenza e personalizzarli in base alle tue esigenze. Al termine del tutorial, avrai un set di autorizzazioni con una policy collegata che può utilizzare l'operazione rds-db:connect.

Nota

Puoi mappare più set di autorizzazioni o ruoli allo stesso account utente del database. Ad esempio, supponiamo che la policy IAM abbia specificato la seguente risorsa ARN.

arn:aws:rds-db:us-east-2:123456789012:dbuser:db-12ABC34DEFG5HIJ6KLMNOP78QR/jane_doe

Se colleghi la policy agli utenti Jane, Bob e Diego, ciascuno di quegli utenti potrà connettersi all'istanza database specificato utilizzando l'account di database jane_doe.