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