AWS Systems ManagerChange Managernon è più aperto a nuovi clienti. I clienti esistenti possono continuare a utilizzare il servizio normalmente. Per ulteriori informazioni, consulta AWS Systems ManagerChange Managerla pagina Modifica della 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à.
Utilizzo di profili Chef InSpec con la conformità Systems Manager
AWS Systems Manager si integra con Chef InSpec
-
Controllo dell'apertura o della chiusura di porte specifiche.
-
Controllo dell'esecuzione di determinate applicazioni.
-
Controllo dell'avvenuta installazione di specifici pacchetti.
-
Controllo delle chiavi del Registro di sistema Windows per proprietà specifiche.
Puoi creare InSpec profili solo per le istanze Amazon Elastic Compute Cloud (Amazon EC2) gestite con Systems Manager. I server locali o le macchine virtuali (VMs) non sono supportati. Il seguente profilo Chef InSpec di esempio controlla se la porta 22 sia aperta.
control 'Scan Port' do impact 10.0 title 'Server: Configure the service port' desc 'Always specify which port the SSH server should listen to. Prevent unexpected settings.' describe sshd_config do its('Port') { should eq('22') } end end
InSpec include una raccolta di risorse che consentono di scrivere rapidamente controlli e controlli di controllo. InSpec utilizza il InSpecDomain-specific Language (DSL)
Come funziona
Ecco come funziona il processo di utilizzo dei InSpec profili con Compliance:
-
Identifica InSpec i profili predefiniti che desideri utilizzare o creane uno personalizzato. Per iniziare, ci si può avvalere dei profili predefiniti
disponibili su GitHub. Per informazioni su come creare i tuoi InSpec profili, consulta Chef Chef InSpec Profiles . -
I profili possono essere memorizzati in un archivio GitHub pubblico o privato oppure in un bucket S3.
-
Esegui la conformità con InSpec i tuoi profili utilizzando il documento Systems Manager (documento SSM)
AWS-RunInspecChecks. È possibile iniziare una scansione di conformità utilizzandoRun Command, uno strumento in AWS Systems Manager, per le scansioni su richiesta, oppure è possibile pianificare scansioni di conformità regolari utilizzando State Manager uno strumento in. AWS Systems Manager -
Per identificare i nodi non conformi ci si può avvalere dell'API di conformità o della console di conformità .
Nota
Osservare le seguenti informazioni.
-
Chef utilizza un client sui nodi per elaborare il profilo. Non è necessario installare il client. Quando Systems Manager esegue il documento SSM
AWS-RunInspecChecks, il sistema verifica che il client sia installato. Se non lo fosse, Systems Manager installa il client Chef durante la scansione, poi, al termine della stessa, lo disinstalla. -
L’esecuzione del documento SSM
AWS-RunInspecChecks, come descritto in questo argomento, assegna una voce di conformità di tipoCustom:Inspeca ogni nodo di destinazione. Per assegnare questo tipo di conformità, il documento richiama l'operazione API. PutComplianceItems
Esecuzione di una scansione di InSpec conformità
Questa sezione include informazioni su come eseguire una scansione di InSpec conformità utilizzando la console Systems Manager e AWS Command Line Interface (AWS CLI). La procedura della console illustra come configurare State Manager per eseguire la scansione. La AWS CLI procedura mostra come Run Command configurare l'esecuzione della scansione.
Esecuzione di una scansione di InSpec conformità con State Manager (console)
Per eseguire una scansione di InSpec conformità State Manager utilizzando la AWS Systems Manager console
Apri la AWS Systems Manager console all'indirizzo https://console.aws.amazon.com/systems-manager/
. Nel pannello di navigazione, scegliere State Manager.
-
Selezionare Create association (Crea associazione).
-
Immettere un nome nella sezione Provide association details (Fornisci dettagli associazione).
-
Nell'elenco Command document (Documento comando) scegliere
AWS-RunInspecChecks. -
Nell'elenco Document version (Versione del documento), scegliere Latest at runtime (Ultima versione al tempo di esecuzione).
-
Nella sezione Parameters (Parametri), dall'elenco Source Type (Tipo di origine), scegliere GitHub o S3.
Se lo desideri GitHub, inserisci il percorso di un InSpec profilo in un GitHub archivio pubblico o privato nel campo Informazioni sulla fonte. Ecco un esempio di percorso a un profilo pubblico fornito dal team di Systems Manager dalla seguente posizione: https://github.com/awslabs/amazon- ssm/tree/master/Compliance/InSpec/PortCheck
. {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}Se scegli S3, inserisci un URL valido per un InSpec profilo in un bucket S3 nel campo Informazioni sulla fonte.
Per ulteriori informazioni sull'integrazione di Systems Manager con GitHub e Amazon S3, consulta Esecuzione di script da GitHub.
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.
-
Nella sezione Specify schedule (Specifica pianificazione), è possibile programmare su base periodica l'esecuzione della scansione di conformità avvalendosi delle opzioni specifiche del generatore di pianificazione.
In Rate control (Controllo velocità):
-
In Concurrency (Simultaneità), specificare 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 di quanti nodi gestiti siano scelti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
-
Per Error threshold (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 3 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.
-
(Opzionale) Nella sezione Output options (Opzioni di output), per salvare l'output del comando in un file, selezionare la casella Write command output to an S3 bucket (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.
-
Scegliere Create Association (Crea associazione). Il sistema crea l'associazione ed esegue automaticamente la scansione di conformità.
-
Attendere per alcuni minuti il completamento della scansione, poi selezionare Compliance (Conformità) nel riquadro di navigazione.
-
In Corresponding managed instances (Istanze gestite corrispondenti), individuare i nodi in cui la colonna Compliance Type (Tipo di conformità) è Custom:Inspec (Personalizzata:Inspec).
-
Scegliere un ID nodo per visualizzare i dettagli degli stati non conformi.
Esecuzione di una scansione di conformità con () InSpec Run CommandAWS CLI
Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.
Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.
-
Esegui uno dei seguenti comandi per eseguire un InSpec profilo da uno GitHub o da Amazon S3.
Il comando accetta i parametri seguenti:
-
sourceType: GitHub o Amazon S3
-
SourceInfo: URL della cartella InSpec del profilo GitHub in o in un bucket S3. La cartella deve contenere il InSpec file di base (*.yml) e tutti i controlli correlati (*.rb).
GitHub
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'Ecco un esempio.
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'Amazon S3
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'Ecco un esempio.
aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}' -
-
Con il comando seguente è possibile visualizzare un riepilogo della scansione di conformità.
aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec -
Eseguire il seguente comando per visualizzare i dettagli di un nodo non conforme.
aws ssm list-compliance-items --resource-idsnode_ID--resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks