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.
Indice
- Sintassi delle policy
- Azioni per Amazon EC2
- Autorizzazioni supportate a livello di risorsa per le azioni Amazon EC2 API
- Nomi di risorse Amazon (ARNs) per Amazon EC2
- Chiavi di condizione per Amazon EC2
- Controlla l'accesso utilizzando l'accesso basato sugli attributi
- Concedere autorizzazioni a utenti, gruppi e ruoli
- Verificare che gli utenti dispongano delle autorizzazioni necessarie
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
oDeny
. 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'Resource
elemento 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'Action
elemento 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.
Chiavi di condizione
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:
condizione con le API azioni specificate, il valore della chiave di condizione viene utilizzato per specificare la risorsa risultante creata dall'APIazione. Resource
IDec2:
le chiavi di condizione non possono essere utilizzate per specificare una risorsa di origine specificata nella API richiesta. Se usi una delle seguenti chiavi di Resource
IDec2:
condizione con una specificaAPI, devi sempre specificare il wildcard (Resource
ID*
). 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:DhcpOptionsID
–CreateDhcpOptions
-
ec2:ImageID
—CopyImage
CreateImage
,ImportImage
, eRegisterImage
-
ec2:InstanceID
—RunInstances
eImportInstance
-
ec2:InternetGatewayID
–CreateInternetGateway
-
ec2:NetworkAclID
–CreateNetworkAcl
-
ec2:NetworkInterfaceID
–CreateNetworkInterface
-
ec2:PlacementGroupName
–CreatePlacementGroup
-
ec2:RouteTableID
–CreateRouteTable
-
ec2:SecurityGroupID
–CreateSecurityGroup
-
ec2:SnapshotID
—CopySnapshot
CreateSnapshot
,CreateSnapshots
, eImportSnapshots
-
ec2:SubnetID
–CreateSubnet
-
ec2:VolumeID
—CreateVolume
eImportVolume
-
ec2:VpcID
–CreateVpc
-
ec2:VpcPeeringConnectionID
–CreateVpcPeeringConnection
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'Condition
elemento 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:
-
Utenti e gruppi in AWS IAM Identity Center:
Crea un set di autorizzazioni. Segui le istruzioni riportate nella pagina Create a permission set (Creazione di un set di autorizzazioni) nella Guida per l'utente di AWS IAM Identity Center .
-
Utenti gestiti IAM tramite un provider di identità:
Crea un ruolo per la federazione delle identità. Segui le istruzioni riportate in Creazione di un ruolo per un provider di identità di terze parti (federazione) nella Guida per l'IAMutente.
-
IAMutenti:
-
Crea un ruolo che l'utente possa assumere. Segui le istruzioni riportate nella sezione Creazione di un ruolo per un IAM utente nella Guida per l'IAMutente.
-
(Non consigliato) Collega una policy direttamente a un utente o aggiungi un utente a un gruppo di utenti. Segui le istruzioni riportate in Aggiungere autorizzazioni a un utente (console) nella Guida per l'IAMutente.
-
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-run
opzione). 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.