Esecuzione di documenti da posizioni remote - AWS Systems Manager

AWS Systems ManagerChange Managernon è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, vedi modifica della AWS Systems ManagerChange Manager disponibilità.

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

Esecuzione di documenti da posizioni remote

È possibile eseguire documenti AWS Systems Manager (SSM) da postazioni remote utilizzando il documento SSM AWS-RunDocument predefinito. Questo documento supporta l'esecuzione di documenti SSM memorizzati nelle seguenti posizioni:

  • Repository GitHub pubblici e privati (GitHub Enterprise non è supportato)

  • Bucket Amazon S3

  • Systems Manager

Sebbene sia possibile eseguire documenti remoti anche utilizzando State Manager i nostri strumenti di automazione AWS Systems Manager, la procedura seguente descrive solo come eseguire documenti SSM remoti utilizzando AWS Systems Manager Run Command la console Systems Manager.

Nota

AWS-RunDocument può essere utilizzato per eseguire solo documenti SSM di tipo comando, non altri tipi come i runbook di Automation. AWS-RunDocument utilizza il plugin aws:downloadContent. Per ulteriori informazioni sui plugin aws:downloadContent, consultare aws:downloadContent.

avvertimento

AWS-RunDocumentpuò eseguire il contenuto dei documenti da varie fonti (documenti SSM, S3 GitHub,). URLs Quando si eseguono documenti remoti, le autorizzazioni IAM valutate si riferiscono al documento remoto e così ssm:GetDocument via. ssm:SendCommand AWS-RunDocument Se disponi di policy IAM che negano l'accesso a specifici documenti SSM, gli utenti con AWS-RunDocument autorizzazioni possono comunque eseguire tali documenti negati passando il contenuto del documento come parametri, il che potrebbe non essere soggetto alle stesse restrizioni IAM specifiche del documento.

Per limitare correttamente l'esecuzione dei documenti, utilizza uno di questi approcci:

  • Allowlist delle fonti approvate: se devi utilizzare l'esecuzione annidata dei documenti, limita l'accesso solo alle fonti approvate utilizzando i controlli appropriati per ogni tipo di fonte: policy IAM ssm:GetDocument per il controllo delle sorgenti di documenti SSM, policy di bucket IAM e Amazon S3 per le sorgenti Amazon S3 e impostazioni di rete (come endpoint VPC o gruppi di sicurezza) per le fonti Internet pubbliche.

  • Limita l'accesso a AWS- RunDocument: Deny ssm:SendCommand on AWS-RunDocument e a qualsiasi altro documento che utilizza il aws:runDocument plug-in nelle tue policy IAM per impedire l'esecuzione di documenti annidati.

  • Usa i limiti di autorizzazione: implementa i limiti di autorizzazione IAM per impostare le autorizzazioni massime per gli utenti, impedendo loro di eseguire documenti non autorizzati indipendentemente dal metodo di esecuzione.

Per ulteriori informazioni sulle migliori pratiche e sui limiti di autorizzazione IAM, consulta Limiti delle autorizzazioni per le entità IAM nella Guida per l'AWS Identity and Access Management utente.

Prima di iniziare

Prima di eseguire un documento remoto devi completare le attività seguenti.

  • Creare un documento SSM e salvarlo in una posizione remota. Per ulteriori informazioni, consulta Creazione del contenuto del documento SSM

  • Se si decide di eseguire un documento remoto archiviato in un repository GitHub privato, è necessario creare un parametro SecureString di Systems Manager per il token di accesso di sicurezza a GitHub. Non è possibile accedere a un documento remoto in un repository GitHub privato trasferendo manualmente il token su SSH. Il token di accesso deve essere trasferito come parametro SecureString di Systems Manager. Per ulteriori informazioni sulla creazione di un parametro SecureString, consulta Creazione di parametri Parameter Store in Systems Manager.

Esecuzione di un documento remoto (console remota)

Per eseguire un documento remoto
  1. Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/.

  2. Nel pannello di navigazione, scegli Run Command.

  3. Seleziona Esegui comando.

  4. Nell'elenco Document (Documento) scegliere AWS-RunDocument.

  5. In Command parameters (Parametri di comando), per Source Type (Tipo di origine), scegliere un'opzione.

    • Se si sceglie GitHub, specificare le Source Info (Informazioni origine) nel formato seguente:

      { "owner": "owner_name", "repository": "repository_name", "path": "path_to_document", "getOptions":"branch:branch_name", "tokenInfo": "{{ssm-secure:secure-string-token}}" }

      Esempio:

      { "owner":"TestUser", "repository":"GitHubTestExamples", "path":"scripts/python/test-script", "getOptions":"branch:exampleBranch", "tokenInfo":"{{ssm-secure:my-secure-string-token}}" }
      Nota

      getOptions sono opzioni aggiuntive per recuperare il contenuto da un ramo diverso dal master o da un commit specifico nel repository. getOptions può essere omesso se si utilizza l'ultimo commit nel ramo master. Il parametro branch è necessario solo se il documento SSM è memorizzato in un ramo diverso da master.

      Per utilizzare la versione del documento SSM in un particolare commit nel repository, usare commitID con getOptions invece di branch. Ad esempio:

      "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    • Se si sceglie S3, specificare le Source Info (Informazioni origine) nel formato seguente:

      {"path":"URL_to_document_in_S3"}

      Esempio:

      {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
    • Se si sceglie SSMDocument, specificare le Source Info (Informazioni origine) nel formato seguente:

      {"name": "document_name"}

      Esempio:

      {"name": "mySSMdoc"}
  6. Nel campo Document Parameters (Parametri documento), inserire i parametri per il documento SSM remoto. Ad esempio, se si esegue il documento AWS-RunPowerShell, è possibile specificare:

    {"commands": ["date", "echo \"Hello World\""]}

    Se si esegue il documento AWS-ConfigureAWSPack, è possibile specificare:

    { "action":"Install", "name":"AWSPVDriver" }
  7. Nella sezione Targets (Destinazioni), identificare i nodi in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.

    Suggerimento

    Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti per suggerimenti sulla risoluzione dei problemi.

  8. In Altri parametri:

    • In Commento, digita le informazioni su questo comando.

    • In Timeout (secondi), specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando.

  9. Per Controllo velocità:

    • In Simultaneità, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.

      Nota

      Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.

    • Per Soglia di errore, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

  10. (Facoltativo) Nella sezione Opzioni di output, per salvare l'output del comando in un file, seleziona la casella Scrivi l'output del comando in un bucket S3. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.

    Nota

    Le autorizzazioni S3 che garantiscono la possibilità di scrivere i dati in un bucket S3 sono quelle del profilo dell'istanza (per EC2 le istanze) o del ruolo del servizio IAM (macchine ad attivazione ibrida) assegnato all'istanza, non quelle dell'utente IAM che esegue questa attività. Per ulteriori informazioni, consulta le pagine Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager oppure Creazione di un ruolo di servizio IAM per un ambiente ibrido. Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

  11. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione Notifiche SNS selezionara la casella di controllo Abilita notifiche SNS.

    Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS.

  12. Scegli Esegui.

Nota

Per ulteriori informazioni sul riavvio dei server e delle istanze quando usi Run Command per chiamare gli script, consulta Gestione di riavvii durante l'esecuzione dei comandi.