IAMPolitiche di esempio per Amazon EBS - Amazon EBS

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

IAMPolitiche di esempio per Amazon EBS

Per impostazione predefinita, gli utenti e i ruoli non dispongono dell'autorizzazione per creare o modificare EBS risorse Amazon. Inoltre, non possono eseguire attività utilizzando AWS Management Console, AWS Command Line Interface (AWS CLI) o AWS API. Per concedere agli utenti il permesso di eseguire azioni sulle risorse di cui hanno bisogno, un IAM amministratore può creare IAM policy. L'amministratore può quindi aggiungere le IAM politiche ai ruoli e gli utenti possono assumerli.

Per informazioni su come creare una politica IAM basata sull'identità utilizzando questi documenti di esempio, consulta Create JSON IAM policy (console) nella Guida per l'IAMutente.

Per dettagli sulle azioni e sui tipi di risorse definiti da AmazonEBS, incluso il formato di ARNs per ogni tipo di risorsa, consulta Actions, Resources and Condition Keys for Amazon Elastic Block Store nel Service Authorization Reference.

Best practice per le policy

Le politiche basate sull'identità determinano se qualcuno può creare, accedere o eliminare EBS risorse Amazon nel tuo account. Queste azioni possono comportare costi aggiuntivi per l' Account AWS. Quando crei o modifichi policy basate su identità, segui queste linee guida e raccomandazioni:

  • Inizia con le policy AWS gestite e passa alle autorizzazioni con privilegi minimi: per iniziare a concedere autorizzazioni a utenti e carichi di lavoro, utilizza le politiche gestite che concedono le autorizzazioni per molti casi d'uso comuni.AWS Sono disponibili nel tuo. Account AWS Ti consigliamo di ridurre ulteriormente le autorizzazioni definendo politiche gestite dai AWS clienti specifiche per i tuoi casi d'uso. Per ulteriori informazioni, consulta le politiche AWS gestite o le politiche AWS gestite per le funzioni lavorative nella Guida per l'IAMutente.

  • Applica le autorizzazioni con privilegi minimi: quando imposti le autorizzazioni con le IAM politiche, concedi solo le autorizzazioni necessarie per eseguire un'attività. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Per ulteriori informazioni sull'utilizzo per applicare le autorizzazioni, consulta Politiche e autorizzazioni nella Guida IAM per l'utente. IAM IAM

  • Utilizza le condizioni nelle IAM politiche per limitare ulteriormente l'accesso: puoi aggiungere una condizione alle tue politiche per limitare l'accesso ad azioni e risorse. Ad esempio, puoi scrivere una condizione di policy per specificare che tutte le richieste devono essere inviate utilizzandoSSL. È inoltre possibile utilizzare condizioni per concedere l'accesso alle azioni di servizio se vengono utilizzate tramite uno specifico Servizio AWS, ad esempio AWS CloudFormation. Per ulteriori informazioni, consulta Elementi IAM JSON della politica: Condizione nella Guida IAM per l'utente.

  • Usa IAM Access Analyzer per convalidare IAM le tue policy e garantire autorizzazioni sicure e funzionali: IAM Access Analyzer convalida le policy nuove ed esistenti in modo che aderiscano al linguaggio delle IAM policy () e alle best practice. JSON IAM IAMAccess Analyzer fornisce più di 100 controlli delle politiche e consigli pratici per aiutarti a creare policy sicure e funzionali. Per ulteriori informazioni, consulta Convalida delle politiche con IAM Access Analyzer nella Guida per l'utente. IAM

  • Richiedi l'autenticazione a più fattori (MFA): se hai uno scenario che richiede l'utilizzo di IAM utenti o di un utente root Account AWS, attiva questa opzione MFA per una maggiore sicurezza. Per richiedere MFA quando vengono richiamate API le operazioni, aggiungi MFA delle condizioni alle tue politiche. Per ulteriori informazioni, consulta Secure API access with MFA nella Guida IAM per l'utente.

Per ulteriori informazioni sulle best practice inIAM, consulta la sezione Procedure consigliate in materia di sicurezza IAM nella Guida IAM per l'utente.

Consenti agli utenti di utilizzare la EBS console Amazon

Per accedere alla console Amazon Elastic Block Store, devi disporre di un set minimo di autorizzazioni. Queste autorizzazioni devono consentirti di elencare e visualizzare i dettagli sulle EBS risorse Amazon presenti nel tuo Account AWS. Se crei una policy basata sull'identità più restrittiva rispetto alle autorizzazioni minime richieste, la console non funzionerà nel modo previsto per le entità (utenti o ruoli) associate a tale policy.

Non è necessario concedere autorizzazioni minime per la console agli utenti che effettuano chiamate solo verso il AWS CLI o il. AWS API Consenti invece l'accesso solo alle azioni che corrispondono all'APIoperazione che stanno cercando di eseguire.

Per garantire che utenti e ruoli possano ancora utilizzare la EBS console Amazon, allega anche la policy Amazon EBS ConsoleAccess o la policy ReadOnly AWS gestita alle entità. Per ulteriori informazioni, consulta Aggiungere autorizzazioni a un utente nella Guida per l'IAMutente.

Consentire agli utenti di visualizzare le loro autorizzazioni

Questo esempio mostra come è possibile creare una politica che consenta IAM agli utenti di visualizzare le politiche in linea e gestite allegate alla loro identità utente. Questa politica include le autorizzazioni per completare questa azione sulla console o utilizzando o a livello di codice. AWS CLI AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Consenti agli utenti di lavorare con i volumi

Esempio: collegamento e scollegamento di volumi

Quando un'APIazione richiede che un chiamante specifichi più risorse, è necessario creare una dichiarazione politica che consenta agli utenti di accedere a tutte le risorse necessarie. Se devi utilizzare un elemento Condition con una o più di tali risorse, devi creare più istruzioni come mostrato in questo esempio.

La seguente politica consente agli utenti di allegare volumi con il tag "volume_user= iam-user-name" alle istanze con il tag "department=dev«e di scollegare tali volumi da tali istanze. Se allegate questa policy a un IAM gruppo, la variabile aws:username policy concede a ogni utente del gruppo il permesso di allegare o scollegare i volumi dalle istanze con un tag denominato volume_user che ha come valore il proprio nome utente.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:us-east-1:account-id:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/department": "dev" } } }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:us-east-1:account-id:volume/*", "Condition": { "StringEquals": { "aws:ResourceTag/volume_user": "${aws:username}" } } } ] }

Esempio: creazione di un volume

La seguente politica consente agli utenti di utilizzare l'azione CreateVolumeAPI. Gli utenti possono creare un volume soltanto se quest'ultimo è crittografato e se la sua dimensione non supera 20 GiB.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateVolume" ], "Resource": "arn:aws:ec2:us-east-1:account-id:volume/*", "Condition":{ "NumericLessThan": { "ec2:VolumeSize" : "20" }, "Bool":{ "ec2:Encrypted" : "true" } } } ] }

Esempio: creazione di un volume con tag

La policy seguente include la chiave di condizione aws:RequestTag che richiede agli utenti di applicare dei tag ai volumi creati con i tag costcenter=115 e stack=prod. Se gli utenti non indicano questi tag specifici, o se non specificano nessun tag, la richiesta non riesce.

Per le operazioni di creazione delle risorse in cui vengono applicati i tag, gli utenti devono disporre anche delle autorizzazioni per utilizzare l'operazione CreateTags. La seconda istruzione utilizza la chiave di condizione ec2:CreateAction per consentire agli utenti di creare i tag soltanto nel contesto di CreateVolume. Gli utenti non possono aggiungere tag sui volumi o altre risorse esistenti.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateTaggedVolumes", "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "arn:aws:ec2:us-east-1:account-id:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/costcenter": "115", "aws:RequestTag/stack": "prod" } } }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:us-east-1:account-id:volume/*", "Condition": { "StringEquals": { "ec2:CreateAction" : "CreateVolume" } } } ] }

La policy seguente consente agli utenti di creare un volume senza dover specificare i tag. L'operazione CreateTags viene valutata soltanto se i tag vengono specificati nella richiesta CreateVolume. Se gli utenti specificano dei tag, questi ultimi devono essere purpose=test. Non sono consentiti altri tag nella richiesta.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateVolume", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:us-east-1:account-id:volume/*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "test", "ec2:CreateAction" : "CreateVolume" }, "ForAllValues:StringEquals": { "aws:TagKeys": "purpose" } } } ] }

Esempio: lavorare con i volumi utilizzando la EC2 console Amazon

La seguente politica concede agli utenti l'autorizzazione a visualizzare e creare volumi e a collegare e scollegare volumi a istanze specifiche utilizzando la console Amazon. EC2

Gli utenti possono collegare qualsiasi volume alle istanze con il tag "purpose=test" e scollegare volumi da tali istanze. Per allegare un volume utilizzando la EC2 console Amazon, è utile che gli utenti abbiano l'autorizzazione a utilizzare l'ec2:DescribeInstancesazione, in quanto ciò consente loro di selezionare un'istanza da un elenco precompilato nella finestra di dialogo Allega volume. Tuttavia, consente inoltre di visualizzare tutte le istanze nella pagina Instances (Istanze) nella console, pertanto è possibile omettere questa operazione.

Nella prima istruzione, l'operazione ec2:DescribeAvailabilityZones è necessaria per consentire a un utente di selezionare una zona di disponibilità durante la creazione di un volume.

Gli utenti non possono applicare tag ai volumi creati (durante o dopo la creazione dei volumi).

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeAvailabilityZones", "ec2:CreateVolume", "ec2:DescribeInstances" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:region:111122223333:instance/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "test" } } }, { "Effect": "Allow", "Action": [ "ec2:AttachVolume", "ec2:DetachVolume" ], "Resource": "arn:aws:ec2:region:111122223333:volume/*" } ] }

Consenti agli utenti di lavorare con le istantanee

Di seguito sono riportati alcuni esempi di policy sia per CreateSnapshot (point-in-timeistantanee di un EBS volume) che per CreateSnapshots (istantanee multivolume).

Esempio: creazione di uno snapshot

La seguente politica consente ai clienti di utilizzare l'azione. CreateSnapshotAPI Il cliente può creare snapshot solo se il volume è crittografato e se le dimensioni del volume non superano 20 GiB.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1::snapshot/*" }, { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1:account-id:volume/*", "Condition":{ "NumericLessThan":{ "ec2:VolumeSize":"20" }, "Bool":{ "ec2:Encrypted":"true" } } } ] }

Esempio: creazione di snapshot

La seguente politica consente ai clienti di utilizzare l'CreateSnapshotsAPIazione. Il cliente può creare istantanee solo se tutti i volumi dell'istanza sono GP2 digitati.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":[ "arn:aws:ec2:us-east-1::snapshot/*", "arn:aws:ec2:*:*:instance/*" ] }, { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1:*:volume/*", "Condition":{ "StringLikeIfExists":{ "ec2:VolumeType":"gp2" } } } ] }

Esempio: creazione di uno snapshot con tag

La policy seguente include la chiave di condizione aws:RequestTag che richiede ai clienti di applicare i tag costcenter=115 e stack=prod alle nuove snapshot. Se gli utenti non indicano questi tag specifici, o se non specificano nessun tag, la richiesta non riesce.

Per le operazioni di creazione delle risorse in cui vengono applicati i tag, i clienti devono disporre anche delle autorizzazioni per utilizzare l'operazione CreateTags. La terza istruzione utilizza la chiave di condizione ec2:CreateAction per consentire ai clienti di creare i tag soltanto nel contesto di CreateSnapshot. I clienti non possono aggiungere tag sui volumi o altre risorse esistenti.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1:account-id:volume/*" }, { "Sid":"AllowCreateTaggedSnapshots", "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/costcenter":"115", "aws:RequestTag/stack":"prod" } } }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "ec2:CreateAction":"CreateSnapshot" } } } ] }

Esempio: creazione di snapshot di più volumi con tag

La policy seguente include la chiave di condizione aws:RequestTag che richiede ai clienti di applicare i tag costcenter=115 e stack=prod quando viene creata una serie di snapshot di più volumi. Se gli utenti non indicano questi tag specifici, o se non specificano nessun tag, la richiesta non riesce.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":[ "arn:aws:ec2:us-east-1::snapshot/*", "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ] }, { "Sid":"AllowCreateTaggedSnapshots", "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/costcenter":"115", "aws:RequestTag/stack":"prod" } } }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "ec2:CreateAction":"CreateSnapshots" } } } ] }

La policy seguente consente ai clienti di creare una snapshot senza dover specificare i tag. L'operazione CreateTags viene valutata soltanto se i tag vengono specificati nella richiesta CreateSnapshot o CreateSnapshots. I tag possono essere omessi nella richiesta. Se viene specificato, il tag deve essere purpose=test. Non sono consentiti altri tag nella richiesta.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/purpose":"test", "ec2:CreateAction":"CreateSnapshot" }, "ForAllValues:StringEquals":{ "aws:TagKeys":"purpose" } } } ] }

La policy seguente consente ai clienti di creare una snapshot di più volumi senza specificare tag. L'operazione CreateTags viene valutata soltanto se i tag vengono specificati nella richiesta CreateSnapshot o CreateSnapshots. I tag possono essere omessi nella richiesta. Se viene specificato, il tag deve essere purpose=test. Non sono consentiti altri tag nella richiesta.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"*" }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/purpose":"test", "ec2:CreateAction":"CreateSnapshots" }, "ForAllValues:StringEquals":{ "aws:TagKeys":"purpose" } } } ] }

La policy seguente consente la creazione di snapshot soltanto se il volume di origine dispone del tag User:username per il cliente e se la snapshot stessa dispone dei tag Environment:Dev e User:username. I clienti possono aggiungere altri tag allo snapshot.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1:account-id:volume/*", "Condition":{ "StringEquals":{ "aws:ResourceTag/User":"${aws:username}" } } }, { "Effect":"Allow", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/Environment":"Dev", "aws:RequestTag/User":"${aws:username}" } } }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*" } ] }

La policy seguente per CreateSnapshots consente la creazione di snapshot soltanto se il volume di origine dispone del tag User:username per il cliente e se la snapshot stessa dispone dei tag Environment:Dev e User:username.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1:*:instance/*", }, { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1:account-id:volume/*", "Condition":{ "StringEquals":{ "aws:ResourceTag/User":"${aws:username}" } } }, { "Effect":"Allow", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:RequestTag/Environment":"Dev", "aws:RequestTag/User":"${aws:username}" } } }, { "Effect":"Allow", "Action":"ec2:CreateTags", "Resource":"arn:aws:ec2:us-east-1::snapshot/*" } ] }

La policy seguente consente l'eliminazione di una snapshot soltanto se quest'ultima dispone del tag User:username per il cliente.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:DeleteSnapshot", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:ResourceTag/User":"${aws:username}" } } } ] }

La policy seguente consente ai clienti di creare una snapshot ma rifiuta l'operazione se la snapshot in fase di creazione dispone della chiave di tag value=stack.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":[ "ec2:CreateSnapshot", "ec2:CreateTags" ], "Resource":"*" }, { "Effect":"Deny", "Action":"ec2:CreateSnapshot", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "ForAnyValue:StringEquals":{ "aws:TagKeys":"stack" } } } ] }

La policy seguente consente ai clienti di creare snapshot ma rifiuta l'operazione se gli snapshot in fase di creazione dispongono della chiave di tag value=stack.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":[ "ec2:CreateSnapshots", "ec2:CreateTags" ], "Resource":"*" }, { "Effect":"Deny", "Action":"ec2:CreateSnapshots", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "ForAnyValue:StringEquals":{ "aws:TagKeys":"stack" } } } ] }

La policy seguente consente di combinare più operazioni in una singola policy. Puoi creare una snapshot (nel contesto di CreateSnapshots) solo quando viene creata nella regione us-east-1. Puoi creare snapshot (nel contesto di CreateSnapshots) solo quando vengono create nella regione us-east-1 e quando il tipo di istanza è t2*.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":[ "ec2:CreateSnapshots", "ec2:CreateSnapshot", "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:snapshot/*", "arn:aws:ec2:*:*:volume/*" ], "Condition":{ "StringEqualsIgnoreCase": { "ec2:Region": "us-east-1" }, "StringLikeIfExists": { "ec2:InstanceType": ["t2.*"] } } } ] }

Esempio: copia di snapshot

Le autorizzazioni a livello di risorsa specificate per l'CopySnapshotazione si applicano solo alla nuova istantanea. Non possono essere specificate per lo snapshot di origine.

La policy di esempio seguente consente alle entità principali di copiare snapshot solo se il nuovo snapshot viene creato con la chiave tag purpose e il valore del tag production (purpose=production).

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCopySnapshotWithTags", "Effect": "Allow", "Action": "ec2:CopySnapshot", "Resource": "arn:aws:ec2:*:account-id:snapshot/*", "Condition": { "StringEquals": { "aws:RequestTag/purpose": "production" } } } ] }

Esempio: modifica delle impostazioni di autorizzazione per gli snapshot

La seguente politica consente la modifica di un'istantanea solo se l'istantanea è contrassegnata con, dove User:username username è il nome utente dell' AWS account del cliente. Se questa condizione non viene rispettata, la richiesta non riesce.

{ "Version":"2012-10-17", "Statement": [ { "Effect":"Allow", "Action":"ec2:ModifySnapshotAttribute", "Resource":"arn:aws:ec2:us-east-1::snapshot/*", "Condition":{ "StringEquals":{ "aws:ResourceTag/user-name":"${aws:username}" } } } ] }