Utilizzo delle autorizzazioni AWS KMS per le funzionalità geospaziali di Amazon SageMaker - Amazon SageMaker AI

Utilizzo delle autorizzazioni AWS KMS per le funzionalità geospaziali di Amazon SageMaker

È possibile proteggere i dati a riposo utilizzando la crittografia per le funzionalità geospaziali di SageMaker. Per impostazione predefinita, esso utilizza la crittografia lato server con una chiave geospaziale di proprietà di Amazon SageMaker. Le funzionalità geospaziali di SageMaker supportano anche un'opzione per la crittografia lato server con una chiave KMS gestita dal cliente.

Crittografia lato server con chiave geospaziale di Amazon SageMaker (impostazione predefinita)

Le funzionalità geospaziali di SageMaker crittografano tutti i dati, compresi i risultati computazionali dei lavori di osservazione della Terra (EOJ) e dei lavori di arricchimento vettoriale (VEJ) insieme a tutti i metadati del servizio. Non ci sono dati archiviati all'interno delle funzionalità geospaziali di SageMaker non crittografati. Utilizza una chiave di proprietà AWS predefinita per crittografare tutti i dati.

Crittografia lato server (SSE) con una chiave gestita dal cliente.

Le funzionalità geospaziali di SageMaker supportano l'uso di una chiave simmetrica gestita dal cliente, creata, controllata e gestita dall'utente, per aggiungere un secondo livello di crittografia alla crittografia esistente di proprietà AWS. Avendo il pieno controllo di questo livello di crittografia, è possibile eseguire operazioni quali:

  • Stabilire e mantenere le policy delle chiavi

  • Stabilire e mantenere le policy e le sovvenzioni IAM

  • Abilitare e disabilitare le policy delle chiavi

  • Ruotare i materiali crittografici delle chiavi

  • Aggiungere tag

  • Creare alias delle chiavi

  • Pianificare l’eliminazione delle chiavi

Per ulteriori informazioni, consulta Customer managed keys nella Guida per sviluppatori AWS Key Management Service.

Come le funzionalità geospaziali di SageMaker utilizzano le sovvenzioni in AWS KMS

Le funzionalità geospaziali di SageMaker richiedono una concessione per utilizzare la chiave gestita dal cliente. Quando crei un EOJ o un VEJ crittografato con una chiave gestita dal cliente, le funzionalità geospaziali di SageMaker generano una concessione per tuo conto inviando una richiesta CreateGrant a AWS KMS. Le concessioni in AWS KMS sono utilizzate per consentire alle funzionalità geospaziali di SageMaker di accedere a una chiave KMS in un account cliente. Puoi revocare l'accesso alla concessione o rimuovere l'accesso del servizio alla chiave gestita dal cliente in qualsiasi momento. In tal caso, le funzionalità geospaziali di SageMaker non saranno in grado di accedere a nessuno dei dati crittografati dalla chiave gestita dal cliente, il che influisce sulle operazioni che dipendono da tali dati.

Creazione di una chiave gestita dal cliente

Puoi creare una chiave simmetrica gestita dal cliente utilizzando la Console di gestione AWS o le API AWS KMS.

Per creare una chiave simmetrica gestita dal cliente

Segui le fasi descritte in Creating symmetric encryption KMS keys nella Guida per gli sviluppatori AWS Key Management Service.

Policy della chiave

Le policy della chiave controllano l'accesso alla chiave gestita dal cliente. Ogni chiave gestita dal cliente deve avere esattamente una policy della chiave, che contiene istruzioni che determinano chi può usare la chiave e come la possono usare. Quando crei la chiave gestita dal cliente, puoi specificare una policy della chiave. Per ulteriori informazioni, consulta Determining access to AWS KMS keys nella Guida per gli sviluppatoriAWS Key Management Service.

Per utilizzare la chiave gestita dal cliente con le risorse per le funzionalità geospaziali di SageMaker, è necessario che le seguenti operazioni API siano consentite nella policy della chiave. Il principale per queste operazioni dovrebbe essere il ruolo di esecuzione fornito nella richiesta di funzionalità geospaziali di SageMaker. Le funzionalità geospaziali di SageMaker assumono il ruolo di esecuzione fornito nella richiesta per eseguire queste operazioni KMS.

  • kms:CreateGrant

  • kms:GenerateDataKey

  • kms:Decrypt

  • kms:GenerateDataKeyWithoutPlaintext

Di seguito sono riportati esempi di dichiarazioni di policy che possono essere aggiunte per le funzionalità geospaziali di SageMaker:

CreateGrant

"Statement" : [ { "Sid" : "Allow access to Amazon SageMaker geospatial capabilities", "Effect" : "Allow", "Principal" : { "AWS" : "<Customer provided Execution Role ARN>" }, "Action" : [ "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource" : "*", }, ]

Per ulteriori informazioni su come specificare le autorizzazioni in una policy, consulta AWS KMSAutorizzazioni nella AWS Key Management ServiceGuida per gli sviluppatori. Per informazioni sulla risoluzione dei problemi, consulta Troubleshooting key access nella AWS Key Management ServiceGuida per gli sviluppatori.

Se la policy della chiave non prevede l'account root come amministratore delle chiavi, è necessario aggiungere le stesse autorizzazioni KMS al ruolo di esecuzione ARN. Ecco un esempio di policy che puoi aggiungere al ruolo di esecuzione:

JSON
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": [ "arn:aws:kms:us-east-1:111122223333:key/key-id" ], "Effect": "Allow" } ] }

Monitoraggio delle chiavi di crittografia per le funzionalità geospaziali di SageMaker

Quando utilizzi una chiave AWS KMS gestita dal cliente con le risorse relative alle funzionalità geospaziali di SageMaker, puoi utilizzare AWS CloudTrail o Amazon CloudWatch Logs per tenere traccia delle richieste a cui SageMaker geospatiale invia a AWS KMS.

Seleziona una scheda nella tabella seguente per visualizzare esempi di eventi AWS CloudTrail e monitorare le operazioni KMS richiamate dalle funzionalità geospaziali di SageMaker per accedere ai dati crittografati dalla chiave gestita dal cliente.

CreateGrant
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess", "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE3", "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole", "accountId": "111122223333", "userName": "SageMakerGeospatialCustomerRole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-03-17T18:02:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "arn:aws:iam::111122223333:root" }, "eventTime": "2023-03-17T18:02:06Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "retiringPrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "operations": [ "Decrypt" ], "granteePrincipal": "sagemaker-geospatial.us-west-2.amazonaws.com" }, "responseElements": { "grantId": "0ab0ac0d0b000f00ea00cc0a0e00fc00bce000c000f0000000c0bc0a0000aaafSAMPLE", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "sagemaker-geospatial.amazonaws.com" }, "eventTime": "2023-03-24T00:29:45Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "sagemaker-geospatial.amazonaws.com", "userAgent": "sagemaker-geospatial.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE", "keySpec": "AES_256" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AWSService", "invokedBy": "sagemaker-geospatial.amazonaws.com" }, "eventTime": "2023-03-28T22:04:24Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "sagemaker-geospatial.amazonaws.com", "userAgent": "sagemaker-geospatial.amazonaws.com", "requestParameters": { "encryptionAlgorithm": "SYMMETRIC_DEFAULT", "encryptionContext": { "aws:s3:arn": "arn:aws:s3:::axis-earth-observation-job-378778860802/111122223333/napy9eintp64/output/consolidated/32PPR/2022-01-04T09:58:03Z/S2B_32PPR_20220104_0_L2A_msavi.tif" }, }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }
GenerateDataKeyWithoutPlainText
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:SageMaker-Geospatial-StartEOJ-KMSAccess", "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole/SageMaker-Geospatial-StartEOJ-KMSAccess", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE3", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AKIAIOSFODNN7EXAMPLE3", "arn": "arn:aws:sts::111122223333:assumed-role/SageMakerGeospatialCustomerRole", "accountId": "111122223333", "userName": "SageMakerGeospatialCustomerRole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2023-03-17T18:02:06Z", "mfaAuthenticated": "false" } }, "invokedBy": "arn:aws:iam::111122223333:root" }, "eventTime": "2023-03-28T22:09:16Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-west-2", "sourceIPAddress": "172.12.34.56", "userAgent": "ExampleDesktop/1.0 (V1; OS)", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" }, "responseElements": null, "requestID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "eventID": "ff000af-00eb-00ce-0e00-ea000fb0fba0SAMPLE", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-123456SAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }