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à.
Crittografia dei dati a riposo
Importante
Crittografia lato server a doppio livello con ( AWS KMS DSSE-KMS) è disponibile solo nelle regioni. AWS GovCloud (US)
Amazon ECR memorizza le immagini nei bucket Amazon S3 gestiti da Amazon ECR. Per impostazione predefinita, Amazon ECR utilizza la crittografia lato server con chiavi di crittografia gestite da Amazon S3 che crittografano i dati a riposo utilizzando un algoritmo di crittografia AES-256. Ciò non richiede alcuna operazione da parte tua e viene offerto senza costi aggiuntivi. Per ulteriori informazioni, consulta Protezione dei dati mediante la crittografia lato server con chiavi di crittografia gestite da Amazon S3 (SSE-S3) nella Guida per l'utente di Amazon Simple Storage Service.
Per un maggiore controllo sulla crittografia per i tuoi repository Amazon ECR, puoi utilizzare la crittografia lato server con chiavi KMS archiviate in (). AWS Key Management Service AWS KMS Quando si utilizza AWS KMS per crittografare i dati, è possibile utilizzare l'impostazione predefinita Chiave gestita da AWS, gestita da Amazon ECR, o specificare la propria chiave KMS (denominata chiave gestita dal cliente). Per ulteriori informazioni, consulta Protezione dei dati utilizzando la crittografia lato server con chiavi KMS archiviate in AWS KMS (SSE-KMS) nella Guida per l'utente di Amazon Simple Storage Service.
Puoi scegliere di applicare due livelli di crittografia alle tue immagini Amazon ECR utilizzando la crittografia lato server a doppio livello con ( AWS KMS DSSE-KMS). DSSE-KMS l'opzione è simile a SSE-KMS, ma applica due singoli livelli di crittografia anziché un livello. Per ulteriori informazioni, vedere Utilizzo della crittografia lato server a due livelli con AWS KMS chiavi (DSSE-KMS).
Ogni repository Amazon ECR dispone di una configurazione di crittografia che viene impostata al momento della creazione del repository. È possibile utilizzare configurazioni di crittografia diverse su ciascun repository. Per ulteriori informazioni, consulta Creazione di un repository privato Amazon ECR per archiviare immagini.
Quando viene creato un repository con la AWS KMS crittografia abilitata, viene utilizzata una chiave KMS per crittografare il contenuto del repository. Inoltre, Amazon ECR aggiunge una AWS KMS sovvenzione alla chiave KMS con l'archivio Amazon ECR come beneficiario principale.
Di seguito vengono fornite informazioni di alto livello su come Amazon ECR è integrato con AWS KMS per crittografare e decrittografare i repository:
-
Durante la creazione di un repository, Amazon ECR invia una DescribeKeychiamata a per AWS KMS convalidare e recuperare l'Amazon Resource Name (ARN) della chiave KMS specificata nella configurazione di crittografia.
-
Amazon ECR invia due CreateGrantrichieste per AWS KMS creare sovvenzioni sulla chiave KMS per consentire ad Amazon ECR di crittografare e decrittografare i dati utilizzando la chiave dati.
-
Quando si invia un'immagine, viene effettuata una GenerateDataKeyrichiesta AWS KMS che specifica la chiave KMS da utilizzare per crittografare il livello di immagine e il manifesto.
-
AWS KMS genera una nuova chiave dati, la cripta con la chiave KMS specificata e invia la chiave di dati crittografata da archiviare con i metadati del livello di immagine e il manifesto dell'immagine.
-
Quando si estrae un'immagine, viene effettuata una richiesta Decrypt a AWS KMS, specificando la chiave di dati crittografata.
-
AWS KMS decrittografa la chiave dati crittografata e invia la chiave dati decrittografata ad Amazon S3.
-
La chiave dati viene utilizzata per decrittografare il livello immagine prima che il livello immagine venga estratto.
-
Quando un repository viene eliminato, Amazon ECR invia due RetireGrantrichieste per AWS KMS ritirare le sovvenzioni create per il repository.
Considerazioni
I seguenti punti devono essere considerati quando si utilizza la crittografia basata ( AWS KMS SSE-KMS oppure DSSE-KMS) con Amazon ECR.
-
Se crei il tuo repository Amazon ECR con crittografia KMS e non specifichi una chiave KMS, Amazon ECR utilizza un alias Chiave gestita da AWS con l'alias per impostazione predefinita.
aws/ecr
Questa chiave KMS viene creata nel tuo account la prima volta che crei un repository con la crittografia KMS abilitata. -
La configurazione della crittografia del repository non può essere modificata dopo la creazione di un repository.
-
Quando si utilizza la crittografia KMS con la propria chiave KMS, la chiave deve esistere nella stessa regione del repository.
-
Le autorizzazioni che Amazon ECR crea per tuo conto non devono essere revocate. Se revochi la concessione che autorizza Amazon ECR a utilizzare AWS KMS le chiavi del tuo account, Amazon ECR non può accedere a questi dati, crittografare le nuove immagini inserite nel repository o decrittografarle quando vengono estratte. Quando revochi una concessione per Amazon ECR, la modifica avviene immediatamente. Per revocare i diritti di accesso, eliminare il repository piuttosto che revocare la concessione. Quando un repository viene eliminato, Amazon ECR ritira le concessioni per tuo conto.
-
L'utilizzo delle chiavi comporta AWS KMS un costo. Per ulteriori informazioni, consulta Prezzi di AWS Key Management Service
. -
L'utilizzo della crittografia lato server a due livelli comporta un costo. Per ulteriori informazioni, consulta i prezzi di Amazon ECR
Autorizzazioni IAM richieste
Quando crei o elimini un repository Amazon ECR con crittografia lato server utilizzando AWS KMS, le autorizzazioni richieste dipendono dalla chiave KMS specifica in uso.
Autorizzazioni IAM richieste Chiave gestita da AWS per l'utilizzo di Amazon ECR
Per impostazione predefinita, quando AWS KMS la crittografia è abilitata per un repository Amazon ECR ma non viene specificata alcuna chiave KMS, viene utilizzata la per Chiave gestita da AWS Amazon ECR. Quando la chiave KMS AWS gestita per Amazon ECR viene utilizzata per crittografare un repository, qualsiasi principale che disponga dell'autorizzazione a creare un repository può anche abilitare la crittografia sul repository. AWS KMS Tuttavia, l'entità principale IAM che elimina il repository deve disporre dell'autorizzazione kms:RetireGrant
. Ciò consente il ritiro delle sovvenzioni che sono state aggiunte alla chiave al momento della creazione del repository. AWS KMS
La seguente policy IAM di esempio può essere aggiunta come policy inline a un utente per assicurarsi che questi disponga delle autorizzazioni minime necessarie per eliminare un repository per cui è attivata la crittografia. La chiave KMS utilizzata per crittografare il repository può essere specificata utilizzando il parametro della risorsa.
{ "Version": "2012-10-17", "Id": "ecr-kms-permissions", "Statement": [ { "Sid": "AllowAccessToRetireTheGrantsAssociatedWithTheKey", "Effect": "Allow", "Action": [ "kms:RetireGrant" ], "Resource": "arn:aws:kms:
us-west-2
:111122223333
:key/b8d9ae76-080c-4043-92EXAMPLE
" } ] }
Autorizzazioni IAM richieste quando si utilizza una chiave gestita dal cliente
Quando si crea un repository con AWS KMS crittografia abilitata utilizzando una chiave gestita dal cliente, sono necessarie le autorizzazioni sia per la politica delle chiavi KMS che per la politica IAM per l'utente o il ruolo che crea il repository.
Quando crei la tua chiave KMS, puoi utilizzare la chiave predefinita creata dalla policy AWS KMS o puoi specificare un'icona personalizzata. Per garantire che la chiave gestita dal cliente rimanga gestibile dal proprietario dell'account, la politica chiave per la chiave KMS dovrebbe consentire tutte le AWS KMS azioni all'utente root dell'account. Puoi aggiungere ulteriori autorizzazioni con ambito alle policy chiave, ma almeno all'utente root devono essere concesse autorizzazioni per gestire la chiave KMS. Per consentire l'utilizzo della chiave KMS solo per le richieste che provengono da Amazon ECR, puoi utilizzare la chiave kms: ViaService condition con il valore. ecr.
<region>
.amazonaws.com
L'esempio seguente di policy chiave fornisce all' AWS account (utente root) che possiede la chiave KMS l'accesso completo alla chiave KMS. Per ulteriori informazioni su questa policy chiave di esempio, consulta Consente l'accesso all' AWS account e abilita le politiche IAM nella AWS Key Management Service Developer Guide.
{ "Version": "2012-10-17", "Id": "ecr-key-policy", "Statement": [ { "Sid": "EnableIAMUserPermissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:root" }, "Action": "kms:*", "Resource": "*" } ] }
L'utente IAM, il ruolo IAM o l' AWS account che crea i tuoi repository deve disporre dell'kms:DescribeKey
autorizzazione e kms:CreateGrant
kms:RetireGrant
, oltre alle autorizzazioni Amazon ECR necessarie.
Nota
L'autorizzazione kms:RetireGrant
deve essere aggiunta alla policy IAM dell'utente o del ruolo che crea il repository. Le autorizzazioni kms:CreateGrant
e kms:DescribeKey
possono essere aggiunte alla policy delle chiave per la chiave KMS o alla policy IAM dell'utente o del ruolo che creano il repository. Per ulteriori informazioni su come funzionano le AWS KMS autorizzazioni, consulta Autorizzazioni AWS KMS
API: riferimento alle azioni e alle risorse nella Guida per gli sviluppatori.AWS Key Management Service
La seguente policy IAM di esempio può essere aggiunta come policy inline a un utente per assicurarsi che questi disponga delle autorizzazioni minime necessarie per creare un repository per cui è attivata la crittografia ed eliminare il repository al termine. La AWS KMS key utilizzata per crittografare il repository può essere specificata utilizzando il parametro delle risorse.
{ "Version": "2012-10-17", "Id": "ecr-kms-permissions", "Statement": [ { "Sid": "AllowAccessToCreateAndRetireTheGrantsAssociatedWithTheKeyAsWellAsDescribeTheKey", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:RetireGrant", "kms:DescribeKey" ], "Resource": "arn:aws:kms:
us-west-2
:111122223333
:key/b8d9ae76-080c-4043-92EXAMPLE
" } ] }
Consenti a un utente di elencare le chiavi KMS nella console durante la creazione di un repository
Quando si utilizza la console Amazon ECR per creare un repository, è possibile concedere le autorizzazioni per consentire a un utente di elencare le chiavi KMS gestite dal cliente nella regione quando si abilita la crittografia per il repository. L'esempio di policy IAM seguente illustra le autorizzazioni necessarie per elencare le chiavi e gli alias KMS quando si utilizza la console.
{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "kms:DescribeKey" ], "Resource": "*" } }
Monitoraggio dell'interazione di Amazon ECR con AWS KMS
Puoi utilizzarlo AWS CloudTrail per tenere traccia delle richieste a cui Amazon ECR invia per tuo AWS KMS conto. Le voci di registro contenute nel CloudTrail registro contengono una chiave di contesto di crittografia per renderle più facilmente identificabili.
Contesto di crittografia di Amazon ECR
Un contesto di crittografia è un set di coppie chiave-valore che contiene dati arbitrari non segreti. Quando si include un contesto di crittografia in una richiesta di crittografia dei dati, associa AWS KMS crittograficamente il contesto di crittografia ai dati crittografati. lo stesso contesto di crittografia sia necessario per decrittografare i dati.
Nelle sue richieste GenerateDataKeye Decrypt a, AWS KMS Amazon ECR utilizza un contesto di crittografia con due coppie nome-valore che identificano il repository e il bucket Amazon S3 utilizzati. Questo viene mostrato nell'esempio seguente. I nomi non variano, ma i valori del contesto di crittografia combinati saranno diversi per ogni valore.
"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::
us-west-2
-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1
/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df", "aws:ecr:arn": "arn:aws:ecr:us-west-2
:111122223333
:repository/repository-name
" }
Puoi utilizzare il contesto di crittografia per identificare queste operazioni crittografiche nei record e nei log di controllo, come AWS CloudTrailAmazon CloudWatch Logs, e come condizione per l'autorizzazione nelle politiche e nelle concessioni.
Il contesto di crittografia di Amazon ECR è costituito da due coppie nome-valore.
-
aws:s3:arn – La prima coppia nome-valore identifica il bucket. La chiave è
aws:s3:arn
. L'Amazon Resource Name (ARN) del bucket Amazon S3 è il valore."aws:s3:arn": "
ARN of an Amazon S3 bucket
"Ad esempio, se l'ARN del bucket è
arn:aws:s3:::
, il contesto di crittografia include la seguente coppia.us-west-2
-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1
/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df"arn:aws:s3:::
us-west-2
-starport-manifest-bucket/EXAMPLE1-90ab-cdef-fedc-ba987BUCKET1
/sha256:a7766145a775d39e53a713c75b6fd6d318740e70327aaa3ed5d09e0ef33fc3df" -
aws:ecr:arn – La seconda coppia nome-valore identifica l'Amazon Resource Name (ARN) del repository. La chiave è
aws:ecr:arn
. Il valore rappresenta l'ARN del repository."aws:ecr:arn": "
ARN of an Amazon ECR repository
"Ad esempio, se l'ARN del repository è
arn:aws:ecr:
, il contesto di crittografia include la seguente coppia.us-west-2
:111122223333
:repository/repository-name
"aws:ecr:arn": "arn:aws:ecr:
us-west-2
:111122223333
:repository/repository-name
"
Risoluzione dei problemi
Quando si elimina un repository Amazon ECR con la console, se il repository viene eliminato correttamente ma Amazon ECR non è in grado di ritirare le concessioni aggiunte alla chiave KMS per il repository, viene visualizzato il seguente errore.
The repository
[{repository-name}]
has been deleted successfully but the grants created by the kmsKey[{kms_key}]
failed to be retired
Quando ciò si verifica, puoi ritirare tu stesso le AWS KMS sovvenzioni per il repository.
Ritirare manualmente le AWS KMS sovvenzioni per un deposito
-
Elenca le concessioni per la AWS KMS chiave utilizzata per il repository. Il valore
key-id
viene incluso nell'errore visualizzato dalla console. Puoi anche utilizzare illist-keys
comando per elencare sia le chiavi KMS gestite dal Chiavi gestite da AWS cliente che quelle gestite dal cliente in una regione specifica del tuo account.aws kms list-grants \ --key-id
b8d9ae76-080c-4043-9237-c815bfc21dfc
--regionus-west-2
L'output include un
EncryptionContextSubset
con l'Amazon Resource Name (ARN) del repository. Questo può essere utilizzato per determinare quale concessione aggiunta alla chiave sia quella che si desidera ritirare. Il valoreGrantId
viene utilizzato quando si ritira la concessione nella fase successiva. -
Ritira ogni concessione per la AWS KMS chiave aggiunta al repository. Sostituisci il valore per
GrantId
con l'ID della sovvenzione dall'output del passaggio precedente.aws kms retire-grant \ --key-id
b8d9ae76-080c-4043-9237-c815bfc21dfc
\ --grant-idGrantId
\ --regionus-west-2