Concedere a un utente le autorizzazioni per passare un ruolo a un servizio AWS - AWS Identity and Access Management

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

Concedere a un utente le autorizzazioni per passare un ruolo a un servizio AWS

Per configurare molti AWS servizi, è necessario assegnare un IAMruolo al servizio. Ciò consente al servizio di assumere successivamente il ruolo ed eseguire operazioni per tuo conto. Per la maggior parte dei servizi, è sufficiente passare il ruolo al servizio una sola volta durante la configurazione e non ogni volta che il servizio assume il ruolo. Ad esempio, supponiamo di avere un'applicazione in esecuzione su un'EC2istanza Amazon. Tale applicazione richiede credenziali temporanee per l'autenticazione e autorizzazioni per autorizzare l'applicazione a eseguire operazioni in AWS. Quando configuri l'applicazione, devi passare un ruolo ad Amazon da EC2 utilizzare con l'istanza che fornisce tali credenziali. Definisci le autorizzazioni per le applicazioni in esecuzione sull'istanza allegando una IAM policy al ruolo. L'applicazione assume il ruolo ogni volta che è necessario per eseguire le operazioni consentite dal ruolo.

Per passare un ruolo (e le relative autorizzazioni) a un AWS servizio, un utente deve disporre delle autorizzazioni per passare il ruolo al servizio. Ciò consente agli amministratori di garantire che solo gli utenti autorizzati possano configurare un servizio con un ruolo che concede le autorizzazioni. Per consentire a un utente di trasferire un ruolo a un AWS servizio, è necessario concedere l'PassRoleautorizzazione all'utente, al ruolo o al gruppo dell'IAMutente.

avvertimento
  • È possibile utilizzare l'PassRoleautorizzazione solo per trasferire un IAM ruolo a un servizio che condivide lo stesso AWS account. Per trasferire un ruolo nell'Account A a un servizio nell'Account B, devi prima creare un IAM ruolo nell'Account B che possa assumere il ruolo dall'Account A, quindi il ruolo nell'Account B può essere passato al servizio. Per informazioni dettagliate, consultare Accesso alle risorse su più account in IAM.

  • Non cercare di controllare chi può passare un ruolo assegnando tag al ruolo e utilizzando la chiave di condizione ResourceTag in una policy con l'operazione iam:PassRole. Questo approccio non produce risultati affidabili.

Quando imposti l'PassRoleautorizzazione, devi assicurarti che a un utente non venga assegnato un ruolo in cui il ruolo dispone di più autorizzazioni di quelle che desideri che l'utente abbia. Ad esempio, Alice potrebbe non essere autorizzata a eseguire alcuna azione su Amazon S3. Se Alice potesse trasferire un ruolo a un servizio che consente le azioni di Amazon S3, il servizio potrebbe eseguire azioni Amazon S3 per conto di Alice durante l'esecuzione del job.

Quando si specifica un ruolo collegato ai servizi, è necessario disporre anche delle autorizzazioni per inoltrare tale ruolo al servizio. Alcuni servizi creano automaticamente un ruolo collegato ai servizi nell'account quando si esegue un'azione in quel servizio. Ad esempio, Amazon EC2 Auto Scaling crea automaticamente il ruolo AWSServiceRoleForAutoScaling collegato al servizio quando crei un gruppo Auto Scaling per la prima volta. Se provi a specificare il ruolo collegato ai servizi quando crei un gruppo con scalabilità automatica senza l'autorizzazione iam:PassRole, viene visualizzato un messaggio di errore. Se non specifichi esplicitamente il ruolo, l'autorizzazione iam:PassRole non è richiesta e l'impostazione predefinita prevede l'utilizzo del ruolo AWSServiceRoleForAutoScaling per tutte le operazioni eseguite su quel gruppo. Per scoprire i servizi che supportano i ruoli collegati ai servizi, consulta AWS servizi che funzionano con IAM. Per scoprire quali servizi creano automaticamente un ruolo collegato ai servizi quando si esegue un'operazione in quel servizio, selezionare il collegamento Yes (Sì) e visualizzare il ruolo collegato ai servizi per il servizio.

Un utente può passare un ruolo ARN come parametro in qualsiasi API operazione che utilizza il ruolo per assegnare autorizzazioni al servizio. Il servizio quindi verifica se l'utente dispone dell'autorizzazione iam:PassRole. Per limitare l'utente a passare solo ruoli approvati, è possibile filtrare l'iam:PassRoleautorizzazione con l'Resourceselemento della dichiarazione IAM politica.

È possibile utilizzare l'Conditionelemento in una JSON policy per verificare il valore delle chiavi incluse nel contesto della richiesta di tutte le AWS richieste. Per ulteriori informazioni sull'utilizzo delle chiavi di condizione in una policy, consulta IAMJSONelementi politici: Condition. La chiave di condizione iam:PassedToService può essere utilizzata per specificare il principale del servizio del servizio a cui è possibile passare un ruolo. Per ulteriori informazioni sull'utilizzo della chiave iam:PassedToService condition in una policy, consulta iam: PassedToService.

Esempio 1

Supponiamo di voler concedere a un utente la possibilità di passare uno qualsiasi dei ruoli approvati al EC2 servizio Amazon all'avvio di un'istanza. È necessario disporre di tre elementi:

  • Una politica di IAM autorizzazioni associata al ruolo che determina cosa può fare il ruolo. Definire l'ambito delle autorizzazioni in modo da includere solo le operazioni che il ruolo deve effettuare e sole le risorse necessarie per tali operazioni. È possibile utilizzare una politica di autorizzazioni AWS gestita o creata dal clienteIAM.

    { "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "A list of the permissions the role is allowed to use" ], "Resource": [ "A list of the resources the role is allowed to access" ] } }
  • Una policy di attendibilità per il ruolo che consente al servizio di assumere tale ruolo. Ad esempio, è possibile collegare la seguente policy di affidabilità al ruolo con l'operazione UpdateAssumeRolePolicy. Questa politica di fiducia consente EC2 ad Amazon di utilizzare il ruolo e le autorizzazioni associate al ruolo.

    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • Una politica di IAM autorizzazioni allegata all'IAMutente che consente all'utente di assegnare solo i ruoli approvati. In genere si aggiunge iam:GetRole a iam:PassRole in modo che l'utente possa ottenere i dettagli del ruolo da passare. In questo esempio, l'utente può passare solo i ruoli esistenti nell'account specificato con nomi che iniziano con EC2-roles-for-XYZ-:

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/EC2-roles-for-XYZ-*" }] }

Ora l'utente può avviare un'EC2istanza Amazon con un ruolo assegnato. Le applicazioni in esecuzione nell'istanza possono accedere alle credenziali temporanee per il ruolo tramite i metadati del profilo dell'istanza. Le policy delle autorizzazioni collegate al ruolo determinano cosa può fare l'istanza.

Esempio 2

Amazon Relational Database Service (RDSAmazon) supporta una funzionalità chiamata Enhanced Monitoring. Questa funzionalità consente RDS ad Amazon di monitorare un'istanza di database utilizzando un agente. Consente inoltre RDS ad Amazon di registrare i parametri su Amazon CloudWatch Logs. Per abilitare questa funzionalità, devi creare un ruolo di servizio che conceda ad Amazon RDS le autorizzazioni per monitorare e scrivere metriche nei tuoi log.

Creare un ruolo per il monitoraggio RDS avanzato di Amazon
  1. Accedi a AWS Management Console e apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

  2. Selezionare Roles (Ruoli), quindi selezionare Create role (Crea ruolo).

  3. Scegli il tipo di ruolo del AWS servizio, quindi nella sezione Casi d'uso per altri Servizi AWS, scegli il RDSservizio. Scegli RDS— Monitoraggio avanzato, quindi scegli Avanti.

  4. Scegli la politica di mazonRDSEnhanced MonitoringRole autorizzazioni A.

  5. Scegli Next (Successivo).

  6. In Role name (Nome ruolo), inserisci un nome del ruolo che consenta di identificarne lo scopo. I nomi dei ruoli devono essere univoci all'interno del tuo Account AWS. Quando il nome di un ruolo viene utilizzato in una policy o come parte di unaARN, il nome del ruolo fa distinzione tra maiuscole e minuscole. Quando un nome di ruolo viene visualizzato ai clienti nella console, ad esempio durante la procedura di accesso, il nome del ruolo non fa distinzione tra maiuscole e minuscole. Poiché varie entità possono fare riferimento al ruolo, non puoi modificare il nome del ruolo dopo averlo creato.

  7. (Facoltativo) In Description (Descrizione), inserisci una descrizione per il nuovo ruolo.

  8. (Facoltativo) Aggiungi metadati all'utente collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo dei tag inIAM, vedereTag per AWS Identity and Access Management le risorse.

  9. Rivedere il ruolo e scegliere Crea ruolo.

Il ruolo ottiene automaticamente una policy di affidabilità che concede le autorizzazioni del servizio monitoring.rds.amazonaws.com per assumere il ruolo. Dopo averlo fatto, Amazon RDS potrà eseguire tutte le azioni consentite dalla AmazonRDSEnhancedMonitoringRole policy.

L'utente a cui desideri accedere a Enhanced Monitoring necessita di una policy che includa una dichiarazione che consenta all'utente di elencare i RDS ruoli e un'istruzione che consenta all'utente di passare il ruolo, come la seguente. Utilizza il tuo numero di account e sostituisci il nome del ruolo con il nome fornito nel passaggio 6.

{ "Sid": "PolicyStatementToAllowUserToListRoles", "Effect": "Allow", "Action": ["iam:ListRoles"], "Resource": "*" }, { "Sid": "PolicyStatementToAllowUserToPassOneSpecificRole", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::account-id:role/RDS-Monitoring-Role" }

È possibile combinare questa istruzione con dichiarazioni in un'altra policy o collocarla nella policy personalizzata. Per specificare invece che l'utente può assegnare qualsiasi ruolo che inizia conRDS-, potete sostituire il nome del ruolo nella risorsa ARN con un carattere jolly, come segue.

"Resource": "arn:aws:iam::account-id:role/RDS-*"

Operazioni iam:PassRole nei log AWS CloudTrail

PassRolenon è una API chiamata. PassRoleè un'autorizzazione, il che significa che non vengono generati CloudTrail registri per IAMPassRole. Per verificare quali ruoli vengono passati a quali Servizi AWS in CloudTrail, è necessario esaminare il CloudTrail registro che ha creato o modificato la AWS risorsa che riceve il ruolo. Ad esempio, un ruolo viene passato a una AWS Lambda funzione al momento della creazione. Il log per l'operazione CreateFunction mostra un record del ruolo passato alla funzione.