Avvio di una scansione delle risorse con il generatore IaC di CloudFormation - AWS CloudFormation

Avvio di una scansione delle risorse con il generatore IaC di CloudFormation

Prima di creare un modello da risorse esistenti, devi avviare una scansione delle risorse per scoprire quelle attuali e le loro relazioni.

Puoi avviare una scansione delle risorse utilizzando una delle opzioni seguenti. Per gli utenti alle prime armi con il generatore IaC, consigliamo la prima opzione.

  • Scansiona tutte le risorse (scansione completa): esegue la scansione di tutte le risorse esistenti nell’account e nella regione attuali. Questo processo di scansione può richiedere fino a 10 minuti per 1.000 risorse.

  • Scansione di risorse specifiche (scansione parziale): seleziona manualmente i tipi di risorse da scansionare nell’account e nella regione attuali. Questa opzione offre un processo di scansione più rapido e mirato, il che la rende ideale per lo sviluppo iterativo di modelli.

Una volta completata la scansione, puoi scegliere le risorse e le risorse correlate da includere nella generazione del modello. Quando utilizzi la scansione parziale, le risorse correlate saranno disponibili durante la generazione del modello solo se:

  • le hai selezionate specificamente prima di iniziare la scansione, oppure

  • erano necessarie per scoprire i tipi di risorse selezionati.

Ad esempio, se selezioni AWS::EKS::Nodegroup senza selezionare AWS::EKS::Cluster, il generatore IaC include automaticamente le risorse AWS::EKS::Cluster nella scansione perché la scoperta del gruppo di nodi richiede prima la scoperta del cluster. In tutti gli altri casi, la scansione includerà solo le risorse selezionate in modo specifico.

Nota

Prima di continuare, verifica di disporre delle autorizzazioni necessarie per lavorare con il generatore IaC. Per ulteriori informazioni, consulta Autorizzazioni IAM richieste per la scansione delle risorse.

Avvio di una scansione delle risorse (console)

Avvio di una scansione delle risorse di tutti i tipi (scansione completa)
  1. Apri la pagina del generatore IaC della console CloudFormation.

  2. Nella barra di navigazione, nella parte superiore della schermata, seleziona la Regione AWS che contiene le risorse da scansionare.

  3. Dal pannello Scansioni, scegli Avvia una nuova scansione, quindi scegli Scansiona tutte le risorse.

Avvio di una scansione delle risorse di tipi specifici (scansione parziale)
  1. Apri la pagina del generatore IaC della console CloudFormation.

  2. Nella barra di navigazione, nella parte superiore della schermata, seleziona la Regione AWS che contiene le risorse da scansionare.

  3. Dal pannello Scansioni, scegli Avvia una nuova scansione, quindi scegli Scansiona risorse specifiche.

  4. Nella finestra di dialogo Avvia scansione parziale seleziona fino a 100 tipi di risorse, quindi scegli Avvia scansione.

Avvio di una scansione delle risorse (AWS CLI)

Avvio di una scansione delle risorse di tutti i tipi (scansione completa)

Utilizza il seguente comando start-resource-scan. Sostituisci us-east-1 con la Regione AWS che contiene le risorse da scansionare.

aws cloudformation start-resource-scan --region us-east-1

In caso di esito positivo, il comando restituisce l’ARN della scansione. Annota l’ARN della proprietà ResourceScanId. Ti serve per creare il tuo modello.

{ "ResourceScanId": "arn:aws:cloudformation:region:account-id:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60" }
Avvio di una scansione delle risorse di tipi specifici (scansione parziale)
  1. Usa il seguente comando cat per memorizzare i tipi di risorse che desideri scansionare in un file JSON denominato config.json nella tua home directory. Di seguito è riportato un esempio di configurazione di scansione che analizza le istanze Amazon EC2, i gruppi di sicurezza e tutte le risorse Amazon S3.

    $ cat > config.json [ { "Types":[ "AWS::EC2::Instance", "AWS::EC2::SecurityGroup", "AWS::S3::*" ] } ]
  2. Utilizza il comando start-resource-scan con l’opzione --scan-filters, insieme al file config.json creato, per avviare la scansione parziale. Sostituisci us-east-1 con la Regione AWS che contiene le risorse da scansionare.

    aws cloudformation start-resource-scan --scan-filters file://config.json --region us-east-1

    In caso di esito positivo, il comando restituisce l’ARN della scansione. Annota l’ARN della proprietà ResourceScanId. Ti serve per creare il tuo modello.

    { "ResourceScanId": "arn:aws:cloudformation:region:account-id:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60" }
Monitoraggio dello stato di avanzamento di una scansione delle risorse

Utilizza il comando describe-resource-scan. Per l’opzione --resource-scan-id, sostituisci l’ARN di esempio con quello effettivo.

aws cloudformation describe-resource-scan --region us-east-1 \ --resource-scan-id arn:aws:cloudformation:us-east-1:123456789012:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60

Se il comando viene eseguito correttamente, verrà visualizzato un output simile al seguente:

{ "ResourceScanId": "arn:aws:cloudformation:region:account-id:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60", "Status": "COMPLETE", "StartTime": "2023-08-21T03:10:38.485000+00:00", "EndTime": "2023-08-21T03:20:28.485000+00:00", "PercentageCompleted": 100.0, "ResourceTypes": [ "AWS::CloudFront::CachePolicy", "AWS::CloudFront::OriginRequestPolicy", "AWS::EC2::DHCPOptions", "AWS::EC2::InternetGateway", "AWS::EC2::KeyPair", "AWS::EC2::NetworkAcl", "AWS::EC2::NetworkInsightsPath", "AWS::EC2::NetworkInterface", "AWS::EC2::PlacementGroup", "AWS::EC2::Route", "AWS::EC2::RouteTable", "AWS::EC2::SecurityGroup", "AWS::EC2::Subnet", "AWS::EC2::SubnetCidrBlock", "AWS::EC2::SubnetNetworkAclAssociation", "AWS::EC2::SubnetRouteTableAssociation", ... ], "ResourcesRead": 676 }

Per una scansione parziale, l’output risulterà simile al seguente:

{ "ResourceScanId": "arn:aws:cloudformation:region:account-id:resourceScan/0a699f15-489c-43ca-a3ef-3e6ecfa5da60", "Status": "COMPLETE", "StartTime": "2025-03-06T18:24:19.542000+00:00", "EndTime": "2025-03-06T18:25:23.142000+00:00", "PercentageCompleted": 100.0, "ResourceTypes": [ "AWS::EC2::Instance", "AWS::EC2::SecurityGroup", "AWS::S3::Bucket", "AWS::S3::BucketPolicy" ], "ResourcesRead": 65, "ScanFilters": [ { "Types": [ "AWS::EC2::Instance", "AWS::EC2::SecurityGroup", "AWS::S3::*" ] } ] }

Per una descrizione dei campi dell’output, consulta DescribeResourceScan nella Documentazione di riferimento alla AWS CloudFormation API.