Concedere le autorizzazioni utente per il passaggio di 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 le autorizzazioni utente per il passaggio di un ruolo a un servizio AWS

Per configurare molti AWS servizi, è necessario passare un ruolo IAM 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' EC2 istanza 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. È possibile definire le autorizzazioni per le applicazioni in esecuzione nell'istanza collegando una policy IAM 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 passare un ruolo a un AWS servizio, devi concedere l'PassRoleautorizzazione all'utente, al ruolo o al gruppo IAM dell'utente.

avvertimento
  • Puoi utilizzare l'PassRoleautorizzazione solo per passare un ruolo IAM a un servizio che condivide lo stesso AWS account. Per passare un ruolo nell'Account A a un servizio nell'Account B, devi prima creare un ruolo IAM 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 multi-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'autorizzazione PassRole, devi assicurarti che un utente non invii un ruolo dove il ruolo dispone di più autorizzazioni di quelle che desideri che l'utente abbia. Ad esempio, Alice potrebbe non essere autorizzata a eseguire alcune operazioni 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 processo.

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 operazione API che utilizza il ruolo per assegnare le autorizzazioni al servizio. Il servizio quindi verifica se l'utente dispone dell'autorizzazione iam:PassRole. Per limitare l'utente a passare solo i ruoli approvati, puoi filtrare l'autorizzazione iam:PassRole con l'elemento Resources dell'istruzione della policy IAM.

Puoi utilizzare l'Conditionelemento in una policy JSON per testare il valore delle chiavi incluse nel contesto di richiesta di tutte le richieste. AWS Per ulteriori informazioni sull'utilizzo delle chiavi di condizione in una policy, consulta Elementi delle policy JSON IAM: 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 politica, 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 policy di autorizzazioni IAM collegata al ruolo che determina quali operazioni può compiere 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. Puoi utilizzare una policy di autorizzazioni AWS IAM gestita o creata dal cliente.

    JSON
    { "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.

    JSON
    { "Version": "2012-10-17", "Statement": { "Sid": "TrustPolicyStatementThatAllowsEC2ServiceToAssumeTheAttachedRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } }
  • Una policy di autorizzazioni IAM collegata all'utente IAM che consente all'utente di trasferire 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-:

    JSON
    { "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' EC2 istanza 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 (Amazon RDS) supporta una funzione chiamata Monitoraggio avanzato. Questa funzione consente ad Amazon RDS di monitorare un'istanza di database tramite un agente. Consente inoltre ad Amazon RDS di registrare i parametri su Amazon CloudWatch Logs. Per abilitare questa funzione, è necessario creare un ruolo di servizio per fornire le autorizzazioni Amazon RDS per monitorare e scrivere i parametri per i log.

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

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

  3. Scegli il tipo di ruolo di AWS servizio, quindi, per Casi d'uso per altri Servizi AWS, scegli il servizio RDS. Scegli RDS - Enhanced Monitoring (RDS - Monitoraggio avanzato), quindi seleziona Next (Successivo).

  4. Scegli la politica di RDSEnhanced MonitoringRole autorizzazione di Amazon.

  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 un ARN, 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 in IAM, consultare Tag 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 l'avvio, Amazon RDS potrà eseguire tutte le operazioni consentite dalla policy AmazonRDSEnhancedMonitoringRole.

L'utente che desideri possa accedere al monitoraggio avanzato necessita di una policy che includa un'istruzione che consenta all'utente di elencare i ruoli RDS e l'istruzione che consente di passare il ruolo, come nell'esempio 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. Invece, per specificare che l'utente può passare qualsiasi ruolo che inizia con RDS-, puoi sostituire il nome del ruolo nella risorsa ARN con un carattere jolly, come nell'esempio seguente.

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

Operazioni iam:PassRole nei log AWS CloudTrail

PassRolenon è una chiamata API. PassRoleè un'autorizzazione, il che significa che non vengono generati CloudTrail log 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.