Uso de permisos de AWS KMS para las capacidades de Amazon SageMaker geoespacial
Puede proteger sus datos en reposo mediante el cifrado para las funciones de SageMaker geoespacial. De forma predeterminada, utiliza el cifrado del lado del servidor con una clave propiedad de Amazon SageMaker geoespacial . Las capacidades de SageMaker geoespacial también admiten una opción de cifrado del lado del servidor con una clave KMS administrada por el cliente.
Cifrado del lado del servidor con la clave administrada de Amazon SageMaker geoespacial (predeterminada)
Las capacidades de SageMaker geoespacial cifran todos sus datos, incluidos los resultados computacionales de sus trabajos de observación de la Tierra (EOJ) y trabajos de enriquecimiento vectorial (VEJ), junto con todos los metadatos de sus servicios. No hay datos almacenados sin cifrar dentro de las capacidades de SageMaker geoespacial. Utiliza una clave predeterminada de AWS para cifrar todos sus datos.
Cifrado de lado de servidor con una clave de KMS administrada por el cliente (opcional)
Las capacidades de SageMaker geoespacial admiten el uso de una clave simétrica administrada por el cliente que usted crea, posee y administra para agregar una segunda capa de cifrado al cifrado existente de AWS. Como usted tiene el control total de este cifrado, puede realizar dichas tareas como:
Establecer y mantener políticas de claves
Establecer y mantener concesiones y políticas de IAM
Habilitar y deshabilitar políticas de claves
Rotar el material criptográfico
Agregar etiquetas.
Crear alias de clave
Programar la eliminación de claves
Para obtener más información, consulte las claves administradas por el cliente en la Guía para desarrolladores de AWS Key Management Service.
Cómo las capacidades de SageMaker geoespacial utilizan las concesiones en AWS KMS
Las capacidades de SageMaker geoespacial requieren una concesión para utilizar la clave administrada por el cliente. Cuando crea un EOJ o un VEJ cifrados con una clave administrada por el cliente, las capacidades de SageMaker geoespacial crean una concesión en su nombre mediante el envío de una solicitud CreateGrant a AWS KMS. Las concesiones en AWS KMS se utilizan para otorgar a las capacidades de SageMaker geoespacial acceso a una clave KMS en una cuenta de cliente. Puede revocar el acceso a la concesión o eliminar el acceso del servicio a la clave administrada por el cliente en cualquier momento. Si lo hace, las capacidades de SageMaker geoespacial no podrán acceder a ninguno de los datos cifrados por la clave administrada por el cliente, lo que afectará a las operaciones que dependen de esos datos.
Creación de una clave administrada por el cliente
Puede crear una clave simétrica administrada por el cliente mediante la consola de administración de AWS o las API de AWS KMS.
Para crear una clave simétrica administrada por el cliente
Siga los pasos para Crear claves KMS de cifrado simétrico que encontrará en la Guía para desarrolladores de AWS Key Management Service.
Política de claves
Las políticas de clave controlan el acceso a la clave administrada por el cliente. Cada clave administrada por el cliente debe tener exactamente una política de clave, que contiene instrucciones que determinan quién puede usar la clave y cómo puede utilizarla. Cuando crea la clave administrada por el cliente, puede especificar una política de clave. Para obtener más información, consulte Determinación del acceso a las claves de AWS KMS en la Guía para desarrolladores de AWS Key Management Service.
Para utilizar su clave administrada por el cliente con sus recursos de las capacidades de SageMaker geoespacial, en la política de claves deben permitirse las siguientes operaciones de API. La entidad principal de estas operaciones debe ser el rol de ejecución que proporcione en la solicitud de capacidades de SageMaker geoespacial. Las capacidades de SageMaker geoespacial asumen la función de ejecución proporcionada en la solicitud para realizar estas operaciones de KMS.
A continuación presentamos ejemplos de declaraciones de políticas que puede agregar para las capacidades de SageMaker geoespacial:
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" : "*",
},
]
Para obtener más información sobre cómo especificar permisos en una política, consulte permisos de AWS KMS en la Guía para desarrolladores de AWS Key Management Service. Para obtener más información sobre cómo solucionar problemas, consulte Solución de problemas de acceso a las claves en la Guía para desarrolladores de AWS Key Management Service.
Si su política de claves no tiene la raíz de su cuenta como administrador de claves, debe agregar los mismos permisos de KMS en el ARN de su rol de ejecución. Este es un ejemplo de política que puede agregar al rol de ejecución:
- 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"
}
]
}
Supervisión de las claves de cifrado para las capacidades de SageMaker geoespacial
Cuando utiliza una clave administrada por el cliente de AWS KMS con sus recursos de SageMaker geoespacial, puede utilizar AWS CloudTrail o los Registros de Amazon CloudWatch para hacer un seguimiento de las solicitudes que SageMaker geoespacial envía a AWS KMS.
Seleccione una pestaña de la siguiente tabla para ver ejemplos de eventos de AWS CloudTrail para monitorear las operaciones de KMS a las que llaman las capacidades de SageMaker geoespacial para acceder a los datos cifrados por su clave administrada por el 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"
}