Politiche basate sull'identità per Amazon EC2 - Amazon Elastic Compute Cloud

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

Politiche basate sull'identità per Amazon EC2

Per impostazione predefinita, gli utenti non sono autorizzati a creare o modificare EC2 risorse Amazon o eseguire attività utilizzando Amazon EC2API, la EC2 console Amazon oCLI. Per consentire agli utenti di creare o modificare risorse ed eseguire attività, devi creare IAM politiche che concedano agli utenti l'autorizzazione a utilizzare le risorse e API le azioni specifiche di cui avranno bisogno e quindi allegare tali politiche agli utenti, ai gruppi o ai IAM ruoli che richiedono tali autorizzazioni.

Quando si collega una policy a un utente, un gruppo di utenti o un ruolo, viene concessa o rifiutata agli utenti l'autorizzazione per eseguire attività specificate sulle risorse specificate. Per informazioni più generali sulle IAM politiche, consulta Politiche e autorizzazioni IAM nella Guida per l'IAMutente. Per ulteriori informazioni sulla gestione e la creazione di IAM politiche personalizzate, vedere Gestione delle IAM politiche.

Una IAM policy deve concedere o negare le autorizzazioni per utilizzare una o più azioni AmazonEC2. Deve inoltre specificare le risorse che possono essere utilizzate con l'operazione, vale a dire tutte le risorse oppure, in alcuni casi, risorse specifiche. La policy può anche includere condizioni applicabili alla risorsa.

Per iniziare, puoi verificare se le politiche AWS gestite per Amazon EC2 soddisfano le tue esigenze. Altrimenti, puoi creare le tue politiche personalizzate. Per ulteriori informazioni, consulta AWS politiche gestite per Amazon EC2.

Sintassi delle policy

Una IAM politica è un JSON documento composto da una o più dichiarazioni. Ogni dichiarazione è strutturata come segue.

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition":{ "key":"value" } } } ] }

Una dichiarazione è costituita da diversi elementi:

  • Effect (Effetto): l'elemento effect può essere Allow o Deny. Per impostazione predefinita, gli utenti non dispongono dell'autorizzazione per utilizzare risorse e API azioni, quindi tutte le richieste vengono rifiutate. Un permesso esplicito sostituisce l'impostazione predefinita. Un rifiuto esplicito sovrascrive tutti i consensi.

  • Azione: L'azione è l'APIazione specifica per la quale si concede o si nega l'autorizzazione. Per informazioni su come specificare l'elemento action, consulta Azioni per Amazon EC2.

  • Resource (Risorsa): la risorsa che viene modificata dall'operazione. Alcune EC2 API azioni di Amazon ti consentono di includere nella tua politica risorse specifiche che possono essere create o modificate dall'azione. Specifichi una risorsa utilizzando un Amazon Resource Name (ARN) o utilizzando il carattere jolly (*) per indicare che l'istruzione si applica a tutte le risorse. Per ulteriori informazioni, consulta Autorizzazioni supportate a livello di risorsa per le azioni Amazon EC2 API.

  • Condition: le condizioni sono facoltative. Possono essere utilizzate per controllare quando è in vigore una policy. Per ulteriori informazioni sulla specificazione delle condizioni per AmazonEC2, consultaChiavi di condizione per Amazon EC2.

Per ulteriori informazioni sui requisiti delle politiche, consulta il riferimento alle IAM JSON politiche nella Guida per l'IAMutente. Ad esempio, le dichiarazioni sulle IAM politiche per AmazonEC2, vediEsempi di politiche per controllare l'accesso ad Amazon EC2 API.

Azioni per Amazon EC2

In una dichiarazione IAM politica, puoi specificare qualsiasi API azione da qualsiasi servizio che supportaIAM. Per AmazonEC2, usa il seguente prefisso con il nome dell'APIazione:ec2:. Ad esempio: ec2:RunInstances ed ec2:CreateImage.

Per specificare più operazioni in una sola dichiarazione, separa ciascuna di esse con una virgola come mostrato di seguito:

"Action": ["ec2:action1", "ec2:action2"]

Puoi anche specificare più operazioni tramite caratteri jolly. Ad esempio, puoi specificare tutte le operazioni il cui nome inizia con la parola "Describe" (Descrivi) come segue:

"Action": "ec2:Describe*"
Nota

Attualmente, le azioni Amazon EC2 Describe* non supportano API le autorizzazioni a livello di risorsa. Per ulteriori informazioni sulle autorizzazioni a livello di risorsa per Amazon, consulta. EC2 Politiche basate sull'identità per Amazon EC2

Per specificare tutte le EC2 API azioni di Amazon, usa il carattere jolly * come segue:

"Action": "ec2:*"

Per un elenco delle EC2 azioni Amazon, consulta Azioni definite da Amazon EC2 nel Service Authorization Reference.

Autorizzazioni supportate a livello di risorsa per le azioni Amazon EC2 API

Il concetto di autorizzazioni a livello di risorsa indica la possibilità di specificare le risorse su cui gli utenti sono autorizzati a eseguire operazioni. Amazon EC2 offre un supporto parziale per le autorizzazioni a livello di risorsa. Ciò significa che per determinate EC2 azioni di Amazon, puoi controllare quando gli utenti sono autorizzati a utilizzare tali azioni in base a condizioni che devono essere soddisfatte o a risorse specifiche che gli utenti sono autorizzati a utilizzare. Ad esempio, puoi concedere agli utenti le autorizzazioni per avviare istanze, ma solo di un tipo specifico e solo utilizzando una istanza specifica. AMI

Per specificare una risorsa in una dichiarazione IAM politica, usa il relativo Amazon Resource Name (ARN). Per ulteriori informazioni sulla specificazione del ARN valore, consultaNomi di risorse Amazon (ARNs) per Amazon EC2. Se un'APIazione non supporta una personaARNs, è necessario utilizzare un carattere jolly (*) per specificare che tutte le risorse possono essere influenzate dall'azione.

Per visualizzare le tabelle che identificano EC2 API le azioni di Amazon che supportano le autorizzazioni a livello di risorsa ARNs e le chiavi di condizione che puoi utilizzare in una policy, consulta Azioni, risorse e chiavi di condizione per Amazon. EC2

Tieni presente che puoi applicare autorizzazioni a livello di risorsa basate su tag nelle politiche IAM che utilizzi per le azioni Amazon. EC2 API In questo modo è possibile controllare meglio le risorse che un utente può creare, modificare o utilizzare. Per ulteriori informazioni, consulta Concedi l'autorizzazione a taggare EC2 le risorse Amazon durante la creazione.

Nomi di risorse Amazon (ARNs) per Amazon EC2

Ogni dichiarazione IAM politica si applica alle risorse specificate utilizzando le loroARNs.

An ARN ha la seguente sintassi generale:

arn:aws:[service]:[region]:[account-id]:resourceType/resourcePath
service

Il servizio (ad esempio ec2).

Regione

La regione per la risorsa (ad esempio us-east-1).

account-id

L'ID AWS dell'account, senza trattini (ad esempio,). 123456789012

resourceType

Il tipo di risorsa (ad esempio instance).

resourcePath

Un percorso che identifica la risorsa. Nei percorsi puoi utilizzare il carattere jolly *.

Ad esempio, puoi indicare un'istanza specifica (i-1234567890abcdef0) nella tua dichiarazione usandola ARN come segue.

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/i-1234567890abcdef0"

Puoi specificare tutte le istanze appartenenti a un determinato account utilizzando il carattere jolly * come segue:

"Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*"

Puoi anche specificare tutte le EC2 risorse Amazon che appartengono a un account specifico utilizzando il simbolo* come segue.

"Resource": "arn:aws:ec2:us-east-1:123456789012:*"

Per specificare tutte le risorse, o se un'APIazione specifica non supportaARNs, usa il carattere jolly * nell'Resourceelemento come segue.

"Resource": "*"

Molte EC2 API azioni di Amazon coinvolgono più risorse. Ad esempio, AttachVolume collega un EBS volume Amazon a un'istanza, quindi un utente deve disporre delle autorizzazioni per utilizzare il volume e l'istanza. Per specificare più risorse in una singola istruzione, separale ARNs con virgole, come segue.

"Resource": ["arn1", "arn2"]

Per un elenco delle ARNs EC2 risorse di Amazon, consulta Tipi di risorse definiti da Amazon EC2.

Chiavi di condizione per Amazon EC2

In una dichiarazione di policy, puoi specificare facoltativamente le condizioni che controllano quando questa è in vigore. Ogni condizione contiene una o più coppie chiave/valore. Le chiavi di condizione non distinguono tra maiuscole e minuscole. Abbiamo definito chiavi di condizione AWS globali, oltre a chiavi di condizione aggiuntive specifiche del servizio.

Per un elenco dei codici di condizione specifici del servizio per AmazonEC2, consulta Chiavi di condizione per Amazon. EC2 Amazon implementa EC2 anche le chiavi di condizione AWS globali. Per ulteriori informazioni, consulta la sezione Informazioni disponibili in tutte le richieste nella Guida per l'IAMutente.

Tutte le EC2 azioni di Amazon supportano le chiavi aws:RequestedRegion e ec2:Region condition. Per ulteriori informazioni, consulta Esempio: limitazione dell'accesso a una regione specifica.

Per utilizzare una chiave di condizione nella tua IAM polizza, usa la Condition dichiarazione. Ad esempio, la policy seguente concede agli utenti l'autorizzazione per aggiungere ed eliminare regole in entrata e in uscita per qualsiasi gruppo di sicurezza. Utilizza la chiave ec2:Vpc condition per specificare che queste azioni possono essere eseguite solo su gruppi di sicurezza appartenenti a uno specifico gruppoVPC.

{ "Version": "2012-10-17", "Statement":[{ "Effect":"Allow", "Action": [ "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress"], "Resource": "arn:aws:ec2:region:account:security-group/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account:vpc/vpc-11223344556677889" } } } ] }

Se si specificano più condizioni o più chiavi in una singola condizione, le valutiamo utilizzando un'ANDoperazione logica. Se specifichi una sola condizione con più valori per una sola chiave, valutiamo la condizione utilizzando un'operazione OR logica. Affinché le autorizzazioni vengano concesse, tutte le condizioni devono essere soddisfatte.

Puoi anche utilizzare i segnaposto quando specifichi le condizioni. Per ulteriori informazioni, consulta Elementi IAM della politica: variabili e tag nella Guida IAM per l'utente.

Importante

Molte chiavi di condizione sono specifiche di una risorsa e alcune API azioni utilizzano più risorse. Se scrivi una policy con una chiave di condizione, utilizza l'elemento Resource della dichiarazione per specificare la risorsa a cui viene applicata la chiave di condizione. In caso contrario, la policy potrebbe impedire agli utenti di eseguire operazioni perché il controllo della condizione ha esito negativo per le risorse alle quali non viene applicata la chiave di condizione. Se non desideri specificare una risorsa o se hai scritto l'Actionelemento della tua politica in modo da includere più API azioni, devi utilizzare il tipo di ...IfExists condizione per garantire che la chiave di condizione venga ignorata per le risorse che non la utilizzano. Per ulteriori informazioni, consulta... IfExists Condizioni nella Guida IAM per l'utente.

Chiave di condizione ec2:Attribute

La chiave di condizione ec2:Attribute può essere utilizzata per le condizioni che filtrano l'accesso da un attributo di una risorsa.

Questa chiave condizionale supporta solo proprietà di un tipo di dati primitivo (come stringhe o numeri interi) o AttributeValueoggetti complessi che contengono solo una proprietà Value (come la descrizione o ImdsSupportgli oggetti dell'ModifyImageAttributeAPIazione). La chiave condition non può essere utilizzata con oggetti complessi che contengono più proprietà, come l'LaunchPermissionoggetto di. ModifyImageAttribute

Ad esempio, la politica seguente utilizza la chiave ec2:Attribute/Description condition per filtrare l'accesso in base al complesso oggetto Description dell'ModifyImageAttributeAPIazione. La chiave di condizione consente solo le richieste che modificano la descrizione di un'immagine a Production o Development.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:ModifyImageAttribute", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { "ec2:Attribute/Description": [ "Production", "Development" ] } } } ] }

La politica di esempio seguente utilizza la chiave ec2:Attribute condition per filtrare l'accesso in base alla proprietà primitiva Attribute dell'ModifyImageAttributeAPIazione. La chiave di condizione respinge tutte le richieste che modificano la descrizione di un'immagine.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "ec2:ModifyImageAttribute", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { "ec2:Attribute": "Description" } } } ] }

Chiavi di condizione ec2:ResourceID

Quando si utilizzano le seguenti chiavi di ec2:ResourceID condizione con le API azioni specificate, il valore della chiave di condizione viene utilizzato per specificare la risorsa risultante creata dall'APIazione. ec2:ResourceIDle chiavi di condizione non possono essere utilizzate per specificare una risorsa di origine specificata nella API richiesta. Se usi una delle seguenti chiavi di ec2:ResourceID condizione con una specificaAPI, devi sempre specificare il wildcard (*). Se si specifica un valore diverso, la condizione si risolve sempre in * durante il runtime. Ad esempio, per utilizzare la chiave di ec2:ImageId condizione con CopyImageAPI, è necessario specificare la chiave di condizione come segue:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CopyImage", "Resource": "arn:aws:ec2:us-east-1::image/ami-*", "Condition": { "StringEquals": { ec2:ImageID": "*" } } } ] }

Si consiglia di evitare di utilizzare questi tasti di condizione con API le seguenti azioni:

  • ec2:DhcpOptionsIDCreateDhcpOptions

  • ec2:ImageIDCopyImageCreateImage,ImportImage, e RegisterImage

  • ec2:InstanceIDRunInstances e ImportInstance

  • ec2:InternetGatewayIDCreateInternetGateway

  • ec2:NetworkAclIDCreateNetworkAcl

  • ec2:NetworkInterfaceIDCreateNetworkInterface

  • ec2:PlacementGroupNameCreatePlacementGroup

  • ec2:RouteTableIDCreateRouteTable

  • ec2:SecurityGroupIDCreateSecurityGroup

  • ec2:SnapshotIDCopySnapshotCreateSnapshot,CreateSnapshots, e ImportSnapshots

  • ec2:SubnetIDCreateSubnet

  • ec2:VolumeIDCreateVolume e ImportVolume

  • ec2:VpcIDCreateVpc

  • ec2:VpcPeeringConnectionIDCreateVpcPeeringConnection

Per filtrare l'accesso in base a una risorsa specificaIDs, si consiglia di utilizzare l'elemento di Resource policy come segue.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CopyImage", "Resource": "arn:aws:ec2:us-east-1::image/ami-01234567890abcdef" } ] }

Chiave di condizione ec2:SourceInstanceARN

Viene utilizzato ec2:SourceInstanceARN per specificare ARN l'istanza da cui viene effettuata una richiesta. Si tratta di una chiave di condizione AWS globale, il che significa che puoi utilizzarla con servizi diversi da AmazonEC2. Per un esempio di policy, consulta Esempio: consentire a un'istanza specifica di visualizzare le risorse in altri AWS servizi.

Controlla l'accesso utilizzando l'accesso basato sugli attributi

Quando crei una IAM policy che concede agli utenti il permesso di usare EC2 le risorse, puoi includere informazioni sui tag nell'Conditionelemento della policy per controllare l'accesso basato sui tag. Questo è noto come controllo degli accessi basato sugli attributi (). ABAC ABACoffre un controllo migliore sulle risorse che un utente può modificare, utilizzare o eliminare. Per ulteriori informazioni, consulta A cosa ABAC serve AWS?

Ad esempio, è possibile creare una policy che consente agli utenti di terminare un'istanza ma che neghi l'operazione se l'istanza presenta il tag environment=production. A tale scopo, è possibile utilizzare la chiave di condizione aws:ResourceTag per consentire o negare l'accesso alla risorsa in base ai tag collegati alla risorsa.

"StringEquals": { "aws:ResourceTag/environment": "production" }

Per sapere se un'EC2APIazione di Amazon supporta il controllo dell'accesso tramite la chiave di aws:ResourceTag condizione, consulta Azioni, risorse e chiavi di condizione per Amazon EC2. Tieni a mente che le operazioni Describe non supportano le autorizzazioni a livello di risorsa, pertanto è necessario specificarle in una dichiarazione separata senza condizioni.

Ad esempio, consulta IAM le politicheEsempi di politiche per controllare l'accesso ad Amazon EC2 API.

Se consenti o neghi a un utente l'accesso a risorse in base ai tag, devi considerare esplicitamente di negare agli utenti la possibilità di aggiungere o rimuovere tali tag dalle stesse risorse. In caso contrario, un utente può eludere le restrizioni e ottenere l'accesso a una risorsa modificandone i tag.

Concedere autorizzazioni a utenti, gruppi e ruoli

Per fornire l'accesso, aggiungi autorizzazioni ai tuoi utenti, gruppi o ruoli:

Verificare che gli utenti dispongano delle autorizzazioni necessarie

Dopo aver creato una IAM politica, ti consigliamo di verificare se concede agli utenti le autorizzazioni per utilizzare le API azioni e le risorse particolari di cui hanno bisogno prima di metterla in produzione.

Innanzitutto, crea un utente a scopo di test, quindi allega la IAM policy che hai creato all'utente di prova. In seguito, effettua una richiesta come utente di test.

Se l'EC2azione Amazon che stai testando crea o modifica una risorsa, devi effettuare la richiesta utilizzando il DryRun parametro (o eseguire il AWS CLI comando con l'--dry-runopzione). In questo caso, la chiamata completa la verifica dell'autorizzazione, ma non completa l'operazione. Ad esempio, puoi controllare se l'utente è in grado di interrompere una determinata istanza senza effettivamente terminarla. Se l'utente del test dispone delle autorizzazioni necessarie, la richiesta restituisce DryRunOperation, altrimenti restituisce UnauthorizedOperation.

Se la policy non concede all'utente le autorizzazioni previste oppure è eccessivamente permissiva, puoi modificarla in base alle esigenze e ripetere il test fino a ottenere i risultati desiderati.

Importante

La propagazione delle modifiche alla policy e la loro validità potrebbe richiedere alcuni minuti. Ti consigliamo quindi di attendere 5 minuti prima di effettuare il test degli aggiornamenti delle policy.

Se una verifica dell'autorizzazione ha esito negativo, la richiesta restituisce un messaggio codificato con informazioni di diagnostica. Il messaggio può essere decodificato tramite l'operazione DecodeAuthorizationMessage. Per ulteriori informazioni, consulta DecodeAuthorizationMessageil AWS Security Token Service APIReference e decode-authorization-messageil AWS CLI Command Reference.