View a markdown version of this page

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 del contenitore generando firme crittografiche utilizzando 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 fa riferimento a uno o più profili di firma Signer e, facoltativamente, a filtri di repository che limitano i repository in cui le immagini devono essere 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 del firmatario: crea almeno un profilo di firma del firmatario. 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 contenitori 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. Ad esempio, un profilo di firma ARN ha il seguente aspetto:. arn:partition:signer:region:account-id:/signing-profiles/profile-name

  • Autorizzazioni IAM: il responsabile 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 policy basata sull'identità per il principale IAM per includere le autorizzazioni sia per le operazioni del repository ECR che per le operazioni di firma dei 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, si configura un profilo di firma e si specificano i filtri relativi ai nomi dei repository. Quando viene inviata una nuova immagine, Amazon ECR indica la regola di firma e il profilo di firma che possono firmare l'immagine. Se sono presenti più corrispondenze, Amazon ECR genera più firme.

Nota

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

Nota

La firma gestita di Amazon ECR è disponibile in tutte le AWS regioni in cui è disponibile la firma delle immagini dei contenitori 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 in cui le immagini devono essere firmate.

Console di gestione AWS

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

  1. Apri la console https://console.aws.amazon.com/ecr/private-registry/repositories 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 del profilo di firma, in Seleziona un profilo AWS firmatario, scegli Crea nuovo profilo AWS firmatario, inserisci il nome del profilo e, facoltativamente, modifica il periodo di validità della firma. Quindi seleziona Avanti.

  4. Nella pagina Filtri, in Seleziona repository, inserisci un filtro relativo al nome del repository. Quindi seleziona Avanti.

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

AWS CLI

Utilizza 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 API contenente la configurazione di firma.

  • Visualizza la tua configurazione di firma

    Recupera la tua configurazione di firma:

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

    Dovresti vedere la risposta API contenente la configurazione di firma.

  • Verifica 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 verificare 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 della firma, dovresti vedere lo stato della firma nella risposta dell'API. Se lo stato ha esito positivo, dovresti vedere una firma inviata al tuo repository.

  • Elimina la tua configurazione di firma

    Elimina 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:

  • Cross-region la firma non è supportata: i profili di firma devono trovarsi nella stessa regione del registro Amazon ECR. Non è possibile utilizzare un profilo di firma di una regione per firmare immagini in un registro situato in una regione diversa.

  • Cross-account la firma è supportata: i profili di firma possono trovarsi in account diversi da quelli del registro Amazon ECR. Ciò consente alle organizzazioni di gestire centralmente i profili di firma, consentendo allo stesso tempo agli sviluppatori di altri account di utilizzarli. Per ulteriori informazioni, consulta Configurare la firma tra più account per Signer nella Guida per gli AWS Signer sviluppatori.

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