Come utilizzare il permesso di Passrole AWS iam

Come utilizzare il permesso di Passrole AWS iam
In AWS, un ruolo IAM è un'identità AWS come un utente IAM. Il servizio AWS iam è un servizio molto intricato che, se non configurato saggiamente, può portare a potenziali problemi di sicurezza. Sono collegati a politiche che decidono cosa può fare questa identità e non è permesso fare. Non è attaccato a una sola persona, ma può essere assunto da chiunque lo abbia bisogno. Invece di credenziali a lungo termine (password o chiavi di accesso) come un utente IAM, un ruolo IAM ha credenziali di sicurezza temporanee. Quando un utente, un'applicazione o un servizio necessitano di accesso a risorse AWS per le quali non detengono autorizzazioni, usano/assumono un ruolo specifico a tale scopo. Le credenziali di sicurezza temporanea vengono quindi utilizzate per questo compito.

Cosa copriremo?

In questa guida, vedremo come utilizzare il permesso di "Passrole IAM". Come esempio specifico, vedremo come collegare un'istanza EC2 con il secchio S3 usando l'autorizzazione del Passrole.

Termini e concetti importanti

Ruolo del servizio AWS: È un ruolo assunto da un servizio in modo che possa svolgere le attività per conto dell'utente o del titolare dell'account.

Ruolo del servizio AWS per un'istanza EC2: È un ruolo assunto da un'applicazione in esecuzione su un'istanza di Amazon EC2 per eseguire le attività nell'account utente consentito da questo ruolo.

Ruolo legata al servizio AWS: È un ruolo che è predefinito e direttamente allegato a un servizio AWS, come il ruolo legato al servizio RDS per il lancio di un DB RDS.

Utilizzando l'autorizzazione del Passrole per collegare un'istanza EC2 con S3

Molti servizi AWS necessitano di un ruolo per la configurazione e questo ruolo viene passato/amministrato dall'utente. In questo modo, i servizi assumono/assumono il ruolo ed eseguono le attività per conto dell'utente. Per la maggior parte dei servizi, il ruolo deve essere passato una volta durante la configurazione di quel servizio. Un utente richiede autorizzazioni per passare un ruolo a un servizio AWS. Questa è una buona cosa dal punto di vista della sicurezza poiché gli amministratori possono controllare quali utenti possono passare un ruolo a un servizio. L'autorizzazione "Passrole" è concessa da un utente al suo utente IAM, ruolo o gruppo per aver trascorso un ruolo a un servizio AWS.

Per elaborare il concetto precedente, considera un caso in cui un'applicazione in esecuzione su un'istanza EC2 richiede un accesso al secchio S3. Per questo, possiamo attribuire un ruolo IAM a questa istanza in modo che questa applicazione riceva l'autorizzazione S3 nel ruolo. Questa applicazione avrà bisogno delle credenziali temporanee a scopo di autenticazione e autorizzazione. EC2 ottiene credenziali di sicurezza temporanea quando un ruolo si associa all'istanza che esegue la nostra applicazione. Queste credenziali vengono quindi rese disponibili alla nostra applicazione per accedere a S3.

Per garantire a un utente IAM la capacità di passare un ruolo al servizio EC2 al momento dell'avvio di un'istanza, abbiamo bisogno di tre cose:

  1. Una politica di autorizzazioni IAM per il ruolo che decide la portata del ruolo.
  2. Una politica di fiducia legata al ruolo che consente all'EC2 di assumere il ruolo e utilizzare le autorizzazioni definite all'interno del ruolo.
  3. Una politica di autorizzazione IAM per l'utente IAM che elenca i ruoli che può passare.

Facciamolo in un modo più pragmatico. Abbiamo un utente IAM con un permesso limitato. Allegiamo quindi una politica in linea per avviare le istanze EC2 e il permesso di svolgere un ruolo IAM a un servizio. Quindi, creiamo un ruolo per l'accesso S3; Chiamiamolo "S3access". E attribuire una politica IAM ad essa. In questo ruolo, consentiamo solo la lettura dei dati S3 utilizzando la politica AWS gestita "Amazons3ReadonlyAccess".

Passi per creare il ruolo

Passo 1. Dalla console IAM dell'Amministratore (root), fare clic su "Ruolo" e quindi selezionare "Crea ruolo".

Passo 2. Dalla pagina "Seleziona Entità Trusted", selezionare "Servizio AWS" sotto il "tipo di entità di fiducia".

Passaggio 3. In base al "caso di utilizzo", selezionare il pulsante di opzione corrispondente a "EC2" per i "casi d'uso per altri servizi AWS":

Passaggio 4. Nella pagina successiva, assegna una politica "Amazons3ReadonlyAccess":

Passaggio 5. Dai un nome al tuo ruolo ("S3access" nel nostro caso). Aggiungi una descrizione per questo ruolo. La seguente politica di fiducia viene creata automaticamente con questo ruolo:


"Versione": "2012-10-17",
"Dichiarazione": [

"Effetto": "Consenti",
"Azione": [
"STS: Assumerole"
",
"Principal":
"Servizio": [
"EC2.Amazonaws.com "
"


"

Passaggio 6. Fai clic su "Crea ruolo" per creare il ruolo:

Politica IAM per l'utente

Questa politica fornisce all'utente IAM le autorizzazioni EC2 complete e il permesso di associare il ruolo "S3Access" all'istanza.

Passo 1. Dalla console IAM, fai clic sulle politiche e poi su "Crea politiche".

Passo 2. Nella nuova pagina, selezionare la scheda JSON e incollare il seguente codice:


"Versione": "2012-10-17",
"Dichiarazione": [
"Effetto": "Consenti",
"Azione": ["EC2:*"],
"Risorsa":"*"
,

"Effetto": "Consenti",
"Azione": "IAM: Passrole",
"Resource": "Arn: AWS: iam :: account_id: ruolo/s3access"
]

Sostituisci il testo in grassetto "Account ID"Con l'ID account utente.

Passaggio 3. (Facoltativo) Dai tag per la tua politica.

Passaggio 4. Metti un nome adatto per la politica ("IAM-User-Policy" nel nostro caso) e fai clic sul pulsante "Crea Politica" e allega questa politica al tuo utente IAM.

Attaccando il ruolo "S3Access" all'istanza EC2

Ora alletteremo questo ruolo alla nostra istanza. Seleziona la tua istanza dalla console EC2 e vai a "Azione> Sicurezza> Modifica il ruolo IAM". Nella nuova pagina, seleziona il ruolo "S3Access" dal menu a discesa e salvalo.

Verificare l'installazione

Ora, verificheremo se la nostra istanza EC2 è in grado di accedere al nostro bucket S3 creato dall'amministratore. Accedi all'istanza EC2 e installa l'applicazione CLI AWS. Ora, esegui il seguente comando su questa istanza EC2:

$ AWS S3 LS

Ancora una volta, esegui il comando precedente dall'account IAM configurato sulla macchina locale. Noterai che il comando viene eseguito correttamente sull'istanza EC2 ma abbiamo ricevuto un errore di "accesso negativo" sulla macchina locale:

L'errore è ovvio perché abbiamo concesso solo l'autorizzazione di accesso S3 per l'istanza EC2 ma non per l'utente IAM e a qualsiasi altro servizio AWS. Un'altra cosa importante da notare è che non abbiamo reso accessibile il secchio e i suoi oggetti.

Conclusione

In questa guida, abbiamo dimostrato come utilizzare l'autorizzazione del passrole in AWS. Siamo riusciti con successo a collegare EC2 a S3. È un concetto molto importante se ti interessa garantire i minimi privilegi ai tuoi utenti IAM.