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à.
Usa un IAM ruolo per concedere le autorizzazioni alle applicazioni in esecuzione su istanze Amazon EC2
Le applicazioni eseguite su un'EC2istanza Amazon devono includere AWS credenziali in AWS APIrichieste. Potresti avere il tuo negozio per sviluppatori AWS credenziali direttamente all'interno dell'EC2istanza Amazon e consenti alle applicazioni in quell'istanza di utilizzare tali credenziali. Ma gli sviluppatori dovrebbero quindi gestire le credenziali e assicurarsi di passarle in modo sicuro a ciascuna istanza e aggiornare ogni EC2 istanza Amazon quando è il momento di aggiornare le credenziali. Si tratta di una notevole quantità di lavoro aggiuntivo.
Invece, puoi e dovresti utilizzare un IAM ruolo per gestire le credenziali temporanee per le applicazioni eseguite su un'EC2istanza Amazon. Quando utilizzi un ruolo, non devi distribuire credenziali a lungo termine (come credenziali di accesso o chiavi di accesso) a un'istanza Amazon. EC2 Al contrario, il ruolo fornisce autorizzazioni temporanee che le applicazioni possono utilizzare quando effettuano chiamate ad altri AWS risorse. Quando avvii un'EC2istanza Amazon, specifichi un IAM ruolo da associare all'istanza. Le applicazioni eseguite sull'istanza possono quindi utilizzare le credenziali temporanee fornite dal ruolo per firmare le richieste. API
L'utilizzo dei ruoli per concedere le autorizzazioni alle applicazioni eseguite su EC2 istanze Amazon richiede una configurazione aggiuntiva. Un'applicazione in esecuzione su un'EC2istanza Amazon viene astratta da AWS dal sistema operativo virtualizzato. A causa di questa separazione aggiuntiva, è necessario un passaggio aggiuntivo per assegnare un AWS assegnare il ruolo e le autorizzazioni associate a un'EC2istanza Amazon e renderle disponibili alle sue applicazioni. Tale passaggio aggiuntivo prevede la creazione di un profilo dell'istanza collegato all'istanza. Il profilo dell'istanza contiene il ruolo e può fornire le credenziali provvisorie del ruolo a un'applicazione eseguita nell'istanza. Queste credenziali temporanee possono quindi essere utilizzate nelle API chiamate dell'applicazione per accedere alle risorse e per limitare l'accesso solo alle risorse specificate dal ruolo.
Nota
È possibile assegnare un solo ruolo alla volta a un'EC2istanza Amazon e tutte le applicazioni sull'istanza condividono lo stesso ruolo e le stesse autorizzazioni. Quando utilizzi Amazon ECS per gestire le tue EC2 istanze Amazon, puoi assegnare ruoli alle ECS attività Amazon che possono essere distinti dal ruolo dell'EC2istanza Amazon su cui è in esecuzione. L'assegnazione di un ruolo a ciascuna attività è conforme al principio dell'accesso con privilegi minimi e consente un controllo più granulare su operazioni e risorse.
Per ulteriori informazioni, consulta Using IAM roles with Amazon ECS Tasks nella Amazon Elastic Container Service Best Practices Guide.
Questo tipo di utilizzo dei ruoli offre diversi vantaggi. Dato che le credenziali dei ruoli sono temporanee e vengono aggiornate automaticamente, non dovrai preoccuparti della gestione né dei rischi di sicurezza a lungo termine. Inoltre, se utilizzi un singolo ruolo per più istanze, quando apporti una modifica a un ruolo, queste si propaga automaticamente a tutte le istanze.
Nota
Sebbene un ruolo venga solitamente assegnato a un'EC2istanza Amazon al momento del lancio, un ruolo può essere associato anche a un'EC2istanza Amazon attualmente in esecuzione. Per informazioni su come assegnare un ruolo a un'istanza in esecuzione, consulta IAMRoles for Amazon EC2.
Argomenti
Come funzionano i ruoli per EC2 le istanze Amazon?
Nella figura seguente, uno sviluppatore esegue un'applicazione su un'EC2istanza Amazon che richiede l'accesso al bucket S3 denominato. amzn-s3-demo-bucket-photos
Un amministratore crea il ruolo Get-pics
di servizio e lo assegna all'EC2istanza Amazon. Il ruolo include una policy di autorizzazione che consente l'accesso in sola lettura al bucket S3 specificato. Include anche una policy di fiducia che consente all'EC2istanza Amazon di assumere il ruolo e recuperare le credenziali temporanee. Quando l'applicazione viene eseguita sull'istanza, può utilizzare le credenziali provvisorie del ruolo per accedere al bucket delle foto. L'amministratore non ha bisogno di concedere allo sviluppatore l'autorizzazione di accedere al bucket delle foto e lo sviluppatore non si trova mai nella necessità di condividere o gestire credenziali.
-
L'amministratore lo utilizza IAM per creare il
Get-pics
ruolo. Nella politica di fiducia del ruolo, l'amministratore specifica che solo le EC2 istanze Amazon possono assumere il ruolo. Nella policy di autorizzazione del ruolo l'amministratore specifica autorizzazioni di sola lettura per il bucketamzn-s3-demo-bucket-photos
. -
Uno sviluppatore avvia un'EC2istanza Amazon e assegna il
Get-pics
ruolo a tale istanza.Nota
Se utilizzi la IAM console, il profilo dell'istanza viene gestito automaticamente ed è per lo più trasparente per te. Tuttavia, se si utilizza il AWS CLI oppure API per creare e gestire il ruolo e l'EC2istanza Amazon, devi creare il profilo dell'istanza e assegnargli il ruolo in fasi separate. Quindi, quando avvii l'istanza dovrai specificare il nome del profilo dell'istanza anziché il nome del ruolo.
-
Quando l'applicazione viene eseguita, ottiene credenziali di sicurezza temporanee dai metadati delle EC2 istanze Amazon, come descritto in Recupero delle credenziali di sicurezza dai metadati delle istanze. Si tratta di credenziali di sicurezza provvisorie che rappresentano il ruolo e hanno un periodo di validità limitato.
Con alcuni AWS SDKs
, lo sviluppatore può utilizzare un provider che gestisce le credenziali di sicurezza temporanee in modo trasparente. (La documentazione per individui AWS SDKsdescrive le funzionalità supportate da quella SDK per la gestione delle credenziali.) In alternativa, l'applicazione può ottenere le credenziali temporanee direttamente dai metadati dell'istanza AmazonEC2. Le credenziali e i valori correlati sono disponibili nella categoria
iam/security-credentials/
(in questo casorole-name
iam/security-credentials/Get-pics
) dei metadati. Se l'applicazione ottiene le credenziali dai metadati dell'istanza, può memorizzarle nella cache. -
Grazie all'utilizzo delle credenziali provvisorie recuperate, l'applicazione può accedere al bucket delle foto. In virtù della policy collegata al ruolo
Get-pics
(Ottieni foto), l'applicazione dispone di autorizzazioni di sola lettura.Le credenziali di sicurezza temporanee disponibili nell'istanza vengono aggiornate automaticamente prima della scadenza, in modo da avere un set valido sempre disponibile. L'applicazione deve solo assicurarsi di ottenere un nuovo set di credenziali dai metadati dell'istanza prima della scadenza di quelle esistenti. È possibile utilizzare il AWS SDKper gestire le credenziali in modo che l'applicazione non debba includere logica aggiuntiva per aggiornare le credenziali. Ad esempio, creando istanze di client con provider di credenziali del profilo dell'istanza. Tuttavia, se l'applicazione ottiene le credenziali di sicurezza provvisorie dai metadati dell'istanza e le memorizza nella cache, è necessario fornire un set di credenziali aggiornato ogni ora o almeno 15 minuti prima della scadenza del set corrente. L'ora di scadenza è indicata nelle informazioni restituite nella categoria
iam/security-credentials/
.role-name
Autorizzazioni necessarie per l'utilizzo dei ruoli con Amazon EC2
Per avviare un'istanza con un ruolo, lo sviluppatore deve disporre dell'autorizzazione per avviare EC2 istanze Amazon e del permesso di trasferire IAM ruoli.
La seguente politica di esempio consente agli utenti di utilizzare AWS Management Console per avviare un'istanza con un ruolo. La policy include wildcards (*
) per consentire a un utente di assegnare qualsiasi ruolo e di eseguire le EC2 azioni Amazon elencate. L'ListInstanceProfiles
azione consente agli utenti di visualizzare tutti i ruoli disponibili in Account AWS.
Esempio di politica che concede a un utente l'autorizzazione a utilizzare la EC2 console Amazon per avviare un'istanza con qualsiasi ruolo
{ "Version": "2012-10-17", "Statement": [ { "Sid": "IamPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ListEc2AndListInstanceProfiles", "Effect": "Allow", "Action": [ "iam:ListInstanceProfiles", "ec2:Describe*", "ec2:Search*", "ec2:Get*" ], "Resource": "*" } ] }
Limitazione dei ruoli che possono essere passati alle EC2 istanze Amazon (utilizzando) PassRole
Puoi utilizzare l'PassRole
autorizzazione per limitare il ruolo che un utente può passare a un'EC2istanza Amazon quando l'utente avvia l'istanza. In questo modo si impedisce all'utente di eseguire le applicazioni che dispongono di più autorizzazioni rispetto a quelle concesse all'utente (ovvero di ottenere privilegi elevati). Ad esempio, immagina che l'utente Alice disponga delle autorizzazioni solo per avviare EC2 istanze Amazon e lavorare con i bucket Amazon S3, ma il ruolo che trasferisce a un'istanza Amazon prevede le autorizzazioni per lavorare con EC2 Amazon DynamoDB. IAM In tal caso, Alice potrebbe essere in grado di avviare l'istanza, accedervi, ottenere credenziali di sicurezza temporanee e quindi eseguire IAM azioni DynamoDB per le quali non è autorizzata.
Per limitare i ruoli che un utente può passare a un'EC2istanza Amazon, crei una policy che consenta l'PassRole
azione. Quindi alleghi la policy all'utente (o a un IAM gruppo a cui appartiene l'utente) che avvierà EC2 le istanze Amazon. Nell'Resource
elemento della policy, elenchi il ruolo o i ruoli che l'utente può trasferire alle EC2 istanze Amazon. Quando l'utente avvia un'istanza e le associa un ruolo, Amazon EC2 verifica se l'utente è autorizzato a passare quel ruolo. Ovviamente, devi anche accertarti che il ruolo passato dall'utente non includa un numero di autorizzazioni maggiore di quello consentito all'utente.
Nota
PassRole
non è un'APIazione nello stesso modo in cui RunInstances
o ListInstanceProfiles
lo è. Si tratta invece di un'autorizzazione che AWS controlla ogni volta che un ruolo ARN viene passato come parametro a un API (o la console lo fa per conto dell'utente). In questo modo, un amministratore ha la possibilità di controllare quali ruoli possono essere passati dai vari utenti. In questo caso, garantisce che all'utente sia consentito assegnare un ruolo specifico a un'EC2istanza Amazon.
Esempio di politica che concede a un utente l'autorizzazione per avviare un'EC2istanza Amazon con un ruolo specifico
La seguente policy di esempio consente agli utenti di utilizzare Amazon EC2 API per avviare un'istanza con un ruolo. L'Resource
elemento specifica l'Amazon Resource Name (ARN) di un ruolo. Specificando ilARN, la policy concede all'utente il permesso di assegnare solo il ruolo. Get-pics
Se, all'avvio di un'istanza, l'utente cerca di specificare un ruolo diverso, l'operazione ha esito negativo. L'utente non è autorizzato a eseguire alcuna istanza, indipendentemente dal passaggio di un ruolo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::
account-id
:role/Get-pics" } ] }
Consentire a un ruolo del profilo dell'istanza di passare a un ruolo in un altro account
Puoi consentire a un'applicazione in esecuzione su un'EC2istanza Amazon di eseguire comandi in un altro account. A tale scopo, devi consentire al ruolo dell'EC2istanza Amazon nel primo account di passare a un ruolo nel secondo account.
Immagina di usarne due Account AWS e vuoi consentire l'esecuzione di un'applicazione in esecuzione su un'EC2istanza Amazon AWS CLI111111111111
. Tale istanza include il ruolo del profilo dell'istanza abcd
che consente all'applicazione di eseguire attività Amazon S3 di sola lettura nel bucket amzn-s3-demo-bucket1
all'interno dello stesso account 111111111111
. Tuttavia, l'applicazione deve anche poter assumere il ruolo tra account efgh
per accedere al bucket amzn-s3-demo-bucket2
di Amazon S3 nell'account 222222222222
.
Il ruolo del profilo dell'EC2istanza abcd
Amazon deve avere la seguente politica di autorizzazioni per consentire all'applicazione di accedere al bucket amzn-s3-demo-bucket1
Amazon S3:
Policy di autorizzazioni del ruolo abcd
111111111111 dell'account
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket1
/*", "arn:aws:s3:::amzn-s3-demo-bucket1
" ] }, { "Sid": "AllowIPToAssumeCrossAccountRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::222222222222:role/efgh" } ] }
Il abcd
ruolo deve affidarsi al EC2 servizio Amazon per assumere il ruolo. A tale scopo, il ruolo abcd
deve disporre della seguente policy di attendibilità:
Policy di attendibilità del ruolo abcd
dell'account 111111111111
{ "Version": "2012-10-17", "Statement": [ { "Sid": "abcdTrustPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"Service": "ec2.amazonaws.com"} } ] }
Supponiamo che il ruolo tra account efgh
consenta attività Amazon S3 di sola lettura nel bucket amzn-s3-demo-bucket2
all'interno dello stesso account 222222222222
. A tale scopo, il ruolo tra account efgh
deve disporre della seguente policy di autorizzazioni:
Policy di autorizzazioni del ruolo efgh
222222222222 dell'account
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountLevelS3Actions", "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:GetAccountPublicAccessBlock", "s3:ListAccessPoints", "s3:ListAllMyBuckets" ], "Resource": "arn:aws:s3:::*" }, { "Sid": "AllowListAndReadS3ActionOnMyBucket", "Effect": "Allow", "Action": [ "s3:Get*", "s3:List*" ], "Resource": [ "arn:aws:s3:::
amzn-s3-demo-bucket2
/*", "arn:aws:s3:::amzn-s3-demo-bucket2
" ] } ] }
Il ruolo efgh
deve consentire al ruolo del profilo dell'istanza abcd
di assumerlo. A tale scopo, il ruolo efgh
deve disporre della seguente policy di attendibilità:
Policy di attendibilità del ruolo efgh
dell'account 222222222222
{ "Version": "2012-10-17", "Statement": [ { "Sid": "efghTrustPolicy", "Effect": "Allow", "Action": "sts:AssumeRole", "Principal": {"AWS": "arn:aws:iam::111111111111:role/abcd"} } ] }
Come si inizia?
Per capire come funzionano i ruoli con EC2 le istanze Amazon, devi utilizzare la IAM console per creare un ruolo, avviare un'EC2istanza Amazon che utilizza quel ruolo e quindi esaminare l'istanza in esecuzione. Puoi prendere in esame i metadati dell'istanza per consultare in che modo le credenziali provvisorie del ruolo vengano rese disponibili a un'istanza. Potrai anche consultare il modo in cui un'applicazione eseguita in un'istanza può utilizzare tale ruolo. Per ottenere ulteriori informazioni, usare le risorse indicate di seguito.
-
IAMTutorial sui ruoli su Amazon EC2 Instances
. Il video collegato mostra come utilizzare un IAM ruolo con un'EC2istanza Amazon per controllare cosa può fare un'applicazione quando viene eseguita sull'istanza. Il video mostra come l'applicazione (scritta nel AWS SDK) può ottenere credenziali di sicurezza temporanee tramite il ruolo. -
SDKprocedure dettagliate. Il AWS SDKla documentazione include procedure dettagliate che mostrano un'applicazione in esecuzione su un'EC2istanza Amazon che utilizza credenziali temporanee per i ruoli per leggere un bucket Amazon S3. Ogni procedura guidata presenta passaggi simili, ma utilizza un linguaggio di programmazione diverso:
-
Configura IAM i ruoli per Amazon EC2 con la SDK versione per Java in AWS SDK for Java Guida per gli sviluppatori
-
Avvia un'EC2istanza Amazon utilizzando il SDK comando for. NETnel AWS SDK for .NET Guida per gli sviluppatori
-
Creazione di un'EC2istanza Amazon con SDK for Ruby nel AWS SDK for Ruby Guida per gli sviluppatori
-
Informazioni correlate
Per ulteriori informazioni sulla creazione di ruoli o ruoli per EC2 le istanze Amazon, consulta le seguenti informazioni:
-
Per ulteriori informazioni sull'uso IAM dei ruoli con EC2 le istanze Amazon, consulta la Amazon EC2 User Guide.
-
Per creare un ruolo, consulta IAMcreazione di ruoli
-
Per ulteriori informazioni sull'utilizzo delle credenziali di sicurezza provvisorie, vedi Credenziali di sicurezza temporanee in IAM.
-
Se lavori con IAM API oCLI, devi creare e gestire i profili delle IAM istanze. Per ulteriori informazioni sui profili delle istanze, consulta Usa i profili di istanza.
-
Per ulteriori informazioni sulle credenziali di sicurezza temporanee per i ruoli nei metadati dell'istanza, consulta Recupero delle credenziali di sicurezza dai metadati dell'istanza nella Amazon User Guide. EC2