Get Hands-on with Amazon EKS - Workshop Event Series
Whether you're taking your first steps with Kubernetes or you're an experienced practitioner looking to sharpen your skills, our Amazon EKS workshop series delivers practical, real-world experience that moves you forward. Learn directly from AWS solutions architects and EKS specialists through hands-on sessions designed to build your confidence with Kubernetes. Register now and start building with Amazon EKS!
Come posso creare una policy IAM per concedere esplicitamente le autorizzazioni per creare e gestire istanze EC2 in un VPC specificato con tag?
Desidero creare una policy AWS Identity and Access Management (AWS IAM) che conceda esplicitamente le autorizzazioni alle identità IAM per gestire le istanze Amazon Elastic Compute Cloud (Amazon EC2) in un cloud privato virtuale (VPC).
Breve descrizione
La policy IAM deve limitare le autorizzazioni dell'identità IAM per gestire le istanze nel VPC con tag.
Amazon EC2 fornisce autorizzazioni parziali a livello di risorsa, ma è possibile avviare diverse azioni, risorse e condizioni a livello di servizio. Per controllare l'accesso alle risorse EC2, utilizza i tag delle risorse.
Risoluzione
Crea una policy che conceda le autorizzazioni per avviare le istanze nel VPC ma limiti le autorizzazioni dell'identità IAM per la gestione delle istanze. Per limitare la gestione delle istanze, utilizza la condizione della policy ec2:ResourceTag.
Crea una policy gestita da collegare alle identità IAM che avviano le istanze
Completa i seguenti passaggi:
-
Apri la console IAM.
-
Scegli Policy, quindi scegli Crea policy.
-
Scegli la scheda JSON, quindi inserisci la seguente policy personalizzata:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GrantIAMPassRoleOnlyForEC2", "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": [ "arn:aws:iam::account_number:role/role_name", "arn:aws:iam::account_number:role/role_nameE" ], "Condition": { "StringEquals": { "iam:PassedToService": "ec2.amazonaws.com" } } }, { "Sid": "ReadOnlyEC2WithNonResource", "Action": [ "ec2:Describe*", "iam:ListInstanceProfiles" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "ModifyingEC2WithNonResource", "Action": [ "ec2:CreateKeyPair", "ec2:CreateSecurityGroup" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "RunInstancesWithTagRestrictions", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:a:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "aws:RequestTag/TAG-KEY": "tag_value" } } }, { "Sid": "RemainingRunInstancePermissionsNonResource", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:REGION::image/*", "arn:aws:ec2:REGION::snapshot/*", "arn:aws:ec2:region:account_number:network-interface/*", "arn:aws:ec2:region:account_number:key-pair/*", "arn:aws:ec2:region:account_number:security-group/*" ] }, { "Sid": "EC2RunInstancesVpcSubnet", "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account_number:subnet/*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account_number:vpc/VPC-ID" } } }, { "Sid": "EC2VpcNonResourceSpecificActions", "Effect": "Allow", "Action": [ "ec2:DeleteNetworkAcl", "ec2:DeleteNetworkAclEntry", "ec2:DeleteRoute", "ec2:DeleteRouteTable", "ec2:AuthorizeSecurityGroupEgress", "ec2:AuthorizeSecurityGroupIngress", "ec2:RevokeSecurityGroupEgress", "ec2:RevokeSecurityGroupIngress", "ec2:DeleteSecurityGroup", "ec2:CreateNetworkInterfacePermission", "ec2:CreateRoute", "ec2:UpdateSecurityGroupRuleDescriptionsEgress", "ec2:UpdateSecurityGroupRuleDescriptionsIngress" ], "Resource": "*", "Condition": { "StringEquals": { "ec2:Vpc": "arn:aws:ec2:region:account_number:vpc/VPCID" } } }, { "Sid": "AllowInstanceActionsTagBased", "Effect": "Allow", "Action": [ "ec2:RebootInstances", "ec2:StopInstances", "ec2:TerminateInstances", "ec2:StartInstances", "ec2:AttachVolume", "ec2:DetachVolume", "ec2:AssociateIamInstanceProfile", "ec2:DisassociateIamInstanceProfile", "ec2:GetConsoleScreenshot", "ec2:ReplaceIamInstanceProfileAssociation" ], "Resource": [ "arn:aws:ec2:region:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/TAG-KEY": "Tag_key" } } }, { "Sid": "AllowCreateTagsOnlyLaunching", "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": [ "arn:aws:ec2:region:account_number:instance/*", "arn:aws:ec2:region:account_number:volume/*" ], "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }Nota: sostituisci i parametri account_number, region,tag_key, tag_value,VPC-ID e role_name con i tuoi valori.
-
Scegli Verifica policy, quindi inserisci un nome.
-
Scegli Crea policy.
Nota: alcuni articoli devono essere sostituiti con risorse specifiche del tuo ambiente. Per ulteriori informazioni, consulta Identificare le risorse AWS con i nomi delle risorse Amazon (ARN).
Collega la policy a un gruppo
Completa i seguenti passaggi:
- Apri la console IAM.
- Nel pannello di navigazione, scegli Gruppi di utenti, quindi seleziona il nome del gruppo.
Nota: è consigliabile collegare le policy ai gruppi di utenti e successivamente aggiungere l'utente al gruppo appropriato. - Scegli Aggiungi autorizzazioni, quindi scegli Collega policy.
- Inserisci il nome della policy, quindi sceglila.
- Scegli Collega policy.
Quando colleghi la policy personalizzata, l'identità IAM può accedere alla Console di gestione AWS. L'identità IAM può quindi aprire la dashboard EC2 e avviare un'istanza EC2. L'identità IAM deve specificare la sottorete, il VPC e il tag per avviare l'istanza EC2.
La condizione ec2:ResourceTags limita le seguenti azioni:
- Avviare un'istanza.
- Interrompere un'istanza.
- Riavviare un'istanza.
- Terminare un'istanza.
- Collegare un volume all'istanza.
- Scollegare un volume dall'istanza.
- Dissociare il profilo dell'istanza IAM dall'istanza.
- Associare un profilo dell'istanza.
- Sostituire l'associazione del profilo dell'istanza IAM per l'istanza.
- Acquisire uno screenshot dell'istanza sulla console.
La policy limita le seguenti azioni rispetto al VPC:
- Eliminare gruppi di sicurezza.
- Creare ed eliminare route.
- Eliminare tabelle di routing.
- Eliminare liste di controllo degli accessi alla rete (ACL).
- Eliminare voci di ACL.
- Autorizzare o revocare regole di ingresso e uscita dei gruppi di sicurezza.
- Creare autorizzazioni per l'interfaccia di rete.
- Aggiornare la descrizione dei gruppi di sicurezza per le regole di ingresso e uscita.
Informazioni correlate
- Argomenti
- Security, Identity, & Compliance
- Lingua
- Italiano
