Controlla l'utilizzo del modello di lancio di Amazon EC2 nei gruppi di Auto Scaling - Dimensionamento automatico Amazon EC2

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

Controlla l'utilizzo del modello di lancio di Amazon EC2 nei gruppi di Auto Scaling

Dimensionamento automatico Amazon EC2 supporta l'utilizzo di modelli di avvio Amazon EC2 con i tuoi gruppi Auto Scaling. Suggeriamo di permettere agli utenti di creare gruppi Auto Scaling da modelli di avvio, in quanto ciò permette loro di utilizzare le funzionalità più recenti di Dimensionamento automatico Amazon EC2 e Amazon EC2. Ad esempio, per utilizzare una policy di istanze miste gli utenti devono specificare un modello di avvio.

Per permettere agli utenti l'accesso completo per lavorare con le risorse Dimensionamento automatico Amazon EC2, i modelli di avvio e altre risorse EC2 nel proprio account, puoi utilizzare la policy AmazonEC2FullAccess. In alternativa, puoi creare policy IAM personalizzate per concedere agli utenti le autorizzazioni a granulari affinché possano lavorare con modelli di avvio, come descritto in questo argomento.

Una policy di esempio che puoi personalizzare per le tue esigenze

Di seguito viene illustrato un esempio di policy di autorizzazione di base che è possibile personalizzare per uso personale. La policy concede le autorizzazioni per creare, modificare ed eliminare tutti i gruppi con dimensionamento automatico, ma solo se il gruppo utilizza il tag purpose=testing. Quindi concede l'autorizzazione per tutte le operazioni Describe. Poiché le operazioni Describe non supportano le autorizzazioni a livello di risorsa, devi specificarle in un'istruzione separata senza condizioni.

Le identità IAM (utenti o ruoli) che presentano questa policy, dispongono dell'autorizzazione per creare o aggiornare un gruppo con dimensionamento automatico utilizzando un modello di avvio, in quanto dispongono anche dell'autorizzazione per utilizzare l'operazione ec2:RunInstances.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup", "autoscaling:DeleteAutoScalingGroup" ], "Resource": "*", "Condition": { "StringEquals": { "autoscaling:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": [ "autoscaling:Describe*", "ec2:RunInstances" ], "Resource": "*" } ] }

Gli utenti che creano o aggiornano i gruppi con dimensionamento automatico potrebbero richiedere alcune autorizzazioni correlate, come ad esempio:

Queste autorizzazioni per le azioni da completare all'avvio delle istanze vengono verificate quando l'utente interagisce con un gruppo con dimensionamento automatico. Per ulteriori informazioni, consulta Convalida delle autorizzazioni per ec2:RunInstances e iam:PassRole.

I seguenti esempi mostrano le istruzioni di policy che è possibile utilizzare per controllare gli accessi degli utenti IAM per i modelli di avvio.

Richiesta di modelli di avvio che dispongono di un tag specifico

Quando si concedono le autorizzazioni ec2:RunInstances, è possibile specificare che gli utenti possono utilizzare solo i modelli di avvio con tag o ID specifici per limitare le autorizzazioni all'avvio delle istanze con un modello di avvio. Inoltre, è possibile controllare l'AMI e altre risorse alle quali chiunque utilizzi i modelli di avvio può fare riferimento e che può utilizzare per avviare le istanze specificando le autorizzazioni aggiuntive a livello di risorsa per la chiamata RunInstances.

L'esempio seguente limita le autorizzazioni dell'operazione ec2:RunInstances con modelli di avvio che si trovano nella Regione specificata e che dispongono del tag purpose=testing. Consente inoltre agli utenti di accedere alle risorse specificate in un modello di avvio: AMI, tipi di istanze, volumi, coppie di chiavi, interfacce di rete e gruppi di sicurezza.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:launch-template/*", "Condition": { "StringEquals": { "aws:ResourceTag/purpose": "testing" } } }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region::image/ami-*", "arn:aws:ec2:region:account-id:instance/*", "arn:aws:ec2:region:account-id:subnet/*", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/*" ] } ] }

Per ulteriori informazioni sull'utilizzo di policy basate su tag con i modelli di avvio, consulta Controllare l'accesso ai modelli di avvio con autorizzazioni IAM nella Amazon EC2 User Guide.

Richiesta di un modello di avvio e di un numero di versione

È possibile anche utilizzare le autorizzazioni IAM per imporre che un modello di avvio e il numero di versione del modello di avvio debbano essere specificati durante la creazione o l'aggiornamento dei gruppi con dimensionamento automatico.

L'esempio seguente consente agli utenti di creare e aggiornare i gruppi con dimensionamento automatico solo se sono specificati un modello di avvio e il numero di versione del modello di avvio. Se gli utenti con questa policy omettono il numero di versione per specificare $Latest o la versione del modello di avvio $Default, o tentano di utilizzare una configurazione di avvio, l'operazione non riesce.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Bool": { "autoscaling:LaunchTemplateVersionSpecified": "true" } } }, { "Effect": "Deny", "Action": [ "autoscaling:CreateAutoScalingGroup", "autoscaling:UpdateAutoScalingGroup" ], "Resource": "*", "Condition": { "Null": { "autoscaling:LaunchConfigurationName": "false" } } } ] }

Richiesta dell'utilizzo del servizio metadati dell'istanza versione 2 (IMDSv2)

Per una maggiore sicurezza, hai l'opzione di impostare le autorizzazioni degli utenti per richiedere l'utilizzo di un modello di avvio che necessita di IMDSv2. Per ulteriori informazioni, consulta Configurazione del servizio di metadati dell'istanza nella Guida per l'utente di Amazon EC2.

La policy seguente specifica che gli utenti non possono chiamare l'operazione ec2:RunInstances a meno che anche l'istanza non sia impostata per richiedere l'uso di IMDSv2 (indicato da "ec2:MetadataHttpTokens":"required").

{ "Version": "2012-10-17", "Statement": [ { "Sid": "RequireImdsV2", "Effect": "Deny", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:*:*:instance/*", "Condition": { "StringNotEquals": { "ec2:MetadataHttpTokens": "required" } } } ] }
Suggerimento

Per forzare l'avvio di istanze sostitutive di dimensionamento automatico che utilizzano un nuovo modello di avvio o una nuova versione di un modello di avvio con le opzioni di metadati dell'istanza configurate, è possibile avviare un aggiornamento di un’istanza. Per ulteriori informazioni, consulta Aggiornamento di istanze di dimensionamento automatico.

Come limitare l'accesso alle risorse Amazon EC2

L'esempio seguente controlla la configurazione delle istanze che un utente può avviare limitando l'accesso alle risorse Amazon EC2. Per specificare le autorizzazioni a livello di risorsa per le risorse specificate in un modello di avvio, devi includere queste ultime nell'istruzione dell'operazione RunInstances.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": [ "arn:aws:ec2:region:account-id:launch-template/*", "arn:aws:ec2:region::image/ami-04d5cc9b88example", "arn:aws:ec2:region:account-id:subnet/subnet-1a2b3c4d", "arn:aws:ec2:region:account-id:volume/*", "arn:aws:ec2:region:account-id:key-pair/*", "arn:aws:ec2:region:account-id:network-interface/*", "arn:aws:ec2:region:account-id:security-group/sg-903004f88example" ] }, { "Effect": "Allow", "Action": "ec2:RunInstances", "Resource": "arn:aws:ec2:region:account-id:instance/*", "Condition": { "StringEquals": { "ec2:InstanceType": ["t2.micro", "t2.small"] } } } ] }

In questo esempio, ci sono quattro istruzioni:

  • La prima istruzione richiede che gli utenti avviino istanze in una sottorete specifica (subnet-1a2b3c4d), utilizzando un gruppo di sicurezza specifico (sg-903004f88example) e un AMI specifico (ami-04d5cc9b88example). Fornisce agli utenti, inoltre, l'accesso alle risorse specificate in un modello di avvio: interfacce di rete, coppie di chiavi e volumi.

  • La seconda istruzione consente agli utenti di avviare le istanze soltanto tramite i tipi di istanza t2.micro e t2.small per consentire di tenere sotto controllo i costi.

    Tuttavia, tieni presente che al momento non esiste un modo efficace per impedire completamente agli utenti autorizzati ad avviare istanze con un modello di avvio di avviare altri tipi di istanze. Questo perché un tipo di istanza specificato in un modello di avvio può essere sovrascritto per utilizzare tipi di istanza definiti utilizzando la selezione del tipo di istanza basata sugli attributi.

Per un elenco completo delle autorizzazioni a livello di risorse che è possibile utilizzare per controllare la configurazione delle istanze che un utente può avviare, consulta Operazioni, risorse e chiavi di condizione per Amazon EC2 in Informazioni di riferimento sull’autorizzazione del servizio.

Autorizzazioni richieste per assegnare tag a istanze e volumi

L'esempio seguente permette agli utenti di assegnare tag a istanze e volumi alla creazione. Questa policy è necessaria se ci sono tag specificati nel modello di avvio. Per ulteriori informazioni, consulta Concedere l'autorizzazione a taggare le risorse durante la creazione nella Amazon EC2 User Guide.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "arn:aws:ec2:region:account-id:*/*", "Condition": { "StringEquals": { "ec2:CreateAction": "RunInstances" } } } ] }

Autorizzazioni aggiuntive per i modelli di avvio

Devi concedere agli utenti della console autorizzazioni per le operazioni ec2:DescribeLaunchTemplates e ec2:DescribeLaunchTemplateVersions. Senza queste autorizzazioni minime aggiuntive, i dati del modello di avvio e non possono essere caricati nella procedura guidata del gruppo con dimensionamento automatico e gli utenti non possono avviare le istanze utilizzando un modello di avvio tramite la procedura guidata. Puoi specificare le seguenti operazioni aggiuntive nell'elemento Action di un'istruzione della policy IAM.

Convalida delle autorizzazioni per ec2:RunInstances e iam:PassRole

Gli utenti possono specificare quale versione di un modello di avvio utilizza il gruppo con dimensionamento automatico. A seconda delle autorizzazioni, può trattarsi di una versione numerata specifica o versione $Latest o $Default del modello di avvio. Presta particolare attenzione a quest’ultimo caso. Ciò potrebbe avere la precedenza sulle autorizzazioni per ec2:RunInstances e iam:PassRole che intendevi limitare.

Questa sezione spiega lo scenario di utilizzo della versione più recente o predefinita del modello di avvio con un gruppo con dimensionamento automatico.

Quando un utente chiama le API CreateAutoScalingGroup, UpdateAutoScalingGroup, o StartInstanceRefresh, Dimensionamento automatico Amazon EC2 verifica le proprie autorizzazioni in base alla versione del modello di avvio che è la versione più recente o predefinita in quel momento prima di procedere con la richiesta. In questo modo vengono convalidate le autorizzazioni per le azioni da completare all'avvio delle istanze, come le azioni ec2:RunInstances e iam:PassRole. A tale scopo, emettiamo una chiamata Amazon RunInstancesEC2 dry run per verificare se l'utente dispone delle autorizzazioni necessarie per l'azione, senza effettuare effettivamente la richiesta. Quando viene restituita una risposta, essa viene letta da dimensionamento automatico Amazon EC2. Se le autorizzazioni degli utenti non consentono una determinata operazione, il dimensionamento automatico Amazon EC2 invalida la richiesta e restituisce un errore all'utente contenente informazioni sull'autorizzazione mancante.

Una volta completate la verifica iniziale e la richiesta, all'avvio delle istanze, Dimensionamento automatico Amazon EC2 le avvia con la versione più recente o predefinita, anche se è stata modificata, utilizzando le autorizzazioni del suo ruolo collegato al servizio. Ciò significa che un utente che sta utilizzando un modello di avvio può potenzialmente aggiornarlo per passare un ruolo IAM a un'istanza anche se non dispone dell'autorizzazione iam:PassRole.

Usa la chiave autoscaling:LaunchTemplateVersionSpecified condizionale se desideri limitare chi ha accesso ai gruppi di configurazione per l'utilizzo della versione $Latest o $Default. Ciò garantisce che il gruppo con dimensionamento automatico accetti solo una versione numerata specifica quando un utente chiama le API CreateAutoScalingGroup e UpdateAutoScalingGroup. Per un esempio che mostra come aggiungere questa chiave di condizione a una policy IAM, consulta Richiesta di un modello di avvio e di un numero di versione.

Per i gruppi con dimensionamento automatico configurati per utilizzare $Latest o $Default avviare la versione del modello, è consigliabile limitare gli utenti che possono creare e gestire le versioni del modello di avvio, inclusa l'azione ec2:ModifyLaunchTemplate che consente a un utente di specificare la versione predefinita del modello di avvio. Per ulteriori informazioni, consulta Control versioning permissions nella Amazon EC2 User Guide.

Per ulteriori informazioni sulle autorizzazioni per visualizzare, creare ed eliminare i modelli di avvio e le versioni dei modelli di avvio, consulta Controllare l'accesso ai modelli di avvio con le autorizzazioni IAM nella Guida per l'utente di Amazon EC2.

Per ulteriori informazioni sulle autorizzazioni a livello di risorse che è possibile utilizzare per controllare l'accesso alla chiamata RunInstances, consulta Operazioni, risorse e chiavi di condizione per Amazon EC2 nelle Informazioni di riferimento sull’autorizzazione del servizio.