Ricerca nel sito web

Che cos'è l'autorizzazione PassRole in AWS e come utilizzarla


Su questa pagina

  1. Cosa vedremo qui?
  2. Cos'è l'autorizzazione Passrol?
  3. Dimostrazione dell'autorizzazione Passrole
  4. Creazione del ruolo
  5. Aggiunta della policy IAM per l'utente IAM
  6. Collegare il ruolo all'istanza
  7. Testare l'installazione

Un servizio IAM viene fornito da molti provider di servizi cloud come misura per controllare l'accesso alle risorse cloud. Determina chi è autenticato e autorizzato ad accedere a queste risorse. Le identità AWS IAM sono costituite da utenti, gruppi e ruoli.

In questa guida ci concentreremo in particolare sui ruoli IAM. Questa identità IAM è proprio come un utente IAM, nel senso che possiamo collegarvi policy IAM. Questi criteri determinano l'ambito del livello di autorizzazione per questa identità. A differenza di un utente IAM che è associato a un singolo utente e dispone di credenziali a lungo termine, i ruoli seguono una strategia diversa. Hanno credenziali di sicurezza temporanee e vengono assunte/prese da altri che ne hanno bisogno. Utenti normali, applicazioni o servizi che non dispongono dell'autorizzazione di accesso alle tue risorse AWS, assumono i ruoli per ottenere questo accesso.

Cosa vedremo qui?

In questo tutorial imparerai come utilizzare l'autorizzazione IAM Passrole. Dimostreremo anche un semplice esempio su come connettere un'istanza EC2 con un bucket S3 privato utilizzando questo concetto.

Che cos'è l'autorizzazione Passrol?

Durante la configurazione di molti servizi AWS, l'utente/amministratore deve passare un ruolo a tale servizio. Il servizio assume quindi tale ruolo per eseguire le azioni consentite all'interno di tale ruolo. Nella maggior parte dei casi, il ruolo viene passato al servizio solo una volta durante l'impostazione del servizio e non ogni volta che il ruolo viene assunto dal servizio.

Un utente deve disporre dei diritti per passare un ruolo a un servizio. Questo è un forte aspetto di sicurezza in quanto solo gli utenti autorizzati possono passare un ruolo al servizio. Inoltre, gli amministratori possono controllare quale tipo di ruolo un utente può passare al servizio.

Dimostrazione del permesso Passrole

Spostiamoci su questo concetto facendo un esempio pratico. In questa dimostrazione, abbiamo un bucket S3, un'istanza EC2 e un'applicazione in esecuzione su questa istanza che è la stessa AWS CLI. Vogliamo configurare un ruolo che consentirà alla nostra applicazione in esecuzione sull'istanza EC2 di accedere al nostro bucket S3. Dobbiamo creare il ruolo in modo tale che solo EC2 ottenga l'autorizzazione per accedere a S3 ma non a qualsiasi altro servizio AWS dell'utente. Per questo, la nostra applicazione dovrebbe avere credenziali temporanee per l'autenticazione e l'autorizzazione ad accedere a S3. Avrai notato che durante l'avvio dell'istanza EC2, ci viene chiesto di selezionare un ruolo IAM, è questo ruolo che fornisce queste credenziali temporanee alla nostra istanza EC2. La nostra applicazione in esecuzione sull'istanza EC2 recupererà queste credenziali per accedere al bucket S3.

Un utente IAM può trasferire un ruolo al servizio EC2, al momento dell'avvio dell'istanza, utilizzando le tre entità seguenti:

  1. Per prima cosa dobbiamo creare e collegare una policy al nostro ruolo che deciderà il limite di autorizzazione o l'ambito del nostro ruolo IAM.
  2. Successivamente, una policy di attendibilità associata a questo ruolo che sostanzialmente consentirà al servizio AWS (EC2 nel nostro caso) di assumere/assumere il ruolo e utilizzare le autorizzazioni elencate con il ruolo.
  3. Infine, una policy di autorizzazione IAM, allegata all'utente IAM che gli consente di passare i ruoli che è autorizzato a passare.

Creazione del ruolo

In questa sezione creeremo un ruolo chiamato EC2S3Access e vi allegheremo una policy AmazonS3ReadOnlyAccess:

Passaggio 1. Vai alla dashboard IAM dall'amministratore o dall'account root e seleziona Ruoli sotto l'opzione Gestione accessi. Fai clic sul pulsante Crea ruolo.

Passaggio 2. Nella sezione Seleziona entità attendibile, vedrai l'opzione Tipo di entità attendibile e Caso d'uso. Per il primo, seleziona l'opzione Servizio AWS e per il secondo seleziona l'opzione EC2.

Passaggio 3. Nella sezione successiva Aggiungi autorizzazioni, allegheremo un criterio S3ReadOnlyAccess e quindi faremo clic su Avanti:

Passo 4. Qui inserisci un nome per il ruolo: EC2S3Access e una descrizione facoltativa per esso. Tieni presente che una policy di attendibilità verrà automaticamente associata a questo ruolo:

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

Passaggio 5. Infine, fai clic sul pulsante Crea ruolo per creare il ruolo sopra:



Aggiunta della policy IAM per l'utente IAM

Finora abbiamo creato un ruolo e gli abbiamo allegato una policy e quindi abbiamo anche una policy attendibile. Ora creeremo un criterio per l'utente IAM stesso. In questa policy daremo all'utente l'autorizzazione per l'accesso EC2 completo e anche per associare il ruolo EC2S3Access di cui sopra alla nostra istanza EC2.

Passaggio 1. Di nuovo, vai alla dashboard IAM dall'amministratore o dall'account root e seleziona Politiche e fai clic sul pulsante Crea politica.

Passaggio 2. Nella procedura guidata Crea criterio, fare clic sulla scheda JSON e incollare semplicemente il seguente codice JSON per questo criterio:

{
   "Version": "2012-10-17",
   "Statement": [{
  	"Effect":"Allow",
  	"Action":["ec2:*"],
  	"Resource":"*"
	},
	{
  	"Effect":"Allow",
  	"Action":"iam:PassRole",
  	"Resource":"arn:aws:iam::account_ID:role/EC2S3Access"
	}]
}

In questo codice, sostituisci account_ID con il numero di account o l'ID dell'utente e EC2S3Access con il nome del ruolo nel tuo caso. Fai clic su Avanti: tag.

Passaggio 3. Specifica eventuali tag facoltativi che desideri utilizzare e fai clic su Avanti: revisione:

Passo 4. Qui inserisci un nome per questa politica ('iam_user_policy' nel nostro caso) e infine fai clic sul pulsante Crea politica per creare questa politica:

Passaggio 5. Collega la policy creata in precedenza all'utente IAM:

Collegamento del ruolo all'istanza

Poiché il nostro ruolo è pronto e l'utente IAM è collegato con la policy richiesta, questo è il momento di collegare questo ruolo (EC2S3Access) all'istanza EC2.

Nota: un ruolo può essere associato a un'istanza durante l'avvio e anche a un'istanza in esecuzione.

Nel nostro caso l'istanza EC2 è già in esecuzione, quindi vai alla console EC2 e seleziona l'istanza di destinazione. Seleziona Azione > Sicurezza > Modifica ruolo IAM. Seleziona l'opzione EC2S3Access dal menu a discesa nella nuova pagina e fai clic su Salva per continuare:

Testare l'installazione

Se tutto è stato impostato correttamente, la nostra istanza EC2 dovrebbe essere in grado di accedere a un bucket S3. Per prima cosa crea un bucket S3 dall'account amministratore. Successivamente, accedi all'istanza EC2 di destinazione, quindi installa e configura l'applicazione aws cli per l'utente IAM con user-iam-policy. Da un terminale sull'istanza eseguire il seguente comando di elenco S3:

$aws s3 ls

Per verificare se l'autorizzazione Passrole funziona, eseguire lo stesso comando dallo stesso utente IAM configurato su una macchina diversa. Questa volta si spera che stiamo ricevendo un errore di accessibilità a causa di un'autorizzazione limitata:

L'errore di cui sopra si è verificato poiché abbiamo concesso solo l'autorizzazione di accesso di S3 all'istanza EC2 configurata con iam_user_policy, ma non abbiamo concesso tale autorizzazione a nessun altro servizio AWS dell'utente IAM.

Nota: il bucket e i relativi oggetti non sono accessibili pubblicamente.

Conclusione

In questa guida abbiamo imparato come utilizzare l'autorizzazione PassRole per concedere privilegi minimi a un utente AWS IAM. Ti abbiamo mostrato come connettere un'istanza EC2 a un bucket S3.