Creazione di un set di stack - AWS CloudFormation

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

Creazione di un set di stack

È possibile creare un set di stack utilizzando AWS Management Console o utilizzando AWS CloudFormation i comandi in. AWS CLIÈ possibile creare un set di stack con le autorizzazioni self-managed o service-managed.

Con le autorizzazioni self-managed, puoi implementare le istanze di stack in determinati account Account AWS in specifiche Regioni. A questo scopo, è necessario creare prima di ruoli IAM necessari, per stabilire una relazione di trust tra l'account da cui amministri il set di stack e l'account a cui distribuisci le istanze dello stack.

Con service-managed le autorizzazioni, puoi distribuire istanze stack su account gestiti da regioni specifiche. AWS Organizations Con questo modello, non è necessario creare i ruoli IAM necessari; StackSets crea i ruoli IAM per tuo conto. Puoi anche abilitare le distribuzioni automatiche agli account che verranno aggiunti a un'organizzazione o un'unità organizzativa di destinazione in futuro. Con le distribuzioni automatiche abilitate, elimina StackSets automaticamente le istanze dello stack da un account se questo viene rimosso da un'organizzazione o unità organizzativa di destinazione.

Creazione di un set di stack con autorizzazioni gestite dal cliente

Crea uno stack set con autorizzazioni autogestite utilizzando AWS Management Console

  1. Apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Dal pannello di navigazione, scegli StackSets.

  3. Nella parte superiore della StackSetspagina, scegli Crea StackSet.

  4. In Prerequisite - Prepare template (Prerequisito - Prepara modello), scegliere Use a sample template (Utilizza un modello di esempio).

  5. In Seleziona un modello di esempio, dal menu a discesa scegli Abilita modello di AWS configurazione. Seleziona Avanti.

    StackSets esempio: Abilita modello AWS Config
  6. Nella pagina Specificare StackSet i dettagli, fornire le seguenti informazioni.

    1. Fornire un nome per il set di stack. I nomi dei set di stack devono iniziare con un carattere alfabetico e contenere solo lettere, numeri e trattini. In questa procedura guidata, utilizziamo il nome my-awsconfig-stackset.

    2. Viene richiesto di specificare i valori per i parametri utilizzati da AWS Config. Per ulteriori informazioni su questi parametri, consulta Configurazione di AWS Config con la console nella Guida per gli AWS Config sviluppatori. In questa procedura guidata, verranno lasciate le impostazioni predefinite per tutti i parametri AWS Config .

    3. Puoi configurare gli aggiornamenti di Amazon Simple Notification Service (SNS) via e-mail, in base al contenuto dei log, utilizzando TopicArn e i parametri. NotificationEmail Ai fini di questa procedura guidata, non vengono configurati aggiornamenti Amazon SNS.

    4. Puoi configurare il canale di distribuzione per aggiornamenti e notifiche utilizzando i parametri e Frequenza. DeliveryChannelName Per ulteriori informazioni sul canale di distribuzione in AWS Config, consulta Managing the delivery channel nella AWS Config Developer Guide. Ai fini di questa procedura guidata, vengono lasciate le impostazioni predefinite per quest'area.

  7. Quando hai finito di specificare i parametri per AWS Config, scegli Avanti.

  8. Nella pagina Configura StackSet opzioni, aggiungi un tag specificando una coppia chiave/valore. In questa procedura guidata, è stato creato un tag denominato Stage (Fase), con un valore di Test. I tag applicati ai set di stack vengono applicati a tutte le risorse create dagli stack. Per ulteriori informazioni sull'utilizzo dei tag AWS, vedere Utilizzo dei tag di allocazione dei costi nella Guida per l'AWS Billing and Cost Management utente.

    Non specificare Permissions (Autorizzazioni).

  9. Per la configurazione di esecuzione, scegli Active in modo da StackSets eseguire contemporaneamente operazioni non in conflitto e mettere in coda le operazioni in conflitto. Al termine delle operazioni in conflitto, StackSets avvia le operazioni in coda nell'ordine di richiesta.

    Nota

    Se sono già presenti operazioni in esecuzione o in StackSets coda, mette in coda tutte le operazioni in entrata anche se non sono in conflitto.

    Non è possibile modificare la configurazione di esecuzione del set di stack mentre sono presenti operazioni in esecuzione o in coda per quel set di stack.

  10. Seleziona Successivo.

  11. Nella pagina Set deployment options (Imposta opzioni di distribuzione), fornire gli account e le Regioni in cui si desidera che vengano distribuiti i set di stack.

    AWS CloudFormation distribuirà gli stack negli account specificati all'interno della prima regione, quindi passerà alla successiva e così via, purché gli errori di distribuzione in una regione non superino una tolleranza di errore specificata.

    1. Per Accounts (Account), scegliere Deploy stacks in accounts (Distribuisci stack in account). Incollare i numeri di account target nella casella di testo, separando più numeri con virgole.

    2. Per Specify regions (Specifica Regioni), selezionare della Regione Stati Uniti orientali (Virginia settentrionale),. Ripetere l'operazione per Stati Uniti occidentali (Oregon). Selezionare la freccia accanto a Stati Uniti occidentali (Oregon) per spostarlo in modo che sia la prima voce nell'elenco. L'ordine delle Regioni in Specify regions (Specifica Regioni) determina l'ordine di distribuzione.

    3. Per Deployment options (Opzioni di distribuzione):

      • Per Maximum concurrent accounts (Numero massimo di account simultanei), mantieni i valori predefiniti di Number (Numero) e 1.

        Ciò significa che AWS CloudFormation distribuisce lo stack in un solo account alla volta.

      • Per Failure tolerance (Tolleranza di errore), mantenere i valori predefiniti di Number (Numero) e 0.

        Ciò significa che può fallire la distribuzione di un massimo di uno stack in una delle regioni specificate prima di AWS CloudFormation interrompere la distribuzione nella regione corrente e annullare la distribuzione nelle regioni rimanenti.

    4. Per la Region concurrency (Simultaneità Regione):

      • Seleziona Sequenziale o Parallela per determinare l'ordine di StackSets distribuzione per regioni specifiche. Per impostazione predefinita, è selezionato Sequential (Sequenziale) .

      Seleziona Avanti.

    Pagina Set deployment options (Imposta opzioni di distribuzione)
  12. Nella pagina Review (Revisione), verificare le proprie scelte e le proprietà del set di stack. Per apportare modifiche, scegliere Edit (Modifica) nell'area in cui si desidera modificare proprietà. Prima di poter creare il set di stack, è necessario indicare nella casella di controllo nell'area Capabilities (Funzionalità) che si prende atto che alcune delle risorse create con il set di stack potrebbero richiedere nuove risorse e autorizzazioni IAM. Per ulteriori informazioni sulle autorizzazioni potenzialmente necessarie, vedere. Riconoscimento delle risorse IAM nei modelli AWS CloudFormation Quando sei pronto per creare il set di stack, scegli Submit (Invia).

    Accettazione delle funzionalità richieste
  13. AWS CloudFormation inizia a creare il tuo set di stack. Visualizzare l'avanzamento e lo stato della creazione degli stack nel set di stack nella pagina dei dettagli che si apre quando si sceglie Submit (Invia).

    Scheda Operazioni della pagina dei StackSets dettagli

Crea uno stack set con autorizzazioni autogestite utilizzando il AWS CLI

Quando crei set di stack utilizzando AWS CLI i comandi, esegui due comandi separati: create-stack-set per caricare il modello e creare il contenitore dello stack set e per creare gli stack create-stack-instances all'interno del set di stack. Inizia eseguendo un AWS CLI comando per caricare il AWS CloudFormation modello di esempio che abilita AWS Config, quindi avvia la creazione dello stack set. create-stack-set

  1. Apri il. AWS CLI

  2. Esegui il comando seguente.

    Per il parametro --template-url, fornire l'URL del bucket Amazon S3 in cui si sta salvando il modello. Per questa procedura guidata, viene utilizzato my-awsconfig-stackset come valore del parametro --stack-set-name. Inoltre, lo attiviamo --managed-execution in modo da StackSets eseguire contemporaneamente operazioni non in conflitto e mettere in coda le operazioni in conflitto. Al termine delle operazioni in conflitto, StackSets avvia le operazioni in coda nell'ordine di richiesta.

    Nota

    Se sono già presenti operazioni in esecuzione o in StackSets coda, mette in coda tutte le operazioni in entrata anche se non sono in conflitto.

    Non è possibile modificare la configurazione di esecuzione del set di stack mentre sono presenti operazioni in esecuzione o in coda per quel set di stack.

    aws cloudformation create-stack-set \ --stack-set-name my-awsconfig-stackset \ --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
  3. Quando il comando create-stack-set viene completato, eseguire il comando list-stack-sets per verificare che il set di stack sia stato creato. Il nuovo set di stack dovrebbe essere visibile nei risultati.

    aws cloudformation list-stack-sets
  4. Eseguire il comando create-stack-instances AWS CLI per aggiungere istanze di stack al set di stack. In questa procedura guidata, vengono utilizzati us-west-2 e us-east-1 come valori del parametro --regions.

    Configurare la tolleranza di errore e il numero massimo di account simultanei impostando FailureToleranceCount su 0 e MaxConcurrentCount su 1 nel parametro --operation-preferences, come mostrato nel seguente esempio. Per applicare percentuali, utilizzare invece FailureTolerancePercentage o MaxConcurrentPercentage. Ai fini di questa procedura guidata, viene utilizzato il numero, non la percentuale.

    Nota

    Il valore di MaxConcurrentCount dipende dal valore di FailureToleranceCount. MaxConcurrentCount è al massimo di un'unità superiore al valore di FailureToleranceCount.

    aws cloudformation create-stack-instances \ --stack-set-name my-awsconfig-stackset \ --accounts '["account_ID_1","account_ID_2"]' \ --regions '["region_1","region_2"]' \ --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1
    Nota

    La concomitanza delle distribuzioni delle StackSet istanze nell'operazione dipende dal valore di ed è al massimo uno in più rispetto al. FailureToleranceCount-MaxConcurrentCount FailureToleranceCount

    Importante

    Attendere che un'operazione sia completata prima di avviarne un'altra. È possibile eseguire soltanto un'operazione alla volta.

  5. Verificare che la creazione delle istanze di stack abbia avuto esito positivo. Eseguire DescribeStackSetOperation con l'operation-id restituito come parte dell'output della fase 4.

    aws cloudformation describe-stack-set-operation \ --stack-set-name my-awsconfig-stackset \ --operation-id operation_ID

Creazione di un set di stack con autorizzazioni gestite dal servizio

Considerazioni sulla creazione di un set di stack con autorizzazioni gestite dal servizio

Prima di creare un set di stack con autorizzazioni gestite dai servizi, considera quanto segue:

  • I set di stack con le autorizzazioni gestite dai servizi vengono creati nell'account di gestione, inclusi i set di stack creati dagli amministratori delegati.

  • Il set di stack può essere destinato all'intera organizzazione o a specifiche unità organizzative. Se il set di stack è destinato all'organizzazione, è destinato anche a tutti gli account in tutte le unità organizzative dell'organizzazione. Se il set di stack è destinato a specifiche unità organizzative, è destinato anche a tutti gli account al loro interno.

  • Se il set di stack è destinato a un'unità organizzativa padre, è destinato anche a tutte le unità organizzative figlio.

  • Più set di stack possono essere destinati alla stessa organizzazione o unità organizzativa.

  • Il set di stack non può essere destinato ad account esterni all'organizzazione.

  • Il set di stack non può distribuire stack nidificati.

  • StackSets non distribuisce istanze stack nell'account di gestione dell'organizzazione, anche se l'account di gestione si trova all'interno dell'organizzazione o in un'unità organizzativa dell'organizzazione.

  • La distribuzione automatica viene impostata a livello di set di stack. Non è possibile regolare le distribuzioni automatiche in modo selettivo per unità organizzative, account o Regioni.

  • Le autorizzazioni dell'entità principale IAM (utente, ruolo o gruppo) che utilizzi per accedere all'account di gestione determinano se sei autorizzato a eseguire la distribuzione con. StackSets Per una policy IAM di esempio che concede le autorizzazioni per la distribuzione a un'organizzazione, consulta Policy di esempio che concede autorizzazioni del set di stack gestito dal servizio.

  • Gli amministratori delegati dispongono delle autorizzazioni complete per la distribuzione negli account dell'organizzazione. L'account di gestione non può limitare le autorizzazioni di amministratore delegato per la distribuzione in unità organizzative specifiche o per eseguire operazioni specifiche del set di stack.

Crea uno stack set con autorizzazioni gestite dal servizio utilizzando la console AWS CloudFormation

  1. Apri la console all'indirizzo https://console.aws.amazon.com/cloudformation AWS CloudFormation .

  2. Dal pannello di navigazione, scegli StackSets.

  3. Nella parte superiore della StackSetspagina, scegli Crea StackSet.

  4. In Prepare template (Prepara modello), scegliere Template is ready (Il modello è pronto).

  5. In Specify template (Specifica modello), scegliere di specificare l'URL per il bucket S3 che contiene il modello di stack oppure caricare un file modello di stack. Seleziona Successivo.

  6. Nella pagina Specificare StackSet i dettagli, fornite un nome per il set di stack, specificate i parametri e quindi scegliete Avanti.

  7. Nella pagina Configura StackSet opzioni, in Tag, specifica i tag da applicare alle risorse dello stack.

  8. In Permissions (Autorizzazioni) scegliere Service-managed permissions (Autorizzazioni gestite dal servizio).

    Se l'accesso affidabile con AWS Organizations è disabilitato, viene visualizzato un banner. L'accesso sicuro è necessario per creare o aggiornare un set di stack con autorizzazioni gestite dal servizio. Solo l'amministratore nell'account di gestione dell'organizzazione dispone delle autorizzazioni per Attiva l'accesso attendibile con AWS Organizations.

    Banner Attiva l'accesso attendibile.
  9. Per la configurazione di esecuzione, scegli Active in modo da StackSets eseguire contemporaneamente operazioni non in conflitto e mettere in coda le operazioni in conflitto. Al termine delle operazioni in conflitto, StackSets avvia le operazioni in coda nell'ordine di richiesta.

    Nota

    Se sono già presenti operazioni in esecuzione o in StackSets coda, mette in coda tutte le operazioni in entrata anche se non sono in conflitto.

    Non è possibile modificare la configurazione di esecuzione del set di stack mentre sono presenti operazioni in esecuzione o in coda per quel set di stack.

  10. Scegli Avanti per procedere e attivare l'accesso attendibile, se non è già attivato.

  11. Nella pagina Set deployment options (Imposta opzioni di distribuzione) in Deployment targets (Destinazioni di distribuzione), scegliere gli account dell'organizzazione a cui eseguire la distribuzione.

    • Scegliere Deploy to organization (Distribuisci all'organizzazione per eseguire la distribuzione a tutti gli account dell'organizzazione.

      Distribuire istanze dello stack a tutti gli account dell'organizzazione.
    • Scegliere Deploy to organizational units (OUs) (Distribuisci alle unità organizzative) per eseguire la distribuzione a tutti gli account in specifiche unità organizzative. Scegliere Add an OU (Aggiungi un'unità organizzativa) e quindi incollare l'ID dell'unità organizzativa di destinazione nella casella di testo. Ripetere per ogni nuova unità organizzativa di destinazione.

      Distribuire istanze dello stack a tutti gli account in determinate unità organizzative dell'organizzazione.
  12. In Distribuzione automatica, scegli se eseguire la distribuzione automatica sugli account che StackSets verranno aggiunti all'organizzazione o alle unità organizzative di destinazione in futuro.

    Impostazioni di distribuzione automatica per i set di stack con autorizzazioni gestite dal servizio.
  13. Se è stata abilitata la distribuzione automatica, in Account removal behavior (Comportamento rimozione account) scegliere se le risorse dello stack vengono mantenute o eliminate quando un account viene rimosso da un'organizzazione o da un'unità organizzativa di destinazione.

    Impostazioni di rimozione account per i set di stack con autorizzazioni gestite dal servizio.
    Nota

    Con l'opzione Retain stacks (Mantieni stack) selezionata, le istanze dello stack vengono rimosse dal set di stack, ma gli stack e le relative risorse associate vengono mantenuti. Le risorse rimangono nello stato corrente, ma non faranno più parte del set di stack.

  14. Per Deployment regions (Regioni distribuzione), selezionare le Regioni in cui distribuire le istanze dello stack. Seleziona Successivo.

  15. Nella pagina Revisione, verifica che StackSets venga eseguita la distribuzione sugli account corretti nelle regioni corrette, quindi scegli Crea. StackSet

Si apre la pagina dei StackSet dettagli. Puoi visualizzare l'avanzamento e lo stato della creazione degli stack nel set di stack.

Crea un set di stack con autorizzazioni gestite dal servizio utilizzando AWS CLI

Quando create set di stack utilizzando AWS CLI, eseguite due comandi separati. Durante create-stack-set, si carica il modello, si crea il container del set di stack e si gestiscono le distribuzioni automatiche. Durante create-stack-instances, è possibile creare istanze di stack in specifici account di destinazione.

Quando agite in qualità di amministratore delegato, dovete impostare il --call-as parametro su DELEGATED_ADMIN ogni volta che eseguite un StackSets comando.

--call-as DELEGATED_ADMIN

I set di stack creati da un amministratore delegato vengono creati nell'account di gestione dell'organizzazione.

  1. Aprire il. AWS CLI

  2. Esegui il comando create-stack-set.

    Nell'esempio seguente, abilitiamo le distribuzioni automatiche StackSets per consentire la distribuzione automatica su account che verranno aggiunti all'organizzazione o alle unità organizzative di destinazione in futuro. Vengono mantenute le risorse dello stack quando un account viene rimosso da un'organizzazione o da un'unità organizzativa di destinazione. Inoltre, ci attiviamo --managed-execution in modo da StackSets eseguire operazioni non in conflitto contemporaneamente e mettere in coda le operazioni in conflitto. Al termine delle operazioni in conflitto, StackSets avvia le operazioni in coda nell'ordine di richiesta.

    Nota

    Se sono già presenti operazioni in esecuzione o in StackSets coda, mette in coda tutte le operazioni in entrata anche se non sono in conflitto.

    Non è possibile modificare la configurazione di esecuzione del set di stack mentre sono presenti operazioni in esecuzione o in coda per quel set di stack.

    aws cloudformation create-stack-set \ --stack-set-name StackSet_myApp \ --template-url https://s3.us-west-2.amazonaws.com/cloudformation-templates-us-west-2/MyApp.template \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true,RetainStacksOnAccountRemoval=true
  3. Quando termina l'esecuzione del comando create-stack-set, eseguire il comando list-stack-sets per verificare che il set di stack sia stato creato. Il nuovo set di stack viene elencato nei risultati.

    aws cloudformation list-stack-sets
    • Se imposti il parametro --call-as su DELEGATED_ADMIN mentre utilizzi l'account membro, list-stack-sets restituisce tutti i set di stack con autorizzazioni gestite dai servizi nel account di gestione dell'organizzazione.

    • Se imposti il --call-as parametro su SELF mentre hai effettuato l'accesso al tuo AWS account, list-stack-sets restituisce tutti i set di stack autogestiti nel tuo account. AWS

    • Se imposti il parametro --call-as su SELF mentre utilizzi il account di gestione dell'organizzazione, list-stack-sets restituisce tutti i set di stack nel account di gestione dell'organizzazione.

  4. Eseguire il comando create-stack-instances per aggiungere istanze di stack al set di stack. Per il parametro --deployment-targets, specificare l'ID root dell'organizzazione per eseguire la distribuzione a tutti gli account dell'organizzazione oppure specificare gli ID delle unità organizzative per eseguire la distribuzione a tutti gli account in tali unità organizzative. In questo esempio sono specificate le unità organizzative con gli ID ou-rcuk-1x5j1lwo e ou-rcuk-slr5lh0a.

    aws cloudformation create-stack-instances --stack-set-name StackSet_myApp --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5j1lwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]'
    Importante

    Attendere che un'operazione sia completata prima di avviarne un'altra. È possibile eseguire soltanto un'operazione alla volta.

  5. Utilizzando l'operation-id restituito come parte dell'output create-stack-instances nel passaggio 4, eseguire describe-stack-set-operation per verificare che le istanze dello stack siano state create correttamente.