Utilizzo di estensioni private 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 private in CloudFormation

Le estensioni private sono quelle estensioni che hai esplicitamente consentito di utilizzare nell' Account AWS.

Sono disponibili due tipi di estensioni private:

  • Estensioni private attivate: sono le copie locali delle estensioni di terze parti che hai attivato per l'account e la Regione. Quando attivi un'estensione pubblica di terze parti, CloudFormation crea una copia locale di tale estensione nel registro del tuo account.

  • Estensioni private registrate: possono anche attivare estensioni private che non sono elencate nel CloudFormation registro pubblico. Queste possono essere estensioni che hai creato tu stesso o condivise con te dalla tua organizzazione o da altre terze parti. Per utilizzare l'estensione privata nell'ccount, devi prima registrarla. La registrazione dell'estensione ne carica una copia nel CloudFormation registro del tuo account e la attiva.

Qualsiasi utilizzo di estensioni private nell'account è analogo a quello in un ambiente sandbox (ambiente di sperimentazione). Questo perché le estensioni sono controllate in base alla versione e il comportamento di provisioning è specifico per la versione, vale a dire che le estensioni private si comportano come se fossero rese pubbliche.

Nota

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

Per informazioni sullo sviluppo di estensioni private personalizzate, consulta la Guida per l'utente dell'interfaccia CloudFormation a riga di comando.

Registrazione delle estensioni private

Per utilizzare estensioni private che non sono elencate nel CloudFormation registro, sviluppate dall'utente o condivise con l'utente, è necessario prima registrarle con CloudFormation gli account e le regioni in cui si desidera utilizzarle. La registrazione dell'estensione ne carica una copia CloudFormation nel registro del tuo account e la attiva. Una volta registrata, l'estensione privata verrà visualizzata nel CloudFormation registro dell'account e della regione in questione e potrai utilizzarla nei tuoi modelli di stack.

È possibile registrare un'estensione utilizzando il comando register-type di o utilizzando AWS CLI il submit comando della CLI. CloudFormation

Per registrare un'estensione privata utilizzando la CloudFormation CLI, consulta Registrazione delle estensioni nella Guida per l'utente della CLICloudFormation .

Autorizzazioni IAM per la registrazione di un'estensione privata

Durante la registrazione di un'estensione privata, viene specificato un bucket Amazon S3 che contiene il pacchetto del progetto dell'estensione. Questo pacchetto contiene tutti i file sorgente necessari per l'estensione che desideri registrare. L'utente che registra l'estensione deve essere in grado di accedere al pacchetto del progetto nel bucket Amazon S3. Cioè, l'utente deve disporre delle GetObjectautorizzazioni per il pacchetto di estensione.

Questo è vero indipendentemente dal fatto che tu stia utilizzando il comando register-type di o il AWS CLIsubmit comando della CLI. CloudFormation

Per ulteriori informazioni, consulta Operazioni, risorse e chiavi di condizione per Amazon S3 nella Guida per l'utente di AWS Identity and Access Management .

Registrazione delle estensioni

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

Per registrare un hook usando il AWS CLI

Registra il tuo hook con CloudFormation, in modo che sia disponibile per l'uso nel AWS CloudFormation registro.

  1. (Facoltativo) Configura il tuo Regione AWS nome predefinito inus-west-2, inviando l'configureoperazione.

    aws configure AWS Access Key ID [None]: <Your Access Key ID> AWS Secret Access Key [None]: <Your Secret Key> Default region name [None]: us-west-2 Default output format [None]: json
  2. (Opzionale) Il seguente comando costruisce e crea pacchetti del progetto hook senza registrarlo.

    $ cfn submit --dry-run
  3. Registra il tuo hook utilizzando la CloudFormation cfn submit CLI.

    cfn submit --set-default

    Questo comando restituisce il comando seguente.

    {‘ProgressStatus’: ‘COMPLETE’}

    Risultati: hai registrato correttamente l'hook.

Per registrare un tipo di risorsa utilizzando il AWS CLI

Registra il tipo di risorsa con CloudFormation, in modo che sia disponibile per l'uso nel AWS CloudFormation registro.

  1. Individua il Amazon S3 bucket che contiene il pacchetto di progetto per l'estensione privata che desideri registrare nel tuo account.

  2. Utilizza il comando register-type per registrare l'estensione nell'account:

    RegisterType è un'operazione asincrona e restituisce un token di registrazione che è possibile utilizzare per monitorare lo stato di avanzamento della richiesta di registrazione.

    Nota

    Se la tua estensione richiama le AWS API come parte della sua funzionalità, devi creare un ruolo di esecuzione IAM che includa le autorizzazioni necessarie per chiamare tali AWS API e fornire tale ruolo di esecuzione nel tuo account. È quindi possibile specificare questo ruolo di esecuzione utilizzando il parametro. --execution-role-arn CloudFormation assume quindi quel ruolo di esecuzione per fornire al tipo di risorsa le credenziali appropriate.

    Ad esempio, il comando seguente registra il tipo di risorsa My::Resource::Example nell' Account AWS corrente:

    aws cloudformation register-type --type-name My::Resource::Example --schema-handler-package [s3 object path] --type RESOURCE { "RegistrationToken": "f5525280-104e-4d35-bef5-8f1fexample" }
  3. Facoltativo: utilizzare il token di registrazione con il comando describe-type-registration per monitorare lo stato di avanzamento della richiesta di registrazione.

    Quando CloudFormation completa la richiesta di registrazione, imposta lo stato di avanzamento della richiesta su. COMPLETE

    Nell'esempio seguente viene utilizzato il token di registrazione restituito dal comando describe-type-registration sopra per restituire le informazioni sullo stato della registrazione.

    aws cloudformation describe-type-registration --registration-token f5525280-104e-4d35-bef5-8f1fexample { "ProgressStatus": "COMPLETE", "TypeArn": "arn:aws:cloudformation:us-east-1:012345678910:type/resource/My-Resource-Example", "Description": "Deployment is currently in DEPLOY_STAGE of status COMPLETED; ", "TypeVersionArn": "arn:aws:cloudformation:us-east-1:111122223333:type/resource/My-Resource-Example/00000001" }

Configurazione delle estensioni a livello di account

Un'estensione può includere proprietà di configurazione destinate a essere applicate a tutte le istanze dell'estensione per un determinato account e Regione. L'autore dell'estensione li definisce nella configurazione di definizione dell'estensione. Se sono presenti proprietà richieste nella definizione di configurazione dell'estensione, è necessario specificare tali proprietà prima di poter utilizzare l'estensione nell'account e nella Regione.

Nota

Se la configurazione del tipo include riferimenti dinamici ai valori archiviati in AWS Systems Manager or AWS Secrets Manager, qualsiasi ruolo utilizzato per fornire il tipo (ad esempio, durante la creazione o l'aggiornamento di uno stack) deve disporre delle autorizzazioni appropriate per recuperare quel valore. Nello specifico:

  • Se la configurazione del tipo contiene un parametro memorizzato in AWS Systems Manager Parameter Store, l'utente o il ruolo utilizzato per il provisioning del tipo deve disporre delle autorizzazioni per la chiamata. GetParameter

  • Se la configurazione del tipo contiene un segreto memorizzato in AWS Secrets Manager, l'utente o il ruolo utilizzato per fornire il tipo deve disporre delle autorizzazioni per la chiamata. GetSecretValue

Per ulteriori informazioni sui riferimenti dinamici, consulta la sezione Utilizzo di riferimenti dinamici per specificare valori di modello.

Per ulteriori informazioni su come vengono definite le definizioni di configurazione durante lo sviluppo di un'estensione, vedere Definizione della configurazione a livello di account di un'estensione nella Guida CloudFormation dell'utente per lo sviluppo di estensioni.

Per visualizzare i dati di configurazione correnti per un'estensione nella console CloudFormation
  1. Usa il CloudFormation registro per trovare l'estensione.

  2. Scegli l'estensione per visualizzare i dettagli dell'estensione.

  3. Nella pagina dei dettagli dell'estensione, scegli la scheda Configuration (Configurazione).

  4. Espanndi la scheda Configuration schema (Schema di configurazione) per visualizzare lo schema di configurazione definito per l'estensione.

  5. Espandi la scheda Configuration (Configurazione) per visualizzare la configurazione attualmente impostata per l'estensione.

Per visualizzare i dati di configurazione correnti per un'estensione nel AWS CLI
  • Utilizza il comando describe-type per restituire informazioni dettagliate sull'estensione. L'elemento ConfigurationSchema dell'output contiene la definizione di configurazione corrente dell'estensione in una determinata Regione.

    In alternativa, utilizza il comando batch-describe-type-configurations per restituire i dati di configurazione su più estensioni.

Per specificare le proprietà di configurazione per i tipi di estensione

Per specificare le proprietà di configurazione per un'estensione utilizzando la CloudFormation console

  1. Usa il CloudFormation registro per trovare l'estensione tra le estensioni attivate del tuo account.

  2. Seleziona l'estensione per visualizzare i relativi dettagli.

  3. Nella pagina dei dettagli dell'estensione, nella scheda Configuration (Configurazione), selezionaEdit configuration (Modifica configurazione).

    In alternativa, in Actions (Operazioni), seleziona Edit (Modifica) e successivamente Edit configuration (Modifica configurazione).

    CloudFormation visualizza la pagina Configura estensione. Assicurati che View configuration schema ((Visualizza schema di configurazione) ) sia attivato per vedere lo schema di definizione della configurazione corrente dell'estensione.

  4. Nella casella di testo Configuration JSON (Configurazione JSON), immetti una stringa JSON che rappresenti lo schema di configurazione da impostare per l'estensione. Devi convalidarlo a fronte dello schema definito in Configuration schema (Schema di configurazione).

  5. Seleziona Configure extension (Configura estensione).

Per specificare le proprietà di configurazione per un'estensione utilizzando il AWS CLI

  • Utilizza il comando set-type-configuration per specificare la configurazione da utilizzare con l'estensione nell'account e nella Regione.

    Il JSON trasmesso per --configuration deve essere convalidato a fronte dello schema di definizione della configurazione dell'estensione. Di seguito è riportato un esempio di comando set-type-configuration che specifica la configurazione.

    aws cloudformation set-type-configuration \ --region us-west-2 \ --type RESOURCE \ --type-name My::Resource::Example \ --configuration-alias default \ --configuration "{"CredentialKey": "testUserCredential"}"

Specificare una versione di un'estensione privata da utilizzare utilizzando AWS CLI

Nel tempo, è possibile registrare più versioni della stessa estensione. È possibile specificare la versione dell'estensione che si desidera utilizzare per CloudFormation le operazioni.

Per specificare la versione di un'estensione

Utilizzate il set-type-default-version comando per specificare quale versione dell'estensione utilizzare per CloudFormation le operazioni nel vostro account.

Ad esempio, il comando seguente imposta la versione predefinita del tipo di risorsa My::Resource::Example per 00000003 per l'account corrente.

aws cloudformation set-type-default-version \ --type RESOURCE \ --type-name My::Resource::Example \ --version-id 00000003

Per specificare la versione predefinita dell'hook

Per specificare la versione predefinita dell'hook nell'account, usa il comando set-type-default-version e specifica il tipo, il nome tipo e l'ID versione.

aws cloudformation set-type-default-version \ --type HOOK \ --type-name MyCompany::Testing::MyTestHook \ --version-id 00000003