Firma gestita - Amazon ECR

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

Firma gestita

La firma gestita di Amazon ECR firma automaticamente le immagini dei container generando firme crittografiche con AWS Signer quando le immagini vengono inviate ad Amazon ECR. Ciò elimina la necessità di installare e configurare strumenti lato client e consente di gestire centralmente la firma come configurazione del registro.

Prerequisiti

Per configurare la firma gestita, crei una configurazione di firma con Amazon ECR che faccia riferimento a uno o più profili di firma Signer e, facoltativamente, filtri di repository che limitano i repository con le immagini firmate. Una volta configurata, la firma gestita di Amazon ECR firma automaticamente le immagini man mano che vengono inviate utilizzando l'identità dell'entità che invia l'immagine.

Prima di poter configurare la firma gestita, devi disporre di quanto segue:

  • Un profilo di firma per i firmatari: crea almeno un profilo di firma per i firmatari. Un profilo di firma è una risorsa AWS Signer unica che puoi utilizzare per eseguire operazioni di firma in Amazon ECR. I profili di firma consentono di firmare e verificare elementi del codice, come immagini di container e pacchetti di distribuzione. AWS Lambda Ogni profilo di firma indica la piattaforma di firma a cui firmare, un ID della piattaforma e altre informazioni specifiche della piattaforma. Per esempio, un profilo di firma ARN ha questo aspetto:. arn:partition:signer:region:account-id:/signing-profiles/profile-name

  • Autorizzazioni IAM: il principale IAM che invia l'immagine deve disporre delle autorizzazioni IAM necessarie per accedere al profilo di firma Signer pertinente e al relativo repository ECR. È necessario modificare la politica basata sull'identità per il principale IAM in modo da includere le autorizzazioni sia per le operazioni del repository ECR che per le operazioni di firma Signer. La seguente politica di esempio mostra le autorizzazioni richieste:

{ "Version": "2012-10-17", "Statement": [ { "Sid":"UploadSignaturePermissions", "Effect":"Allow", "Action":[ "ecr:CompleteLayerUpload", "ecr:UploadLayerPart", "ecr:InitiateLayerUpload", "ecr:BatchCheckLayerAvailability", "ecr:PutImage" ], "Resource":"arn:aws:ecr:region:account-id:repository/repository-name" }, { "Sid": "SignPermissions", "Effect": "Allow", "Action": [ "signer:SignPayload" ], "Resource": "arn:aws:signer:region:account-id:/signing-profiles/signing-profile-name" } ] }

Con la firma gestita di Amazon ECR, puoi creare più regole di firma (fino a 10 per registro) per creare limiti di sicurezza più solidi. Ad esempio, potresti eseguire più pipeline di compilazione e voler limitare i repository che ciascuna pipeline può firmare. All'interno di ogni regola, configuri un profilo di firma e specifichi i filtri dei nomi del repository. Quando viene inviata una nuova immagine, Amazon ECR corrisponde alla regola di firma e al profilo di firma che possono firmare l'immagine. Se ci sono più corrispondenze, Amazon ECR genera più firme.

Nota

Se verifichi le firme manualmente, devi comunque installare la CLI di Notation.

Nota

La firma gestita di Amazon ECR è disponibile in tutte le AWS regioni in cui è disponibile la firma di immagini di container con AWS Signer.

Nozioni di base

Segui questi passaggi per configurare la firma gestita. Fornisci ad Amazon ECR un riferimento a un profilo di firma del firmatario e, facoltativamente, filtri che limitano i repository con le immagini firmate.

Console di gestione AWS

Utilizza i seguenti passaggi per configurare la firma gestita utilizzando. Console di gestione AWS

  1. Apri la console Amazon ECR. Nel riquadro di navigazione a sinistra, seleziona Registro privato, Caratteristiche e impostazioni, Firma gestita.

  2. Nella pagina Regole di firma, seleziona Crea regola.

  3. Nella pagina Profilo di firma, in Seleziona un profilo AWS firmatario, scegli Crea nuovo profilo AWS firmatario, inserisci un nome di profilo e, facoltativamente, modifica il periodo di validità della firma. Quindi seleziona Avanti.

  4. Nella pagina Filtri, in Seleziona i repository, inserisci un filtro per il nome del repository. Quindi seleziona Avanti.

  5. Nella pagina Rivedi e crea, verifica i filtri del profilo del AWS firmatario e del nome del repository che hai inserito. Se tutto sembra corretto, seleziona Salva.

AWS CLI

Usa i seguenti AWS CLI comandi per configurare la firma gestita.

  • Crea una regola di firma

    Crea una configurazione di firma con il tuo profilo di firma ARN. Crea un file JSON con i seguenti contenuti:

    { "rules": [ { "signingProfileArn": "arn:aws:signer:region:account-id:/signing-profiles/profile-name", "repositoryFilters": [ { "filter": "test*", "filterType": "WILDCARD_MATCH" } ] } ] }

    Quindi, esegui il comando riportato di seguito:

    aws ecr --region region \ put-signing-configuration \ --signing-configuration file://signing-config.json

    Dovresti vedere la risposta dell'API contenente la configurazione di firma.

  • Visualizza la tua configurazione di firma

    Recupera la configurazione di firma:

    aws ecr --region region \ get-signing-configuration

    Dovresti vedere la risposta dell'API contenente la configurazione di firma.

  • Controlla lo stato della firma dell'immagine

    Invia un'immagine al tuo repository. Ad esempio:

    docker pull ubuntu IMAGE_NAME="account-id.dkr.ecr.region.amazonaws.com/repository-name" IMAGE_TAG="${IMAGE_NAME}:test-1" docker tag ubuntu $IMAGE_TAG docker push $IMAGE_TAG

    Dopo aver premuto, usa il tag dell'immagine per controllare lo stato della firma:

    aws ecr --region region \ describe-image-signing-status \ --repository-name repository-name \ --image-id imageTag=test-1

    Se il nome del repository corrisponde al filtro del repository definito nella configurazione di firma, dovresti vedere lo stato della firma nella risposta dell'API. Se lo stato è positivo, dovresti vedere una firma inserita nel tuo repository.

  • Elimina la configurazione di firma

    Eliminare la configurazione di firma:

    aws ecr --region region \ delete-signing-configuration

    Dovresti vedere la risposta API contenente la configurazione di firma eliminata.

Considerazioni

Le seguenti limitazioni e funzionalità si applicano alla firma gestita:

  • La firma tra regioni non è supportata: i profili di firma devono trovarsi nella stessa regione del registro Amazon ECR. Non puoi utilizzare un profilo di firma di una regione per firmare immagini in un registro situato in un'altra regione.

  • È supportata la firma su più account: i profili di firma possono trovarsi in account diversi rispetto al registro Amazon ECR. Ciò consente alle organizzazioni di gestire centralmente i profili di firma, consentendo al contempo agli sviluppatori di altri account di utilizzarli. Per ulteriori informazioni, consulta Configurare la firma su più account per Signer nella Guida per gli AWS Signer sviluppatori.

  • Le firme non possono essere firmate: non puoi firmare le firme da solo. È possibile firmare solo le immagini dei contenitori.