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 CloudFormation l'accesso con AWS Identity and Access Management
Con AWS Identity and Access Management (IAM), puoi creare utenti IAM e controllarne l'accesso a risorse specifiche del tuo Account AWS. Quando usi IAM, puoi controllare cosa possono fare gli utenti CloudFormation, ad esempio se possono visualizzare modelli di stack, creare stack o eliminare stack.
Oltre CloudFormation alle azioni specifiche, puoi gestire i AWS servizi e le risorse disponibili per ogni utente. In questo modo, puoi controllare a quali risorse gli utenti possono accedere quando le utilizzano CloudFormation. Ad esempio, puoi specificare quali utenti possono creare istanze Amazon, terminare EC2 istanze di database o effettuare aggiornamenti. VPCs Le stesse autorizzazioni si applicano ogni volta che vengono utilizzate CloudFormation per eseguire tali azioni.
Utilizza le informazioni contenute nelle sezioni seguenti per controllare chi può accedere. CloudFormation Esploreremo anche come autorizzare la creazione di risorse IAM in modelli, fornire alle applicazioni in esecuzione su EC2 istanze le autorizzazioni di cui hanno bisogno e utilizzare credenziali di sicurezza temporanee per una maggiore sicurezza nell'ambiente. AWS
Definizione di policy basate sull'identità IAM per CloudFormation
Con le policy basate su identità IAM, puoi specificare operazioni e risorse consentite o rifiutate, nonché le condizioni in base alle quali le operazioni sono consentite o rifiutate. CloudFormation supporta operazioni, risorse e chiavi di condizione specifiche.
Se non conosci IAM, inizia a familiarizzare con gli elementi di una policy IAM JSON. Per ulteriori informazioni, consulta il riferimento agli elementi della policy IAM JSON nella IAM User Guide. Per imparare a creare policy IAM, completa il tutorial Crea e allega la tua prima policy gestita dai clienti nella documentazione IAM.
Argomenti
Azioni politiche per CloudFormation
In una dichiarazione di policy IAM, è possibile specificare qualsiasi operazione API per qualsiasi servizio che supporta IAM. Per CloudFormation, utilizza il seguente prefisso con il nome dell'azione API:cloudformation:
. For example: cloudformation:CreateStack
, cloudformation:CreateChangeSet
e cloudformation:UpdateStack
.
Per specificare più azioni in una singola istruzione, separale con virgole, come segue:
"Action": [ "cloudformation:
action1
", "cloudformation:action2
" ]
Puoi anche specificare più operazioni tramite caratteri jolly. Ad esempio, è possibile specificare tutte le azioni i cui nomi iniziano con la parolaGet
, nel modo seguente:
"Action": "cloudformation:Get*"
Per un elenco completo delle azioni CloudFormation API, vedere Azioni definite da AWS CloudFormation nel Service Authorization Reference.
Esempi
Di seguito viene mostrato un esempio di una politica di autorizzazioni che concede le autorizzazioni per visualizzare gli stack. CloudFormation
Esempio 1: Un esempio di policy che concede i permessi di visualizzazione dello stack
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResource", "cloudformation:DescribeStackResources" ], "Resource":"*" }] }
Gli utenti che creano o eliminano gli stack necessitano di autorizzazioni aggiuntive in base ai modelli di stack utilizzati. Ad esempio, se il modello descrive una coda Amazon SQS, gli utenti devono disporre delle autorizzazioni sia per le azioni di Amazon SQS che per quelle di Amazon CloudFormation SQS, come illustrato nella seguente policy di esempio.
Esempio 2: Un esempio di policy che consente di creare e visualizzare le azioni dello stack e tutte le azioni di Amazon SQS
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Action":[ "sqs:*", "cloudformation:CreateStack", "cloudformation:DescribeStacks", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStackResources", "cloudformation:GetTemplate", "cloudformation:ValidateTemplate" ], "Resource":"*" }] }
Azioni specifiche per console per CloudFormation
Gli utenti della CloudFormation console richiedono autorizzazioni aggiuntive oltre a quelle necessarie per la sala operatoria. AWS Command Line Interface CloudFormation APIs Queste autorizzazioni aggiuntive supportano funzionalità specifiche della console, come il caricamento di modelli su bucket Amazon S3 e gli elenchi a discesa per tipi di parametri specifici. AWS
Per tutte le azioni elencate di seguito, concedi le autorizzazioni a tutte le risorse; non limitarle a pile o bucket specifici.
L'azione seguente viene utilizzata solo dalla CloudFormation console e non è documentata nel riferimento all'API. L'operazione consente agli utenti di caricare i modelli nei bucket Amazon S3.
-
cloudformation:CreateUploadBucket
Quando gli utenti caricano modelli, richiedono anche le seguenti autorizzazioni Amazon S3:
-
s3:PutObject
-
s3:ListBucket
-
s3:GetObject
-
s3:CreateBucket
Per visualizzare i valori negli elenchi a discesa dei parametri per i modelli con tipi di parametri AWS specifici, gli utenti devono disporre delle autorizzazioni per effettuare le chiamate API di descrizione corrispondenti. Ad esempio, le seguenti autorizzazioni sono necessarie quando questi tipi di parametri vengono utilizzati nel modello:
-
ec2:DescribeKeyPairs
— Obbligatorio per il tipo diAWS::EC2::KeyPair::KeyName
parametro. -
ec2:DescribeSecurityGroups
— Obbligatorio per il tipo diAWS::EC2::SecurityGroup::Id
parametro. -
ec2:DescribeSubnets
— Obbligatorio per il tipo diAWS::EC2::Subnet::Id
parametro. -
ec2:DescribeVpcs
— Obbligatorio per il tipo diAWS::EC2::VPC::Id
parametro.
Per ulteriori informazioni sui tipi AWS di parametri specifici, vedereSpecificare le risorse esistenti in fase di esecuzione con i CloudFormation tipi di parametri forniti.
Risorse politiche per CloudFormation
In una dichiarazione di policy IAM, l'elemento Resource
specifica l'oggetto o gli oggetti coperti dall'istruzione. Infatti CloudFormation, ogni dichiarazione di policy IAM si applica alle risorse specificate utilizzando i rispettivi Amazon Resource Names (ARNs). Il formato ARN specifico dipende dalla risorsa.
Per un elenco completo dei tipi di CloudFormation risorse e relativi ARNs, vedere Tipi di risorse definiti da AWS CloudFormation nel Service Authorization Reference. Per informazioni sulle azioni che è possibile specificare con l'ARN di ciascuna risorsa, vedere Azioni definite da. AWS CloudFormation
È possibile specificare azioni per uno stack specifico, come illustrato nel seguente esempio di policy. Quando fornisci un ARN, sostituiscilo
con le informazioni specifiche della tua risorsa. placeholder
text
Esempio 1: Un esempio di policy che nega le azioni di eliminazione e aggiornamento dello stack per lo stack specificato
{ "Version":"2012-10-17", "Statement":[{ "Effect":"Deny", "Action":[ "cloudformation:DeleteStack", "cloudformation:UpdateStack" ], "Resource":"arn:aws:cloudformation:
region
:account-id
:stack/MyProductionStack
/*" }] }
La politica sopra riportata utilizza una wild card alla fine del nome dello stack in modo che l'eliminazione dello stack e l'aggiornamento dello stack vengano negati sia sull'ID completo dello stack (ad esempio) che sul nome dello stack (ad esempioarn:aws:cloudformation:
). region
:account-id
:stack/MyProductionStack
/abc9dbf0-43c2-11e3-a6e8-50fa526be49c
MyProductionStack
Per consentire alle AWS::Serverless
trasformazioni di creare un set di modifiche, includi l'autorizzazione a livello di arn:aws:cloudformation:
risorsa, come illustrato nella seguente politica.region
:aws:transform/Serverless-2016-10-31
Esempio 2: Una politica di esempio che consente l'azione di creazione del set di modifiche per la trasformazione specificata
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "cloudformation:CreateChangeSet" ], "Resource": "arn:aws:cloudformation:
region
:aws:transform/Serverless-2016-10-31" }] }
Chiavi relative alle condizioni politiche per CloudFormation
In una dichiarazione sulla politica IAM, puoi facoltativamente specificare le condizioni che determinano l'entrata in vigore di una policy. Ad esempio, puoi definire una policy che consenta agli utenti di creare uno stack solo quando specificano un determinato URL del modello. Puoi definire condizioni CloudFormation specifiche e AWS condizioni generali, ad esempioDateLessThan
, che specificano quando una policy smette di avere effetto. Per ulteriori informazioni e un elenco di condizioni AWS-wide, consulta Condition in IAM Policy Elements di riferimento nella IAM User Guide.
Nota
Non utilizzare la condizione aws:SourceIp
AWS-wide. CloudFormationeffettua il provisioning delle risorse utilizzando il proprio indirizzo IP, non l'indirizzo IP della richiesta di origine. Ad esempio, quando crei uno stack, CloudFormation effettua richieste dal relativo indirizzo IP per avviare un' EC2 istanza Amazon o per creare un bucket Amazon S3, non dall'indirizzo IP della chiamata o CreateStack
del comando. create-stack
L'elenco seguente descrive le condizioni specifiche. CloudFormation Queste condizioni si applicano solo quando gli utenti creano o aggiornano gli stack:
cloudformation:ChangeSetName
-
Un nome di set di CloudFormation modifiche che si desidera associare a una politica. Utilizza questa condizione per controllare quali set di modifiche gli utenti possono eseguire o eliminare.
cloudformation:ImportResourceTypes
-
I tipi di risorse del modello che desideri associare a una policy, ad esempio
AWS::EC2::Instance
. Utilizza questa condizione per controllare i tipi di risorse che gli utenti possono utilizzare quando importano risorse in uno stack. Questa condizione viene verificata rispetto ai tipi di risorse dichiarati dagli utenti nelResourcesToImport
parametro, che attualmente è supportato solo per AWS CLI le richieste API. Quando si utilizza questo parametro, è necessario specificare tutti i tipi di risorse che si desidera far controllare agli utenti durante le operazioni di importazione. Per ulteriori informazioni sulResourcesToImport
parametro, vedere CreateChangeSetazione nell'AWS CloudFormation API Reference.Per un elenco dei possibili
ResourcesToImport
, vediSupporto per tipi di risorse.Utilizza la convenzione di denominazione delle risorse in tre parti per specificare i tipi di risorse con cui gli utenti possono lavorare, da tutte le risorse di un'organizzazione fino a un singolo tipo di risorsa.
organization
::*-
Specifica tutti i tipi di risorse per una determinata organizzazione.
organization
::
::*service_name
-
Specifica tutti i tipi di risorse per il servizio specificato all'interno di una determinata organizzazione.
organization
::
::service_name
resource_type
-
Specifica un determinato tipo di risorsa.
Per esempio:
AWS::*
-
Specificare tutti i tipi di AWS risorse supportati.
AWS::
service_name
::*-
Specifica tutte le risorse per un determinato servizio AWS .
AWS::
service_name
::resource_type
-
Specificate un tipo di AWS risorsa specifico, ad esempio
AWS::EC2::Instance
(tutte le EC2 istanze).
cloudformation:ResourceTypes
-
I tipi di risorse del modello, ad esempio
AWS::EC2::Instance
, che vuoi associare a una policy. Utilizza questa condizione per controllare i tipi di risorse che gli utenti possono utilizzare quando creano o aggiornano uno stack. La condizione viene verificata in base ai tipi di risorse che gli utenti dichiarano nel parametroResourceTypes
, attualmente supportato solo per la AWS CLI e richieste API. Quando si utilizza questo parametro, gli utenti devono specificare tutti i tipi di risorse disponibili nel modello. Per ulteriori informazioni sulResourceTypes
parametro, vedere CreateStackazione nell'AWS CloudFormation API Reference.Per un elenco dei tipi di risorse, consulta AWS riferimento ai tipi di risorse e proprietà.
Utilizza la convenzione di denominazione delle risorse in tre parti per specificare i tipi di risorse con cui gli utenti possono lavorare, da tutte le risorse di un'organizzazione fino a un singolo tipo di risorsa.
organization
::*-
Specifica tutti i tipi di risorse per una determinata organizzazione.
organization
::
::*service_name
-
Specifica tutti i tipi di risorse per il servizio specificato all'interno di una determinata organizzazione.
organization
::
::service_name
resource_type
-
Specifica un determinato tipo di risorsa.
Per esempio:
AWS::*
-
Specificare tutti i tipi di AWS risorse supportati.
AWS::
service_name
::*-
Specifica tutte le risorse per un determinato servizio AWS .
AWS::
service_name
::resource_type
-
Specificate un tipo di AWS risorsa specifico, ad esempio
AWS::EC2::Instance
(tutte le EC2 istanze). Alexa::ASK::*
-
Specifica tutti i tipi di risorse in Alexa Skill Kit.
Alexa::ASK::Skill
-
Specificate il tipo di risorsa individuale Alexa: :ASK: :Skill.
Custom::*
-
Specifica tutte le risorse personalizzate.
Per ulteriori informazioni, consulta Crea una logica di provisioning personalizzata con risorse personalizzate.
Custom::
resource_type
-
Specificare un tipo specifico di risorsa personalizzata.
Per ulteriori informazioni, consulta Crea una logica di provisioning personalizzata con risorse personalizzate.
cloudformation:RoleARN
-
L'Amazon Resource Name (ARN) di un ruolo del servizio IAM da associare a una policy. Utilizza questa condizione per controllare quale ruolo del può essere usato dagli utenti quando lavorano con gli stack o i set di modifiche.
cloudformation:StackPolicyUrl
-
L'URL della policy di uno stack Amazon S3 da associare a una policy. Utilizza questa condizione per controllare quali policy di stack gli utenti possono associare a uno stack durante la creazione o l'aggiornamento di un'operazione dello stack. Per ulteriori informazioni sulle policy degli stack, consulta Impedire gli aggiornamenti delle risorse stack.
Nota
Per garantire che gli utenti possano creare o aggiornare gli stack solo con le policy di stack che hai caricato, imposta il bucket S3 in modo che sia di sola lettura per quegli utenti.
cloudformation:TemplateUrl
-
L'URL del modello Amazon S3 da associare a una policy. Utilizza questa condizione per controllare quali modelli gli utenti possono usare quando creano o aggiornano gli stack.
Nota
Per garantire che gli utenti possano creare o aggiornare gli stack solo con i modelli che hai caricato, imposta il bucket S3 in modo che sia di sola lettura per quegli utenti.
Nota
Le seguenti condizioni CloudFormation specifiche si applicano ai parametri API con lo stesso nome:
-
cloudformation:ChangeSetName
-
cloudformation:RoleARN
-
cloudformation:StackPolicyUrl
-
cloudformation:TemplateUrl
Ad esempio, si applica
cloudformation:TemplateUrl
solo alTemplateUrl
parametro forCreateStack
UpdateStack
, eCreateChangeSet
APIs. -
Per esempi di policy IAM che utilizzano chiavi condizionali per controllare l'accesso, consultaEsempi di policy basate sull'identità IAM per CloudFormation.
Accettazione delle risorse IAM nei modelli CloudFormation
Prima di poter creare uno stack, CloudFormation convalida il modello. Durante la convalida, CloudFormation verifica nel modello la presenza di risorse IAM che potrebbe creare. Le risorse IAM, ad esempio un utente con accesso completo, possono accedere e modificare tutte le risorse nell' Account AWS. Pertanto, ti consigliamo di esaminare le autorizzazioni associate a ogni risorsa IAM prima di continuare, in modo da non creare inavvertitamente le risorse con autorizzazioni di escalation. Per assicurarti di averlo fatto, devi riconoscere che il modello contiene tali risorse e fornisce CloudFormation le funzionalità specificate prima di creare lo stack.
Puoi riconoscere le funzionalità dei CloudFormation modelli utilizzando la CloudFormation console, AWS Command Line Interface (AWS CLI) o l'API:
-
Nella CloudFormation console, nella pagina Configura le opzioni dello stack delle procedure guidate Create Stack o Update Stack, scegli Riconosco che questo modello può creare risorse IAM.
-
Nel, quando si AWS CLI utilizza il create-stack e update-stackcomandi, specificate il
CAPABILITY_NAMED_IAM
valoreCAPABILITY_IAM
o per l'--capabilities
opzione. Se il modello comprende risorse IAM, è possibile specificare qualsiasi funzionalità. Se il modello comprende nomi personalizzati per le risorse IAM, occorre specificareCAPABILITY_NAMED_IAM
. -
Nell'API, quando si utilizza CreateStack e UpdateStackazioni, specificare
Capabilities.member.1=CAPABILITY_IAM
oCapabilities.member.1=CAPABILITY_NAMED_IAM
. Se il modello comprende risorse IAM, è possibile specificare qualsiasi funzionalità. Se il modello comprende nomi personalizzati per le risorse IAM, occorre specificareCAPABILITY_NAMED_IAM
.
Importante
Se il modello contiene risorse IAM con nomi personalizzati, non occorre creare più stack che riutilizzino lo stesso modello. Le risorse IAM devono essere univoche a livello globale nell'account. Se utilizzi lo stesso modello per creare più stack in Regioni diverse, gli stack potrebbero condividere le stesse risorse IAM anziché avere ognuno una risorsa univoca. Le risorse condivise tra stack possono avere conseguenze indesiderate irreversibili. Ad esempio, se si eliminano o si aggiornano risorse IAM condivise all'interno di uno stack, si potrebbero involontariamente modificare le risorse di altri stack.
Gestione delle credenziali per le applicazioni in esecuzione su istanze Amazon EC2
Se hai un'applicazione che viene eseguita su un' EC2 istanza Amazon e devi effettuare richieste a AWS risorse come i bucket Amazon S3 o una tabella DynamoDB, l'applicazione richiede credenziali di sicurezza. AWS Tuttavia, la distribuzione e l'incorporamento delle credenziali di sicurezza a lungo termine in ogni istanza avviata è una sfida nonché un potenziale rischio per la sicurezza. Invece di utilizzare credenziali a lungo termine, come le credenziali utente IAM, ti consigliamo di creare un ruolo IAM associato a un' EC2 istanza Amazon all'avvio dell'istanza. Un'applicazione può quindi ottenere credenziali di sicurezza temporanee dall' EC2 istanza Amazon. Non è necessario incorporare le credenziali a lungo termine nell'istanza. Inoltre, per semplificare la gestione delle credenziali, puoi specificare un solo ruolo per più EC2 istanze Amazon; non devi creare credenziali uniche per ogni istanza.
Per un frammento di modello che mostra come avviare un'istanza con un ruolo, consulta IAMesempi di modelli di ruolo.
Nota
Le applicazioni che si basano sulle istanze che utilizzano credenziali di sicurezza temporanee possono chiamare qualsiasi azione CloudFormation . Tuttavia, poiché CloudFormation interagisce con molti altri AWS servizi, devi verificare che tutti i servizi che desideri utilizzare supportino credenziali di sicurezza temporanee. Per un elenco dei servizi che accettano credenziali di sicurezza temporanee, consulta la sezione AWS Servizi che funzionano con IAM nella Guida per l'utente di IAM.
Concessione dell'accesso temporaneo (accesso federato)
In alcuni casi, potresti voler concedere agli utenti senza AWS credenziali l'accesso temporaneo al tuo. Account AWS Invece di creare ed eliminare credenziali a lungo termine ogni volta che desideri concedere un accesso temporaneo, usa AWS Security Token Service ().AWS STS Ad esempio, puoi utilizzare i ruoli IAM. Da un ruolo IAM, è possibile creare e distribuire in modo programmatico molte credenziali di sicurezza temporanee (che includono una chiave di accesso, una chiave di accesso segreta e un token di sicurezza). Queste credenziali hanno una durata limitata, quindi non possono essere utilizzate per accedere alle tue credenziali Account AWS dopo la loro scadenza. Puoi anche creare più ruoli IAM per concedere ai singoli utenti livelli di autorizzazioni diversi. I ruoli IAM sono utili per scenari quali le identità federate e i Single Sign-On (SSO).
Un'identità federata è un'identità distinta che puoi utilizzare in più sistemi. Per gli utenti enterprise con un sistema di identità locale (ad esempio LDAP o Active Directory), è possibile gestire tutte le autenticazioni con il sistema di identità locale. Dopo l'autenticazione dell'utente, è necessario fornire le credenziali di sicurezza temporanee dell'utente o ruolo IAM corrispondente. Ad esempio, puoi creare un ruolo di amministratore e un ruolo di sviluppatore, in cui gli amministratori abbiano pieno accesso all' AWS account e gli sviluppatori abbiano le autorizzazioni per lavorare solo con gli stack. CloudFormation Dopo l'autenticazione, l'amministratore è autorizzato a ottenere credenziali di sicurezza temporanee dal ruolo di amministratore. Tuttavia, gli sviluppatori possono ottenere credenziali di sicurezza temporanee solo dal ruolo di sviluppatore.
È inoltre possibile concedere agli utenti federati l'accesso a. AWS Management Console Dopo l'autenticazione degli utenti con il sistema di identità locale, è possibile creare un URL temporaneo a livello di codice che offra un accesso diretto a AWS Management Console. Quando gli utenti utilizzano l'URL temporaneo, non avranno bisogno di accedere AWS perché sono già stati autenticati (single sign-on). Inoltre, poiché l'URL viene creato in base alle credenziali di sicurezza temporanee degli utenti, le autorizzazioni disponibili con tali credenziali definiscono le autorizzazioni degli utenti in AWS Management Console.
È possibile utilizzarne diversi per generare credenziali AWS STS APIs di sicurezza temporanee. Per ulteriori informazioni sull'API da utilizzare, consulta Compare AWS STS credentials nella IAM User Guide.
Importante
Non è possibile lavorare con IAM quando si utilizzano credenziali di sicurezza temporanee generati dall'API GetFederationToken
. Al contrario, se è necessario utilizzare IAM, usare le credenziali di sicurezza temporanee di un ruolo.
CloudFormation interagisce con molti altri AWS servizi. Quando utilizzi credenziali di sicurezza temporanee con CloudFormation, verifica che tutti i servizi che desideri utilizzare supportino credenziali di sicurezza temporanee. Per un elenco dei servizi che accettano credenziali di sicurezza temporanee, consulta AWS i servizi che funzionano con IAM nella Guida per l'utente di IAM.
Per ulteriori informazioni, consulta le seguenti risorse correlate nella Guida per l'utente IAM: