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à.
Chiavi gestite dal cliente per AWS Security Agent
Per impostazione predefinita, AWS Security Agent crittografa tutti i dati inattivi utilizzando chiavi AWS di crittografia gestite. Facoltativamente, puoi utilizzare una chiave gestita dal cliente del AWS Key Management Service (AWS KMS) per crittografare i tuoi dati, ottenendo il pieno controllo sulle chiavi di crittografia che proteggono le tue risorse.
AWS Security Agent supporta chiavi gestite dal cliente a livello di risorsa. Quando si crea una risorsa di primo livello come un Agent Space o un'integrazione, è possibile specificare una chiave KMS per crittografare tutti i dati appartenenti a quella risorsa e alle relative sottorisorse. Ad esempio, se si specifica una chiave gestita dal cliente durante la creazione di un Agent Space, vengono crittografati tutti i dati associati a tale Agent Space, incluse le configurazioni di Agent Space, le configurazioni dei test di penetrazione, i processi e i dettagli di esecuzione, i risultati di sicurezza, gli endpoint rilevati e gli screenshot. Puoi anche fornire AWS risorse già crittografate con la tua chiave gestita dal cliente, come i bucket S3, i gruppi di log CloudWatch Logs o i segreti di Secrets Manager. Per le autorizzazioni KMS richieste, consulta. Autorizzazioni KMS richieste
Come funzionano le chiavi gestite dai clienti
AWS Security Agent utilizza il portachiavi gerarchico AWS KMS per crittografare i dati con chiavi gestite dal cliente. Quando specifichi una chiave KMS durante la creazione di risorse, il servizio crea una chiave branch protetta dalla tua chiave KMS e la archivia in un Amazon DynamoDB-based key store. Per ogni operazione di crittografia, il portachiavi Hierarchical ricava una chiave di wrapping unica dalla chiave branch attiva, che crittografa una chiave di crittografia dei dati unica per ogni richiesta.
Il portachiavi Hierarchical offre i seguenti vantaggi:
-
Per-resource ambito di crittografia: ogni risorsa di primo livello ha la propria chiave di filiale, quindi i dati relativi a risorse diverse vengono crittografati con chiavi separate.
-
Rotazione automatica delle chiavi: AWS Security Agent ruota periodicamente le chiavi di filiale. Dopo la rotazione, i nuovi dati vengono crittografati con la nuova versione della chiave branch, mentre le versioni precedenti vengono conservate per decrittografare i dati precedentemente crittografati.
Contesto di crittografia
AWS Security Agent utilizza il contesto di crittografia in tutte le operazioni crittografiche con la chiave KMS. Il contesto di crittografia è un insieme di coppie chiave-valore non segrete che fornisce dati autenticati aggiuntivi per l'operazione di crittografia.
La chiave del contesto di crittografia segue il formatoaws:securityagent:_<resource-type>_, dove
<resource-type>
è il tipo di risorsa da crittografare (ad esempio, o). agent-space integration Il valore è l'Amazon Resource Name (ARN) della risorsa.
Nota
Per le integrazioni, la chiave di contesto di crittografia include il aws-crypto-ec: prefisso, che determina il formato. aws-crypto-ec:aws:securityagent:integration
È possibile utilizzare il contesto di crittografia per definire la politica delle chiavi KMS in base a tipi di risorse specifici. Per ulteriori informazioni, consulta Autorizzazioni KMS richieste.
Default encryption (Crittografia di default)
Quando si crea una risorsa senza specificare una chiave gestita dal cliente, AWS Security Agent crittografa la risorsa utilizzando chiavi di crittografia AWS gestite fornite dai servizi di storage sottostanti (Amazon DynamoDB e Amazon S3). Non è richiesta alcuna configurazione aggiuntiva per la crittografia predefinita.
Chiave KMS predefinita per le applicazioni
È possibile impostare una chiave KMS predefinita a livello di applicazione. Quando viene configurata una chiave KMS predefinita, AWS Security Agent la utilizza come riserva per nuovi Agent Spaces e integrazioni quando non si specifica esplicitamente una chiave KMS durante la creazione delle risorse.
Per impostare una chiave KMS predefinita, specifica il defaultKmsKeyId parametro durante la creazione o l'aggiornamento dell'applicazione utilizzando la AWS CLI o l'SDK. La console richiede di specificare una chiave KMS predefinita durante la configurazione dell'applicazione.
Quando specifichi esplicitamente una chiave KMS durante la creazione delle risorse, questa ha la precedenza sull'impostazione predefinita a livello di applicazione.
Prerequisiti
Prima di configurare una chiave gestita dal cliente, completa i seguenti prerequisiti:
-
Crea una chiave KMS di crittografia simmetrica in KMS. AWS La chiave deve soddisfare i seguenti requisiti:
-
Tipo di chiave: simmetrica
-
Utilizzo della chiave: crittografa e decrittografa
-
Specifiche chiave:
SYMMETRIC_DEFAULT -
Stato chiave: abilitato
Per istruzioni, consulta Creating keys nella AWS Key Management Service Developer Guide.
-
-
Configura la politica delle chiavi KMS e le politiche IAM per concedere a AWS Security Agent le autorizzazioni richieste. Per informazioni dettagliate, vedi Autorizzazioni KMS richieste.
Autorizzazioni KMS richieste
AWS Security Agent richiede le autorizzazioni KMS in due scenari:
-
Crittografia dei dati all'interno AWS di Security Agent: quando si specifica una chiave gestita dal cliente per un Agent Space o un'integrazione, il servizio necessita delle autorizzazioni per utilizzare tale chiave per le operazioni di crittografia sui dati.
-
Utilizzo CMK-encrypted AWS delle risorse: quando fornisci AWS risorse crittografate con una chiave gestita dal cliente (come bucket S3, gruppi di log CloudWatch Logs o segreti di Secrets Manager), il servizio necessita delle autorizzazioni per utilizzare tali chiavi per accedere alle risorse crittografate.
AWS Security Agent accede alla chiave KMS utilizzando identità diverse a seconda dell'operazione:
-
AWS Operazioni della console di gestione: quando gli amministratori creano o gestiscono risorse nella console di AWS gestione (ad esempio, creando un Agent Space o aggiornando un'applicazione), il servizio utilizza il ruolo di amministratore per chiamare KMS. AWS
-
Operazioni delle applicazioni Web: quando gli utenti di IAM Identity Center accedono ai dati tramite l'applicazione Web AWS Security Agent (ad esempio, visualizzando i risultati dei test di penetrazione o avviando un test di penetrazione), il servizio utilizza il ruolo dell'applicazione creato durante la configurazione del AWS Security Agent per chiamare KMS. AWS
-
Accesso alle risorse fornite dal cliente: quando il servizio accede alle AWS risorse fornite dal cliente durante i test di penetrazione (come i bucket S3, i gruppi di CloudWatch log Logs e i segreti di Secrets Manager), utilizza il ruolo del servizio di test di penetrazione per chiamare KMS. AWS
-
Flussi di lavoro asincroni: per le operazioni in background eseguite al di fuori di qualsiasi sessione utente (ad esempio, esecuzione di test di penetrazione, elaborazione della revisione del codice e rotazione delle chiavi di filiale), il servizio utilizza il proprio service principal (
securityagent.amazonaws.com) per chiamare AWS KMS per conto dell'utente.
Le sezioni seguenti descrivono le autorizzazioni richieste per ogni identità.
Policy della chiave
La politica della chiave KMS deve concedere a AWS Security Agent l'autorizzazione a utilizzare la chiave per operazioni crittografiche. Le dichiarazioni politiche chiave richieste dipendono dai tipi di risorse che intendi crittografare e dalle CMK-encrypted AWS risorse che fornisci al servizio.
Politica chiave per Agent Spaces
La seguente politica chiave concede a AWS Security Agent le autorizzazioni necessarie per crittografare e decrittografare i dati di Agent Space, inclusi i risultati dei test di penetrazione e le schermate.
Sostituisci i seguenti valori segnaposto nella policy:
-
111122223333— L'ID del tuo account AWS -
MyRole— Il ruolo IAM che usi per gestire AWS Security Agent nella console -
MyApplicationRole— Il ruolo dell'applicazione creato durante la configurazione del AWS Security Agent -
us-east-1— La AWS regione in cui si utilizza AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidationForApplicationAndAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowAsynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowAsynchronousDataAccessForCodeRemediation", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" } ] }
Importante
Per ruotare le chiavi di filiale, è necessario che la politica delle chiavi KMS kms:GenerateDataKeyWithoutPlaintext conceda e kms:ReEncryptFrom le autorizzazioni al responsabile del servizio AWS Security Agent (securityagent.amazonaws.com), altrimenti la rotazione delle chiavi di filiale avrà esito negativo. kms:ReEncryptTo Per ulteriori informazioni sulle autorizzazioni richieste, consulta Ruotare una chiave di filiale.
Politica chiave per le integrazioni
La seguente politica chiave concede a AWS Security Agent le autorizzazioni necessarie per crittografare e decrittografare i dati di integrazione, inclusi i risultati della revisione del codice.
Sostituisci i seguenti valori segnaposto nella policy:
-
111122223333— L'ID del tuo account AWS -
MyRole— Il ruolo IAM che usi per gestire AWS Security Agent nella console -
us-east-1— La AWS regione in cui usi AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyAccessValidationForIntegrations", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowKeyMetadataValidationForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*" }, { "Sid": "AllowAsynchronousDataAccessForIntegrations", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:Encrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:integration/*" }, "StringLike": { "kms:EncryptionContext:aws-crypto-ec:aws:securityagent:integration": "arn:aws:securityagent:us-east-1:111122223333:integration/*" } } } ] }
Nota
È possibile combinare le dichiarazioni politiche chiave di Agent Space, integrazione e Security Requirement Pack in un'unica politica chiave se si desidera utilizzare la stessa chiave KMS per più tipi di risorse.
Politica chiave per i pacchetti di requisiti di sicurezza
La seguente politica chiave concede a AWS Security Agent le autorizzazioni necessarie per crittografare e decrittografare i dati del pacchetto dei requisiti di sicurezza. I pacchetti di requisiti di sicurezza non utilizzano un ruolo di applicazione Web. La policy utilizza due percorsi di accesso:
-
Percorso sincrono: quando chiami l'API, il servizio utilizza le credenziali inoltrate per chiamare AWS KMS per tuo conto (tramite la condizione).
kms:ViaService -
Percorso asincrono: per le operazioni asincrone in cui è possibile utilizzare i pacchetti, il servizio utilizza il proprio service principal per chiamare direttamente KMS. AWS
Sostituisci i seguenti valori nella politica:
-
111122223333— L'ID AWS del tuo account -
MyRole— Il ruolo IAM che utilizzi per richiamare le operazioni del Security Requirement Pack -
us-east-1— La AWS regione in cui si utilizza AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKeyMetadataValidation", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" } } }, { "Sid": "AllowUseOfHierarchicalKeyringForSecurityPacks", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyRole" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:ReEncryptTo", "kms:ReEncryptFrom", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } }, { "Sid": "AllowAsynchronousDataAccessForSecurityPacks", "Effect": "Allow", "Principal": { "Service": "securityagent.amazonaws.com" }, "Action": [ "kms:GenerateDataKeyWithoutPlaintext", "kms:Decrypt", "kms:ReEncryptTo", "kms:ReEncryptFrom" ], "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:securityagent:security-requirement-pack": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" }, "ArnLike": { "aws:SourceArn": "arn:aws:securityagent:us-east-1:111122223333:security-requirement-pack/*" } } } ] }
La politica contiene tre dichiarazioni:
-
AllowKeyMetadataValidation— Garantisce
kms:DescribeKeyche AWS Security Agent possa convalidare che la chiave gestita dal cliente esiste, è abilitata e utilizza la crittografia simmetrica quando si specifica una CMK durante la creazione delle risorse. Utilizza lakms:ViaServicecondizione per garantire che la chiamata provenga dal servizio. -
AllowUseOfHierarchicalKeyringForSecurityPacks— Concede
kms:GenerateDataKeyWithoutPlaintext(crea nuove chiavi di ramo),kms:ReEncryptFrom(ruota le chiavi di ramo esistenti)kms:ReEncryptToekms:Decrypt(recupera le chiavi di ramo esistenti) per le operazioni gerarchiche con portachiavi. Queste operazioni utilizzano le credenziali inoltrate attraverso il percorso sincrono e rientrano nell'ambito delle risorse del Security Requirement Pack in base alla condizione del contesto di crittografia. -
AllowAsynchronousDataAccessForSecurityPacks— Concede
kms:GenerateDataKeyWithoutPlaintext,kms:Decryptkms:ReEncryptTo, ekms:ReEncryptFromal responsabile del servizio AWS Security Agent per operazioni asincrone quando non sono disponibili le credenziali del chiamante.
A differenza della policy chiave di Agent Spaces, la policy del Security Requirement Pack non include un responsabile del ruolo dell'applicazione Web. È possibile accedere ai pacchetti dei requisiti di sicurezza tramite la Console di AWS gestione utilizzando il ruolo di amministratore, non tramite l'applicazione Web AWS Security Agent. Tutte le operazioni sincrone utilizzano il ruolo di chiamante singolo (viakms:ViaService).
Nota
Se si utilizza la stessa chiave KMS sia per Agent Spaces che per i pacchetti di requisiti di sicurezza, è possibile combinare le dichiarazioni politiche chiave di entrambe le sezioni in un'unica politica chiave.
Politica chiave per CMK-encrypted AWS risorse
Se si forniscono AWS risorse crittografate con una chiave gestita dal cliente a AWS Security Agent, è necessario aggiornare la politica delle chiavi sulla chiave KMS di ciascuna risorsa per concedere le autorizzazioni necessarie. Questo vale per le seguenti risorse:
-
Bucket S3: se fornisci risorse didattiche da un bucket S3 crittografato con una chiave gestita dal cliente (SSE-KMS), la policy chiave deve consentire al ruolo del servizio di test di penetrazione di decrittografare gli oggetti.
-
Segreti di Secrets Manager: se le credenziali del test di penetrazione sono archiviate nei segreti di Secrets Manager crittografati con una chiave gestita dal cliente, la policy chiave deve consentire al ruolo del servizio di test di penetrazione di decrittografare tali segreti. Se l'applicazione Web crea segreti per conto dell'utente, la policy chiave deve consentire anche al ruolo dell'applicazione di crittografare tali segreti.
-
CloudWatch Gruppi di log di log: se il gruppo di log CloudWatch Logs utilizzato per archiviare i log di esecuzione dei test di penetrazione è crittografato con una chiave gestita dal cliente, la policy di chiave deve consentire a CloudWatch Logs di convalidare la chiave KMS tramite il ruolo di servizio e consentire al responsabile del servizio Logs di eseguire operazioni crittografiche. CloudWatch
Importante
AWS Security Agent può anche creare gruppi di log CloudWatch Logs e Secrets Manager segreti per conto dell'utente. Quando configuri la politica delle chiavi KMS, includi anche le istruzioni corrispondenti per queste risorse create dal servizio.
Le seguenti dichiarazioni politiche chiave concedono le autorizzazioni necessarie per le risorse. CMK-encrypted Includi solo le istruzioni che si applicano alla tua configurazione. Se una risorsa utilizza la stessa chiave KMS specificata per Agent Space, aggiungi queste istruzioni alla politica di quella chiave. Se una risorsa utilizza una chiave KMS diversa, aggiungi invece queste istruzioni alla politica di quella chiave.
Sostituisci i seguenti valori segnaposto nella politica:
-
111122223333— L'ID del tuo account AWS -
MyApplicationRole— Il ruolo dell'applicazione creato durante la configurazione AWS di Security Agent -
MyPenTestServiceRole— Il ruolo del servizio di penetration test -
us-east-1— La AWS regione in cui si utilizza AWS Security Agent
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyApplicationRole" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } }, { "Sid": "AllowKmsKeyDecryptionForS3Objects", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsKeyDecryptionForSecretsManagerSecrets", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/MyPenTestServiceRole" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } }, { "Sid": "AllowKmsKeyAccessForCloudWatchLogsLogGroups", "Effect": "Allow", "Principal": { "Service": "logs.us-east-1.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:EncryptionContext:aws:logs:arn": "arn:aws:logs:us-east-1:111122223333:log-group:YOUR-LOG-GROUP-NAME*" } } } ] }
Nota
-
L'
AllowKmsKeyDecryptionForS3Objectsistruzione è richiesta solo se fornisci risorse didattiche provenienti da bucket S3 crittografati con una chiave gestita dal cliente. Per ulteriori informazioni sulla configurazione SSE-KMS per S3, consulta Proteggere i dati con. SSE-KMS -
L'
AllowKmsKeyDecryptionForSecretsManagerSecretsistruzione è richiesta solo se le credenziali del penetration test sono archiviate nei segreti di Secrets Manager crittografati con una chiave gestita dal cliente. Il ruolo di servizio richiede l'accesso per decrittografare i segreti durante i test di penetrazione. Per ulteriori informazioni sulla crittografia segreta, vedere Crittografia e decrittografia segrete in Secrets Manager. -
L'
AllowKmsKeyValidationForCloudWatchLogsLogGroupsistruzione concede il ruolo di serviziokms:DescribeKeyin modo che CloudWatch Logs possa convalidare la chiave KMS tramite il ruolo di servizio quando la associa a un gruppo di log. -
L'
AllowKmsKeyAccessForCreatingSecretsistruzione è richiesta se l'applicazione Web crea segreti di Secrets Manager per conto dell'utente utilizzando una chiave gestita dal cliente. Il ruolo dell'applicazione devekms:GenerateDataKeykms:Decryptcrittografare il segreto con la tua chiave KMS. -
L'
AllowKmsKeyAccessForCloudWatchLogsLogGroupsistruzione concede al servizio CloudWatch Logs principal (logs.us-east-1.amazonaws.com) le autorizzazioni necessarie per crittografare e decrittografare i dati di registro. Questa dichiarazione è richiesta anche se AWS Security Agent crea un gruppo di log per conto dell'utente quando non ne fornisce uno esistente. Per ulteriori informazioni, consulta Crittografare i dati di registro nei CloudWatch registri utilizzando AWS KMS. -
Se più risorse condividono la stessa chiave KMS, puoi combinare le istruzioni in un'unica politica chiave.
Ruolo di amministratore
Non è richiesta alcuna policy IAM aggiuntiva per il ruolo di amministratore (il ruolo IAM utilizzato per gestire AWS Security Agent nella console).
Ruolo dell'applicazione
Oltre alla policy chiave KMS, collega la seguente politica IAM al ruolo dell'applicazione specificato durante la configurazione del AWS Security Agent. Questa politica concede le autorizzazioni di ruolo per utilizzare le chiavi gestite dai clienti per crittografare e decrittografare i dati di Agent Space e creare segreti in Secrets Manager. AWS
Sostituisci i seguenti valori segnaposto nella policy:
-
111122223333— L'ID del tuo account AWS -
us-east-1— La AWS regione in cui usi AWS Security Agent -
Gli ARN della chiave KMS
Resource: gli ARN delle tue chiavi KMS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowSynchronousDataAccessForAgentSpaces", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333", "kms:ViaService": "securityagent.us-east-1.amazonaws.com" }, "StringLike": { "kms:EncryptionContext:aws:securityagent:agent-space": "arn:aws:securityagent:us-east-1:111122223333:agent-space/*" } } }, { "Sid": "AllowKmsKeyAccessForCreatingSecrets", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890cd" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } } ] }
Nota
Il ruolo dell'applicazione è un ruolo IAM specificato dall'utente o creato dalla console durante AWS la configurazione del Security Agent. L'applicazione web assume questo ruolo per recuperare i log di esecuzione dei test di penetrazione e creare segreti di Secrets Manager per conto dell'utente.
-
L'
AllowKmsKeyAccessForCreatingSecretsistruzione è necessaria se si configurano le risorse di autenticazione per i test di penetrazione e si sceglie di inserire direttamente le credenziali anziché specificare un segreto esistente. L'applicazione Web crea un segreto per conto dell'utente e il ruolo dell'applicazione necessita delle autorizzazioni contenute in questa istruzione per crittografare il segreto con la chiave gestita dal cliente specificata per Agent Space. Aggiorna gliResourceARN in questa istruzione in modo che corrispondano alla chiave KMS utilizzata per Agent Space.
Ruolo del servizio
Durante i test di penetrazione, AWS Security Agent si assume il ruolo di servizio di penetration test per accedere alle risorse dell'utente. AWS Se una di queste risorse è crittografata con una chiave gestita dal cliente, è necessario concedere al ruolo di servizio le autorizzazioni per utilizzare le chiavi KMS corrispondenti. Questo vale per le seguenti risorse:
-
Bucket S3: se fornisci risorse di apprendimento (come documenti API, modelli di minaccia o codice sorgente) da un bucket S3 crittografato con una chiave gestita dal cliente, il ruolo di servizio necessita delle autorizzazioni per decrittografare gli oggetti in quel bucket. Per ulteriori informazioni sulla configurazione SSE-KMS per S3, consulta Protezione dei dati con. SSE-KMS
-
Segreti di Secrets Manager: se le credenziali del penetration test sono archiviate nei segreti di Secrets Manager crittografati con una chiave gestita dal cliente, il ruolo di servizio necessita delle autorizzazioni per decrittografare tali segreti. Per ulteriori informazioni sulla crittografia segreta, vedere Crittografia e decrittografia segrete in Secrets Manager.
-
CloudWatch Gruppi di log: se il gruppo di log CloudWatch Logs utilizzato per archiviare i log di esecuzione dei penetration test è crittografato con una chiave gestita dal cliente (inclusi i gruppi di log creati da AWS Security Agent per conto dell'utente), il ruolo di servizio
kms:DescribeKeynecessita dell'autorizzazione per convalidare la chiave. Il responsabile del servizio CloudWatch Logs gestisce la crittografia e la decrittografia effettive dei dati di registro e tali autorizzazioni vengono concesse tramite la politica chiave (vedi). Policy della chiave Per ulteriori informazioni sulla crittografia dei dati di registro, consulta Crittografare i dati di registro nei registri utilizzando KMS. CloudWatch AWS
Importante
Se utilizzi una chiave KMS diversa per crittografare queste risorse rispetto a quella specificata per Agent Space, devi concedere le autorizzazioni del ruolo di servizio per ogni chiave KMS che protegge una risorsa a cui il ruolo di servizio accede durante i test di penetrazione.
Allega la seguente policy IAM al ruolo del servizio di penetration test. Includi solo le istruzioni che si applicano alla tua configurazione.
Sostituisci i seguenti valori segnaposto nella politica:
-
111122223333— L'ID del tuo account AWS -
us-east-1— La AWS regione in cui usi AWS Security Agent -
Gli ARN della chiave KMS in ingresso
Resource: gli ARN delle chiavi gestite dal cliente utilizzati per crittografare ogni risorsa
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowKmsAccessForEncryptedS3Buckets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-S3-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "s3.*.amazonaws.com", "kms:EncryptionContext:aws:s3:arn": "arn:aws:s3:::YOUR-BUCKET-NAME*" } } }, { "Sid": "AllowKmsAccessForEncryptedSecrets", "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-SECRETS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "secretsmanager.*.amazonaws.com", "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:us-east-1:111122223333:secret:YOUR-SECRET-NAME*" } } }, { "Sid": "AllowKmsKeyValidationForCloudWatchLogsLogGroups", "Effect": "Allow", "Action": [ "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/EXAMPLE-CLOUDWATCH-LOGS-KEY-ID" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "111122223333" }, "StringLike": { "kms:ViaService": "logs.*.amazonaws.com" } } } ] }
Nota
-
L'
AllowKmsAccessForEncryptedS3Bucketsistruzione è richiesta solo se fornisci risorse di apprendimento provenienti da bucket S3 crittografati con una chiave gestita dal cliente. Aggiorna l'ResourceARN in modo che corrisponda alla chiave KMS utilizzata per crittografare il bucket S3 e aggiorna ilkms:EncryptionContext:aws:s3:arnvalore in modo che corrisponda al nome del bucket. -
L'
AllowKmsAccessForEncryptedSecretsistruzione è richiesta solo se le credenziali del penetration test sono archiviate nei segreti di Secrets Manager crittografati con una chiave gestita dal cliente. Aggiorna l'ResourceARN in modo che corrisponda alla chiave KMS utilizzata per crittografare i tuoi segreti e aggiorna ilkms:EncryptionContext:SecretARNvalore in modo che corrisponda al tuo nome segreto. -
L'
AllowKmsKeyValidationForCloudWatchLogsLogGroupsistruzione è richiesta solo se il gruppo di log CloudWatch Logs è crittografato con una chiave gestita dal cliente, inclusi i gruppi di log creati da AWS Security Agent per tuo conto. Aggiorna l'ResourceARN in modo che corrisponda alla chiave KMS utilizzata per crittografare il gruppo di log. -
Se più risorse condividono la stessa chiave KMS, puoi combinare le istruzioni ed elencare l'ARN della chiave condivisa
Resourceuna volta sul campo.
Crea una risorsa con una chiave gestita dal cliente
È possibile specificare una chiave gestita dal cliente durante la configurazione di AWS Security Agent o durante la creazione di singole risorse. La chiave KMS crittografa tutti i dati appartenenti a quella risorsa e alle sue sottorisorse.
Imposta una chiave KMS predefinita durante la configurazione (console)
È possibile configurare una chiave KMS predefinita durante la configurazione iniziale di AWS Security Agent. Questa chiave viene utilizzata come predefinita per i nuovi Agent Spaces e le integrazioni, a meno che non si specifichi una chiave diversa.
-
Nella pagina Configurazione di AWS Security Agent, espandi la sezione Crittografia - opzionale.
-
Seleziona Personalizza le impostazioni di crittografia (avanzate).
-
Per Scegli una chiave AWS KMS, seleziona una chiave KMS dal tuo account o inserisci una chiave KMS ARN.
-
Completa i passaggi di configurazione rimanenti e scegli Configura AWS Security Agent.
AWS Security Agent convalida la chiave KMS per confermare che esiste, è abilitata e utilizza la crittografia simmetrica. Se la convalida fallisce, l'installazione non procede e viene visualizzato un messaggio di errore.
Crea un Agent Space con una chiave gestita dal cliente (console)
-
Nella console AWS Security Agent, vai alla pagina Agent Spaces.
-
Scegli Create Agent Space.
-
Inserisci un nome e una descrizione opzionale per il tuo Agent Space.
-
Espandere la sezione Advanced (Avanzate).
-
In Crittografia dei dati, scegli una delle seguenti opzioni:
-
Usa la chiave predefinita dell'applicazione: utilizza la chiave KMS predefinita configurata durante la configurazione AWS di Security Agent. Questa opzione è selezionata per impostazione predefinita se è configurata una chiave predefinita.
-
Usa una chiave diversa: specifica una chiave KMS diversa per questo Agent Space. Seleziona Personalizza le impostazioni di crittografia (avanzate), quindi per Scegli una chiave AWS KMS, seleziona una chiave KMS dal tuo account o inserisci un ARN.
-
-
Scegli Create (Crea).
Crea un'integrazione con una chiave gestita dal cliente (console)
-
Nella console AWS Security Agent, vai alla pagina Integrazioni.
-
Scegli Aggiungi integrazione e seleziona il tuo provider (ad esempio, GitHub).
-
Completa il passaggio 1: installa e autorizza l'applicazione del provider.
-
Nel passaggio 2: Registra i dettagli, inserisci un nome di registrazione e configura le impostazioni del provider.
-
Nella sezione Crittografia dei dati, seleziona Personalizza le impostazioni di crittografia (avanzate).
-
Per Scegli una chiave AWS KMS, seleziona una chiave KMS dal tuo account o inserisci una chiave KMS ARN.
-
Scegli Connetti.
Crea una risorsa con una chiave gestita dal cliente (AWS CLI o SDK)
Per specificare una chiave gestita dal cliente utilizzando la AWS CLI o l'SDK:
-
Includi il
defaultKmsKeyIdparametro durante la chiamataCreateApplicationper impostare una chiave KMS predefinita per la tua applicazione. Questa chiave viene utilizzata come riserva durante la creazione di Agent Spaces o integrazioni senza una chiave KMS esplicita. -
Includi il
kmsKeyIdparametro durante la chiamataCreateAgentSpaceoCreateIntegrationper crittografare una risorsa specifica. Questo ha la precedenza sull'impostazione predefinita a livello di applicazione.
Per i dettagli sui parametri, consulta la Guida di riferimento alle API di AWS Security Agent.
Se non si specifica una chiave KMS, AWS Security Agent utilizza la chiave KMS predefinita a livello di applicazione, se configurata. In caso contrario, la risorsa viene crittografata con chiavi gestite. AWS
Rotazione delle chiavi
AWS Security Agent ruota automaticamente le chiavi delle filiali su base periodica. La rotazione della chiave di ramo crea una nuova versione attiva della chiave di ramo mantenendo tutte le versioni precedenti. Dopo la rotazione:
-
I nuovi dati vengono crittografati con la nuova versione della chiave di filiale.
-
I dati precedentemente crittografati rimangono decifrabili utilizzando la versione precedente della chiave di filiale.
-
Non è richiesta una nuova crittografia dei dati.
La rotazione delle chiavi Branch è separata dalla rotazione delle chiavi KMS. Puoi abilitare la rotazione automatica delle chiavi KMS per la chiave gestita dal cliente in modo indipendente. Per ulteriori informazioni, consulta Rotating KMS keys nella AWS Key Management Service Developer Guide.
Dopo una rotazione della chiave di filiale, c'è un breve periodo durante il quale le copie memorizzate nella cache della chiave di filiale precedente possono ancora essere utilizzate per nuove operazioni di crittografia. Questa finestra è determinata dal time-to-live (TTL) della cache interna e non influisce sulla sicurezza dei dati.
Considerazioni
Tieni presente quanto segue quando utilizzi le chiavi gestite dal cliente con AWS Security Agent:
-
Le chiavi gestite dal cliente si applicano solo alle nuove risorse. Le risorse esistenti create prima di configurare una chiave gestita dal cliente continuano a utilizzare la AWS crittografia gestita. Non è prevista alcuna migrazione dei dati esistenti.
-
Le chiavi gestite dal cliente vengono specificate al momento della creazione. La chiave KMS viene specificata durante la creazione di una risorsa. Non è possibile aggiungere o modificare la chiave KMS per una risorsa esistente.
-
Sono supportate più chiavi KMS. Puoi utilizzare chiavi KMS diverse per risorse diverse. Ad esempio, è possibile utilizzare una chiave per gli Agent Spaces di produzione e una chiave diversa per gli Agent Spaces di sviluppo.
-
La disabilitazione o l'eliminazione di una chiave KMS rende i dati inaccessibili. Se si disabilita o si pianifica l'eliminazione di una chiave KMS, AWS Security Agent non può decrittografare i dati crittografati con tale chiave. Le risorse interessate diventano inaccessibili finché la chiave non viene riattivata. L'eliminazione di una chiave KMS impedisce in modo permanente l'accesso a tutti i dati crittografati con tale chiave.
-
Sono richieste le autorizzazioni chiave relative alle policy. Se rimuovi le autorizzazioni richieste dalla politica delle chiavi KMS, AWS Security Agent non può accedere ai dati crittografati. Assicurati che la politica chiave conceda le autorizzazioni per il ruolo di amministratore (utilizzato per gestire il servizio nella AWS Console), il ruolo dell'applicazione (utilizzato dall'applicazione Web), il ruolo del servizio di test di penetrazione (assunto dagli agenti per eseguire i test di penetrazione) e il responsabile del servizio AWS Security Agent, come descritto in. Autorizzazioni KMS richieste
-
AWS Si applicano le quote KMS. Le operazioni crittografiche sulla chiave KMS contano ai fini delle quote di richiesta AWS KMS. In condizioni di utilizzo normale, l'architettura gerarchica del portachiavi riduce al minimo le chiamate KMS tramite la memorizzazione nella cache delle chiavi di filiale. Per ulteriori informazioni, consulta Request quotas nella Key Management Service Developer Guide. AWS