Utilizzo di estensioni pubbliche in CloudFormation - 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à.

Utilizzo di estensioni pubbliche in CloudFormation

Le estensioni pubbliche sono CloudFormation estensioni, come i tipi di risorse o i moduli, che vengono pubblicate pubblicamente nel registro per essere utilizzate da tutti gli CloudFormation utenti. Sono incluse tutte le estensioni pubblicate da AWS. Anche le terze parti possono pubblicare estensioni pubbliche.

Sono disponibili due tipi di estensioni pubbliche:

  • AWS estensioni pubbliche: le estensioni pubblicate da AWS sono sempre pubbliche e attivate per impostazione predefinita, quindi non devi intraprendere alcuna azione prima di utilizzarle nel tuo account. Inoltre, AWS verifica il controllo delle versioni dell'estensione, in modo da farti utilizzare sempre l'ultima versione disponibile.

  • Estensioni pubbliche di terze parti: si tratta di estensioni rese disponibili per uso generale da editori diversi da. AWS Per utilizzare un'estensione pubblica, devi prima attivarla nel tuo account e nella tua Regione.

    Puoi pubblicare le tue estensioni di terze parti per renderle disponibili agli utenti CloudFormation generici. Per ulteriori informazioni, consulta Pubblicazione delle estensioni nella Guida per l'utente dell'interfaccia a riga di CloudFormation comando.

Nota

Come per le estensioni private, le estensioni pubbliche di publisher di terze parti possono implementare gestori di eventi che vengono eseguiti durante le operazioni di stack di creazione, lettura, aggiornamento, elenco ed eliminazione delle risorse. Per questo motivo, l'utilizzo di queste estensioni negli CloudFormation stack può comportare addebiti sul tuo account. Questo è in aggiunta a tutti gli addebiti sostenuti per le risorse create. Per ulteriori informazioni, consultare Prezzi di AWS CloudFormation.

Attivazione di estensioni pubbliche da utilizzare nel tuo Account AWS

Per utilizzare un'estensione pubblica di terze parti nel modello, devi innanzitutto attivarel'estensione per l'account e la Regione in cui desideri utilizzarla. L'abilitazione di un'estensione la rende utilizzabile nelle operazioni di stack nell'account e nella Regione in cui è attivata. Quando attivi un'estensione pubblica di terze parti, CloudFormation crea una voce nel registro delle estensioni del tuo account per l'estensione attivata come estensione privata. Questo ti permette di personalizzare l'estensione quando viene attivata nell'account nei modi seguenti:

  • Specifica un alias da utilizzare anziché il nome dell'estensione pubblica di terze parti. In questo modo puoi evitare conflitti di denominazione tra le estensioni di terze parti.

  • Specifica se l'estensione viene aggiornata automaticamente quando diventa disponibile una nuova versione secondaria o patch.

  • Specificate il ruolo di esecuzione CloudFormation utilizzato per attivare l'estensione, oltre a configurare la registrazione per l'estensione.

Quando attivi un'estensione pubblica di terze parti, puoi anche impostare le proprietà di configurazione incluse nell'estensione. Le proprietà di configurazione definiscono il modo in cui l'estensione viene configurata per un determinato account e Regione. Per ulteriori informazioni sulla configurazione, consulta:

Impostazione CloudFormation per l'utilizzo automatico delle nuove versioni delle estensioni

Quando attivi un'estensione, puoi anche specificare il tipo di estensione per utilizzare la versione secondaria più recente. Il tipo di estensione aggiorna la versione secondaria, ogni volta che il publisher rilascia una nuova versione sull'estensione attivata.

Ad esempio, la prossima volta che si esegue un'operazione di stack, come la creazione o l'aggiornamento di uno stack, utilizzando un modello che include tale estensione, CloudFormation viene utilizzata la nuova versione secondaria.

L'aggiornamento a una nuova versione di estensione, automatico o manuale, non influisce sulle istanze di estensione di cui è già stato eseguito il provisioning negli stack.

CloudFormation considera gli aggiornamenti delle versioni principali delle estensioni come potenzialmente contenenti modifiche sostanziali e pertanto richiede l'aggiornamento manuale a una nuova versione principale di un'estensione.

Le estensioni pubblicate da AWS sono attivate per impostazione predefinita per tutti gli account e le aree geografiche in cui sono disponibili e utilizzano sempre la versione più recente disponibile in ciascuno Regione AWS di essi.

Importante

Poiché sei tu che controlli se e quando le estensioni vengono aggiornate all'ultima versione nell'account, potresti avere versioni diverse della stessa estensione implementate in account e Regioni diversi.

Ciò potrebbe potenzialmente portare a risultati imprevisti durante l'uso dello stesso modello, che contiene quell'estensione in tali account e Regioni.

Specifica degli alias di riferimento alle estensioni

Non puoi attivare più di un'estensione con un determinato nome in un determinato account e Regione. Poiché diversi editori possono offrire estensioni pubbliche con lo stesso nome di estensione, CloudFormation consente di specificare un alias per qualsiasi estensione pubblica di terze parti attivata.

Se specifichi un alias per l'estensione, CloudFormation considera l'alias come il nome del tipo di estensione all'interno dell'account e della regione. È necessario utilizzare l'alias per fare riferimento all'estensione nei modelli, nelle API chiamate e nella console. CloudFormation

Gli alias dell'estensione devono essere univoci in un determinato account e Regione. Puoi attivare la stessa risorsa pubblica più volte nello stesso account e nella stessa Regione, utilizzando alias di nomi di tipo diverso.

Importante

Sebbene gli alias di estensione debbano essere univoci solo in un determinato account e Regione, si consiglia vivamente agli utenti di non assegnare lo stesso alias a diverse estensioni pubbliche di terze parti negli account nelle Regioni. In questo modo si potrebbero ottenere risultati imprevisti quando si utilizza un modello che contiene l'alias di estensione in più account o Regioni.

Specifica di un ruolo di esecuzione durante l'attivazione delle estensioni

Quando attivi una risorsa, puoi specificare il ruolo di IAM esecuzione CloudFormation da assumere quando richiami l'estensione nel tuo account e nella tua regione.

Per poter CloudFormation assumere il ruolo di esecuzione, il ruolo deve avere una politica di fiducia definita con. CloudFormation Inoltre, l'autorizzazione a eseguire un'operazione viene concessa creando una IAM politica e associandola al ruolo di esecuzione. Le autorizzazioni richieste sono definite nella sezione relativa ai gestori dello schema di estensione.

Di seguito è riportato un esempio di politica di fiducia dei IAM ruoli per l'estensione del tipo di risorsa:

{ "Version": "2012-10-17", "Statement":[ { "Effect": "Allow", "Principal":{ "Service": "resources.cloudformation.amazonaws.com" }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-east-1:123456789012:type/resource/Organization-Service-Resource/*" } } } ] }

Di seguito è riportato un esempio di IAM Role Trust Policy per l'estensione hook:

{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal": { "Service": [ "resources.cloudformation.amazonaws.com", "hooks.cloudformation.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "StringEquals":{ "aws:SourceAccount":"123456789012" }, "StringLike":{ "aws:SourceArn":"arn:aws:cloudformation:us-east-1:123456789012:type/hook/Organization-Service-Hook/*" } } } ] }

Per ulteriori informazioni, consulta Modifica di una policy di attendibilità nella Guida per l'utente di AWS Identity and Access Management .

Per attivare un'estensione pubblica nel registro di sistema

Attiva l'estensione nel AWS CloudFormation registro in modo che sia disponibile per l'uso.

Per attivare un'estensione pubblica da utilizzare nel tuo account utilizzando la CloudFormation console

  1. Accedi AWS Management Console e apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Dal pannello di CloudFormationnavigazione, in CloudFormation Registro di sistema, seleziona Estensioni pubbliche.

  3. Utilizza il Filtro per scegliere il tipo di estensione, quindi seleziona Third party (Terza parte). (Le estensioni pubblicate da AWS sono attivate per impostazione predefinita.)

  4. Scegli l'estensione, quindi seleziona Activate (Attiva).

    Nota

    Se sono disponibili più versioni di un'estensione, puoi utilizzare il menu Version (Versione) per selezionare la versione dell'estensione che desideri attivare. Il valore predefinito è la versione più recente.

  5. Utilizza le opzioni nella pagina Activate extension (Attiva estensione) per personalizzare la modalità di attivazione dell'estensione nell'account.

    • Per attivare l'estensione utilizzando un alias del tipo di estensione:

      1. Seleziona Override default (Sostituisci impostazione predefinita)

      2. Immetti l'alias del tipo di estensione che desideri utilizzare con questa estensione. L'alias deve seguire il formato consigliato per il tipo di estensione.

      Per ulteriori informazioni, consulta Specifica degli alias di riferimento alle estensioni.

    • Se state abilitando una risorsa privata, potete specificare il IAM ruolo CloudFormation da assumere quando si richiama l'estensione. Per ulteriori informazioni, consulta Specifica di un ruolo di esecuzione durante l'attivazione delle estensioni.

    • In Logging config (Configurazione registrazione), specifica le informazioni di configurazione della registrazione per un'estensione, se lo desideri. Ad esempio:

      { "logRoleArn": "arn:aws:iam::account:role/rolename", "logGroupName": "log-group-name" }

      Le informazioni di configurazione della registrazione non sono obbligatorie, ma sono consigliate ai fini del debug. Per utilizzare la configurazione di registrazione con hook, aggiungi la stessa policy di attendibilità del ruolo di esecuzione specificato, in modo che il ruolo di registro possa scrivere i registri nel gruppo di log.

      logRoleArne i nomi delle logGroupNamechiavi fanno distinzione tra maiuscole e minuscole.

    • In Versioning (Controllo delle versioni), specifica la modalità di ricezione degli aggiornamenti.

      • On (Attivato): effettua automaticamente l'aggiornamento all'ultima versione secondaria. Le versioni principali vengono aggiornate manualmente.

      • Off (Disattivato): non effettua mai automaticamente l'aggiornamento all'ultima versione. Tutte le versioni vengono aggiornate manualmente.

      Per ulteriori informazioni, consulta Impostazione CloudFormation per l'utilizzo automatico delle nuove versioni delle estensioni.

  6. Specifica i dati di configurazione.

    Nota

    Questa fase è obbligatoria per gli hook. È necessario specificare ALL per la proprietà TargetStack. Questa operazione abilita le proprietà dell'hook definite nella sezione relativa alle proprietà dello schema dell'hook.

    Se l'estensione richiede una configurazione aggiuntiva a livello di account e regione, CloudFormation include la sezione Configurazione nella pagina Attiva estensione. Hai la possibilità di specificare i dati di configurazione ora o dopo che l'estensione è stata attivata. Se l'estensione non richiede la configurazione, la sezione Configuration (Configurazione) non verrà visualizzzata.

    • Per specificare i dati di configurazione durante l'abilitazione dell'estensione:

      1. Seleziona Configure now (Configura ora), quindi scegli Activate extension (Attiva estensione).

        CloudFormation visualizza la pagina Configura estensione. Per visualizzare lo schema di configurazione corrente per l'estensione, assicurati che View configuration schema (Visualizza schema di configurazione) sia attivato.

      2. Nella casella di JSON testo Configurazione, immettete una JSON stringa che rappresenta lo schema di configurazione che desiderate specificare per questa estensione.

      3. Seleziona Configure extension (Configura estensione).

    • Per specificare i dati di configurazione in un momento successivo:

      • Seleziona Configure now (Configura più trdi), quindi scegli Activate extension (Attiva estensione).

      Per specificare i dati di configurazione per un'estensione già attivata, visita la pagina dei dettagli dell'estensione attivata.

    Una volta che l'estensione è stata attivata correttamente, CloudFormation visualizza la pagina dei dettagli dell'estensione.

Per aggiornare un'estensione pubblica attivata nel tuo account utilizzando la CloudFormation console

Aggiorna l'estensione nel AWS CloudFormation registro in modo che sia disponibile per l'uso.

Dopo aver attivato un'estensione nel tuo account e Regione, puoi aggiornare le seguenti proprietà di tale estensione man mano che viene attivata, tra cui:

  • Lo schema di configurazione.

  • Se attivare gli aggiornamenti automatici della versione.

  • Per le estensioni registrate private, il ruolo di esecuzione da utilizzare.

  • Le informazioni di configurazione della registrazione.

  1. Accedi AWS Management Console e apri la AWS CloudFormation console all'indirizzo https://console.aws.amazon.com/cloudformation.

  2. Dal pannello di CloudFormationnavigazione, in CloudFormation Registro di sistema, seleziona Estensioni pubbliche.

  3. Nel menu Actions (Operazioni), seleziona Edit (Modifica) e quindi l'opzione di modifica appropriata:

    • Per aggiornare lo schema di configurazione, vedi Specificare le proprietà di configurazione per un'estensione nella CloudFormation console

    • Per attivare o disattivare gli aggiornamenti automatici:

      1. Seleziona Edit automatic updates (Modifica aggiornamenti automatici).

      2. Seleziona On (Attivato) o Off (Disattivato), quindi seleziona Save (Salva).

    • Per aggiornare il ruolo di esecuzione:

      1. Seleziona Edit execution role (Modifica ruolo di esecuzione).

      2. ARNSpecificate il IAM ruolo che desiderate CloudFormation utilizzare quando richiamate questa estensione, quindi selezionate Salva.

    • Per aggiornare la configurazione di registrazione:

      1. Seleziona Edit logging config (Modifica configurazione di registrazione).

      2. Modifica la configurazione di registrazioneJSON, quindi seleziona Salva.

Per attivare un'estensione pubblica da utilizzare nel tuo account, utilizza il AWS CLI

Attiva la tua estensione nel AWS CloudFormation registro tramite AWS CLI.

Per attivare gli hook

Dopo aver sviluppato e registrato il tuo hook, puoi attivarlo nel tuo Account AWS pubblicandolo nel registro.

  • Per attivare un hook nell'account, usa l'operazione SetTypeConfiguration. Questa operazione abilita le proprietà dell'hook definite nella sezione relativa allo schema dell'hook properties.

    Nota

    Abilitando gli hook nel tuo account, autorizzi un hook a utilizzare le autorizzazioni definite dal tuo. Account AWS CloudFormation rimuove le autorizzazioni non richieste prima di passare le autorizzazioni all'hook. CloudFormation consiglia ai clienti o agli utenti degli hook di rivedere le autorizzazioni degli hook e di essere consapevoli delle autorizzazioni a cui sono consentiti gli hook prima di abilitare gli hook nel proprio account.

    Specifica i dati di configurazione per l'estensione hook registrata nello stesso account e Regione AWS.

    aws cloudformation --region us-west-2 set-type-configuration \ --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"TargetStacks": "ALL", "FailureMode": "FAIL", "Properties":{}}}}" \ --type-arn $HOOK_TYPE_ARN
    Importante

    Per consentire all'hook di ispezionare in modo proattivo la configurazione dello stack, devi impostare TargetStacks su ALL nella sezione HookConfiguration.

Per attivare tipi di risorse e moduli
Per attivare un'estensione pubblica da utilizzare nell'account utilizzando la AWS CLI
  • Utilizza activate-type per attivare l'estensione e specificare se aggiornare automaticamente l'estensione ogni volta che viene pubblicata una nuova versione secondaria.

    L'esempio seguente specifica l'Amazon Resource Name (ARN) pubblico di un'estensione pubblica da attivare per questo account. Inoltre, specifica che CloudFormation aggiorna l'estensione ogni volta che viene pubblicata una nuova versione secondaria.

    aws cloudformation activate-type \ --public-type-arn public_extension_ARN \ --auto-update true

    Questo comando restituisce un'ARNestensione attivata, specifica per questo account e regione.

    { "Arn": "624af370-311a-11e8-b6b7-500cexample" }
Per aggiornare la versione di un'estensione pubblica utilizzando il AWS CLI

Utilizza activate-type per attivare di nuovo l'estensione.

Utilizza il parametro --version-bump per specificare se aggiornare l'estensione alla versione MAJOR più recente, versione MINOR più recente.

aws cloudformation activate-type \ --region us-west-2 \ --type RESOURCE \ --type-name Example::Test::1234567890abcdef0 \ --type-name-alias Example::Test::Alias \ --version-bump MAJOR

Per disattivare le estensioni pubbliche nell'account

Le sezioni seguenti mostrano come disattivare le estensioni pubbliche nell'account.

Per disattivare un'estensione pubblica nel tuo account utilizzando la console CloudFormation

  1. Usa il CloudFormation registro per trovare l'estensione.

  2. Nel menu Actions (Operazioni), seleziona Deactivate (Disattiva).

  3. Seleziona Deactivate (Disattiva).

Per disattivare un'estensione pubblica nel tuo account utilizzando il AWS CLI

Per disattivare un'estensione pubblica nell'account, specifica il deactivate-type. Di seguito è riportato un esempio di comando di disattivazione della AWS CLI .

aws cloudformation deactivate-type \ --region us-west-2 \ --type MODULE \ --type-name Example::Test::Type::MODULE

Per disattivare un hook nel tuo account utilizzando il AWS CLI

La disattivazione di un hook ne impedisce l'esecuzione nell' Account AWS.

TargetStacks impostato su NONE disattiva l'hook nell'account, in modo che non venga applicato alle operazioni di stack.

Utilizza l'operazione set-type-configuration e specifica TargetStacks come NONE per disattivare un hook.

L'esempio seguente specifica il Regione AWS e l'Amazon Resource Name (ARN) dell'hook che viene disattivato.

aws cloudformation set-type-configuration \ --region us-west-2 \ --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"TargetStacks": "NONE", "FailureMode": "FAIL", "Properties":{}}}}" \ --type-arn HOOK_TYPE_ARN