Creare un ruolo per delegare le autorizzazioni a un servizio AWS - AWS Identity and Access Management

Creare un ruolo per delegare le autorizzazioni a un servizio AWS

Per molti servizi AWS è necessario utilizzare dei ruoli per consentire al servizio di accedere alle risorse in altri servizi a nome dell'utente. Un ruolo che un servizio assume per eseguire operazioni a tuo nome viene chiamato ruolo del servizio. Quando un ruolo fornisce uno scopo specializzato per un servizio, questo può essere categorizzato come ruolo collegato al servizio. Per visualizzare i servizi che supportano ruoli collegati ai servizi, oppure se un servizio supporta qualsiasi forma di credenziali provvisorie, consulta AWSServizi che funzionano con IAM. Per apprendere come un singolo servizio utilizza i ruoli, scegli il nome del servizio nella tabella e visualizza la documentazione relativa a tale servizio.

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.

Per informazioni su come i ruoli aiutano a delegare le autorizzazioni, consulta Termini e concetti dei ruoli.

Autorizzazioni del ruolo del servizio

Per consentire a una entità IAM (utente o ruolo) di creare o modificare un ruolo di servizio, occorre configurare le autorizzazioni.

Nota

L'ARN per un ruolo collegato ai servizi include un principale del servizio, indicata nelle policy seguenti come SERVICE-NAME.amazonaws.com. Non tentare di indovinare il principale del servizio, perché fa distinzione tra maiuscole e minuscole e il formato può variare tra i servizi AWS. Per visualizzare l'entità principale di un servizio, consulta la relativa documentazione del ruolo collegato al servizio.

Come consentire a un'entità IAM di creare un ruolo di servizio specifico

Aggiungi la policy seguente all'entità IAM che deve creare il ruolo di servizio. Questa policy ti permette di creare un ruolo del servizio per il servizio specificato e utilizzando un nome specifico. Puoi quindi collegare le policy gestite o inline a tale ruolo.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:CreateRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" } ] }

Come consentire a un'entità IAM di creare un qualsiasi ruolo di servizio

AWS consiglia di permettere solo agli utenti amministrativi di creare un ruolo di servizio. Una persona con autorizzazioni per creare un ruolo e allegare qualsiasi policy può eseguire l'escalation delle proprie autorizzazioni. Invece, crea una policy che consenta a questa persona di creare solo i ruoli di cui hanno bisogno o lascia che un amministratore crei il ruolo di servizio per suo conto.

Per allegare una policy che consente a un amministratore di accedere all'intero Account AWS, usa la policy AdministratorAccess gestita da AWS.

Come consentire a un'entità IAM di modificare un ruolo di servizio

Aggiungi la policy seguente all'entità IAM che deve modificare il ruolo di servizio.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "EditSpecificServiceRole", "Effect": "Allow", "Action": [ "iam:AttachRolePolicy", "iam:DeleteRolePolicy", "iam:DetachRolePolicy", "iam:GetRole", "iam:GetRolePolicy", "iam:ListAttachedRolePolicies", "iam:ListRolePolicies", "iam:PutRolePolicy", "iam:UpdateRole", "iam:UpdateRoleDescription" ], "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }, { "Sid": "ViewRolesAndPolicies", "Effect": "Allow", "Action": [ "iam:GetPolicy", "iam:ListRoles" ], "Resource": "*" } ] }

Come consentire a un'entità IAM di eliminare un ruolo di servizio specifico

Aggiungi l'istruzione seguente alla policy delle autorizzazioni per l'entità IAM che deve eliminare il ruolo di servizio specificato.

{ "Effect": "Allow", "Action": "iam:DeleteRole", "Resource": "arn:aws:iam::*:role/SERVICE-ROLE-NAME" }

Come consentire a un'entità IAM di eliminare qualunque ruolo di servizio

AWS consiglia di permettere solo agli utenti amministrativi di eliminare qualsiasi ruolo di servizio. Invece, crea una policy che consenta loro di eliminare solo i ruoli di cui hanno bisogno o lascia che un amministratore elimini il ruolo di servizio per suo conto.

Per allegare una policy che consente a un amministratore di accedere all'intero Account AWS, usa la policy AdministratorAccess gestita da AWS.

Creazione di un ruolo per un servizio AWS (console)

È possibile utilizzare Console di gestione AWS per creare un ruolo per un servizio. Dal momento che alcuni servizi supportano più ruoli del servizio, consulta la documentazione AWS relativa al servizio per determinare quale caso d'uso selezionare. È possibile apprendere come assegnare le necessarie policy di affidabilità e autorizzazioni al ruolo, in modo che il servizio possa assumere quel ruolo per conto dell'utente. Le operazioni che è possibile utilizzare per controllare le autorizzazioni per il tuo ruolo possono variare, a seconda del modo in cui il servizio definisce i casi d'uso e della creazione o meno di un ruolo collegato ai servizi.

Console
Per creare un ruolo per un servizio Servizio AWS (console IAM)
  1. Accedi alla Console di gestione AWS e apri la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione della console IAM, scegliere Ruoli e quindi Crea ruolo.

  3. Per Trusted entity type (Tipo di entità attendibile), scegli Servizio AWS.

  4. Per Servizio o caso d'uso, scegli un servizio, quindi scegli il caso d'uso. I casi d'uso sono definiti dal servizio in modo da includere la policy di attendibilità richiesta dal servizio.

  5. Scegli Next (Successivo).

  6. Per Policy di autorizzazione, le opzioni dipendono dal caso d'uso selezionato:

    • Se il servizio definisce le autorizzazioni per il ruolo, le policy di autorizzazioni non possono essere selezionate.

    • Seleziona una policy da un set limitato di policy di autorizzazione.

    • Seleziona una policy tra tutte le policy di autorizzazione.

    • Non selezionare policy di autorizzazioni, crea le policy dopo la creazione del ruolo e quindi collegale al ruolo.

  7. (Facoltativo) Impostare un limite delle autorizzazioni. Questa è una caratteristica avanzata disponibile per i ruoli di servizio, ma non per i ruoli collegati ai servizi.

    1. Apri la sezione Imposta limite delle autorizzazioni e seleziona Usa un limite delle autorizzazioni per controllare il numero massimo di autorizzazioni del ruolo.

      IAM include un elenco delle policy gestite da AWS e delle policy gestite dal cliente nel tuo account.

    2. Selezionare la policy da utilizzare per il limite delle autorizzazioni.

  8. Scegli Next (Successivo).

  9. Per Nome del ruolo, le opzioni dipendono dal servizio:

    • Se il servizio definisce il nome del ruolo, non puoi modificarlo.

    • Se il servizio definisce un prefisso per il nome del ruolo, puoi inserire un suffisso facoltativo.

    • Se il servizio non definisce il nome del ruolo, puoi assegnare un nome al ruolo.

      Importante

      Quando assegni un nome a un ruolo, tieni presente quanto segue:

      • I nomi dei ruoli devono essere univoci all'interno dell'Account AWS e non possono essere resi univoci per il caso.

        Ad esempio, non creare ruoli denominati PRODROLE e prodrole. 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, tuttavia quando un nome di ruolo viene visualizzato ai clienti nella console, ad esempio durante il processo di accesso, il nome del ruolo non fa distinzione tra maiuscole e minuscole.

      • Non è possibile modificare il nome del ruolo dopo averlo creato, in quanto altre entità possono fare riferimento al ruolo.

  10. (Facoltativo) In Descrizione, inserisci una descrizione per il ruolo.

  11. (Facoltativo) Per modificare i casi d'uso e le autorizzazioni per il ruolo, in Fase 1: seleziona le entità attendibili o Fase 2: aggiungi autorizzazioni seleziona Modifica.

  12. (Facoltativo) Per facilitare l'identificazione, l'organizzazione o la ricerca del ruolo, aggiungi i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo di tag in IAM, consulta Tagging delle risorse AWS Identity and Access Management nella Guida per l'utente di IAM.

  13. Verificare il ruolo e quindi scegliere Create role (Crea ruolo).

Creazione di un ruolo per un servizio (AWS CLI)

La creazione di un ruolo da AWS CLI richiede più passaggi. Quando si utilizza la console per creare un ruolo, molte delle fasi vengono eseguite senza alcun intervento da parte dell'utente, ma con AWS CLI ogni fase deve essere eseguita personalmente. È necessario creare il ruolo e quindi assegnargli una policy di autorizzazione. Se il servizio in uso è Amazon EC2, è necessario creare anche un profilo dell'istanza e aggiungervi il ruolo. Puoi anche scegliere di impostare il limite delle autorizzazioni per il ruolo.

Per creare un ruolo per un servizio AWS da AWS CLI
  1. Il seguente comando create-role crea un ruolo denominato Ruolo di test e gli collega una policy di attendibilità:

    aws iam create-role --role-name Test-Role --assume-role-policy-document file://Test-Role-Trust-Policy.json

  2. Collega una policy delle autorizzazioni gestita al ruolo: aws iam attach-role-policy

    Ad esempio, il seguente comando attach-role-policy allega la policy gestita AWS denominata ReadOnlyAccess al ruolo IAM denominato ReadOnlyRole:

    aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/ReadOnlyAccess --role-name ReadOnlyRole

    oppure

    Creare una policy delle autorizzazioni inline per il ruolo: aws iam put-role-policy

    Per aggiungere una policy di autorizzazioni in linea, consulta l'esempio seguente:

    aws iam put-role-policy --role-name Test-Role --policy-name ExamplePolicy --policy-document file://AdminPolicy.json

  3. (Facoltativo) Aggiungere attributi personalizzati al ruolo collegando tag: aws iam tag-role

    Per ulteriori informazioni, consulta Gestione di tag sui ruoli IAM (AWS CLI o API AWS).

  4. (Facoltativo) Impostare il limite delle autorizzazioni per il ruolo: aws iam put-role-permissions-boundary

    Il limite delle autorizzazioni controlla il numero massimo di autorizzazioni che è possibile concedere a un ruolo. I limiti delle autorizzazioni sono una caratteristica avanzata di AWS.

Se utilizzerai il ruolo con Amazon EC2 o un altro servizio AWS che utilizza Amazon EC2, è necessario archiviare il ruolo in un profilo dell'istanza. Un profilo dell'istanza è un container per un ruolo che può essere associato a un'istanza Amazon EC2 quando viene avviato. Un profilo dell'istanza può contenere solo un ruolo e tale limite non può essere superato. Se il ruolo è stato creato utilizzando Console di gestione AWS, il profilo dell'istanza verrà creato con lo stesso nome del ruolo. Per ulteriori informazioni sui profili delle istanze, consulta Usare profili dell'istanza. Per informazioni su come avviare un'istanza EC2 con un ruolo, consulta Controllo dell'accesso alle risorse Amazon EC2 nella Guida per l'utente di Amazon EC2.

Per creare un profilo dell'istanza e memorizzarvi il ruolo (AWS CLI)
  1. Creare un profilo dell'istanza: aws iam create-instance-profile

  2. Aggiungere il ruolo al profilo dell'istanza: aws iam add-role-to-instance-profile

Il set di comandi di esempio AWS CLI seguente illustra i primi due passaggi necessari per creare un ruolo e collegare le autorizzazioni. Mostra inoltre i due passaggi necessari per creare un profilo dell'istanza e aggiungere il ruolo al profilo. Questa policy di attendibilità di esempio permette al servizio Amazon EC2 di assumere il ruolo e visualizzare il bucket example_bucket di Amazon S3. L'esempio presuppone inoltre l'uso un computer client con Windows e che l'interfaccia a riga di comando sia già configurata con le credenziali dell'account e la regione. Per ulteriori informazioni, consulta la sezione relativa alla configurazione della CLI AWS.

In questo esempio, è necessario includere la seguente policy di attendibilità nel primo comando al momento della creazione del ruolo. La policy di attendibilità consente al servizio Amazon EC2 di assumere il ruolo.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Principal": {"Service": "ec2.amazonaws.com"}, "Action": "sts:AssumeRole" } }

Quando si utilizza il secondo comando, è necessario collegare una policy di autorizzazione al ruolo. L'esempio di policy di autorizzazione seguente consente al ruolo di eseguire solo l'operazione ListBucket sul bucket example_bucket di Amazon S3.

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

Per creare questo ruolo Test-Role-for-EC2, è innanzitutto necessario salvare la policy di attendibilità precedente con il nome trustpolicyforec2.json e la policy di autorizzazione precedente con il nome permissionspolicyforec2.json nella directory policies dell'unità C: locale. È quindi possibile utilizzare i comandi seguenti per creare il ruolo, collegare la policy, creare il profilo dell'istanza e aggiungere il ruolo al profilo dell'istanza.

# Create the role and attach the trust policy that allows EC2 to assume this role. $ aws iam create-role --role-name Test-Role-for-EC2 --assume-role-policy-document file://C:\policies\trustpolicyforec2.json # Embed the permissions policy (in this example an inline policy) to the role to specify what it is allowed to do. $ aws iam put-role-policy --role-name Test-Role-for-EC2 --policy-name Permissions-Policy-For-Ec2 --policy-document file://C:\policies\permissionspolicyforec2.json # Create the instance profile required by EC2 to contain the role $ aws iam create-instance-profile --instance-profile-name EC2-ListBucket-S3 # Finally, add the role to the instance profile $ aws iam add-role-to-instance-profile --instance-profile-name EC2-ListBucket-S3 --role-name Test-Role-for-EC2

Quando si avvia l'istanza EC2, specificare il nome del profilo dell'istanza nella pagina Configure Instance Details (Configura i dettagli dell'istanza) se si utilizza la console AWS. Se utilizzi il comando della CLI aws ec2 run-instances, specifica il parametro --iam-instance-profile.

Creazione di un ruolo per un servizio (API AWS)

La creazione di un ruolo dall'API AWS richiede più passaggi. Quando si usa la console per creare un ruolo, molti dei passaggi vengono eseguiti automaticamente, ma con l'API ogni passaggio deve essere eseguito esplicitamente dall'utente. È necessario creare il ruolo e quindi assegnargli una policy di autorizzazione. Se il servizio in uso è Amazon EC2, è necessario creare anche un profilo dell'istanza e aggiungervi il ruolo. Puoi anche scegliere di impostare il limite delle autorizzazioni per il ruolo.

Per creare un ruolo per un servizio AWS (API AWS)
  1. Creare un ruolo: CreateRole

    Per la policy di affidabilità del ruolo, è possibile specificare una posizione del file.

  2. Collegare una policy di autorizzazione gestita al ruolo: AttachRolePolicy

    oppure

    Creare una policy delle autorizzazioni inline per il ruolo: PutRolePolicy

  3. (Facoltativo) Aggiungere attributi personalizzati all'utente collegando tag: TagRole

    Per ulteriori informazioni, consulta Gestione di tag di utenti IAM (AWS CLI o API AWS).

  4. (Facoltativo) Impostare il limite delle autorizzazioni per il ruolo: PutRolePermissionsBoundary

    Il limite delle autorizzazioni controlla il numero massimo di autorizzazioni che è possibile concedere a un ruolo. I limiti delle autorizzazioni sono una caratteristica avanzata di AWS.

Se utilizzerai il ruolo con Amazon EC2 o un altro servizio AWS che utilizza Amazon EC2, è necessario archiviare il ruolo in un profilo dell'istanza. Un profilo dell'istanza è un container per un ruolo. Ogni profilo dell'istanza può contenere un solo ruolo e tale limite non può essere superato. Se il ruolo è stato creato in Console di gestione AWS, il profilo dell'istanza verrà creato con lo stesso nome del ruolo. Per ulteriori informazioni sui profili delle istanze, consulta Usare profili dell'istanza. Per informazioni su come avviare un'istanza Amazon EC2 con un ruolo, consulta Controllo dell'accesso alle risorse Amazon EC2 nella Guida per l'utente di Amazon EC2.

Creazione di un profilo dell'istanza e memorizzazione del ruolo in esso (API AWS)
  1. Creare un profilo dell'istanza: CreateInstanceProfile

  2. Aggiungere il ruolo al profilo dell'istanza: AddRoleToInstanceProfile