Análisis de objetos de Amazon S3 cifrados con Amazon Macie - Amazon Macie

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Análisis de objetos de Amazon S3 cifrados con Amazon Macie

Cuando habilita Amazon Macie para su Cuenta de AWS, Macie crea un rol vinculado a un servicio que otorga a Macie los permisos necesarios para llamar a Amazon Simple Storage Service (Amazon S3) y a otros Servicios de AWS en su nombre. Un rol vinculado a un servicio simplifica el proceso de configuración de un Servicio de AWS porque no tiene que añadir manualmente permisos para que el servicio complete acciones en su nombre. Para obtener más información sobre este tipo de rol, consulte Uso de roles vinculados en la AWS Identity and Access Management Guía del usuario.

La política de permisos del rol vinculado a un servicio de Macie (AWSServiceRoleForAmazonMacie) permite a Macie realizar acciones que incluyen la recuperación de información sobre los buckets y objetos de S3 y la recuperación y el análisis de los objetos de los bucket de S3. Si su cuenta es la cuenta de administrador de Macie de una organización, la política también permite a Macie llevar a cabo estas acciones en su nombre para las cuentas miembro de su organización.

Si cifra un objeto de S3, la política de permisos de la función vinculada al servicio de Macie suele conceder a Macie los permisos que necesita para descifrar la lista. Sin embargo, esto depende del tipo de cifrado utilizado. También puede depender de si Macie puede utilizar la clave de cifrado adecuada.

Opciones de cifrado para objetos de Amazon S3

Amazon S3 admite varias opciones de cifrado para los objetos S3. En la mayoría de estas opciones, Amazon Macie puede descifrar un objeto mediante el rol vinculado al servicio de Macie de su cuenta. Sin embargo, esto depende del tipo de cifrado utilizado para desencriptar un objeto.

Cifrado del servidor con claves administradas por Amazon S3 (SSE-S3)

Si un objeto se cifra mediante el cifrado del lado del servidor con una clave gestionada por Amazon S3 (SSE-S3), Macie puede descifrar el objeto.

Para obtener información sobre este tipo de cifrado, consulte Uso del cifrado del lado del servidor con claves administradas por Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

Cifrado del lado del servidor con (DSSE-KMS y SSE-KMS) AWS KMS keys

Si un objeto se cifra mediante un cifrado de doble capa del lado del servidor o un cifrado del lado del servidor con un cifrado AWS gestionado AWS KMS key (DSSE-KMS o SSE-KMS), Macie puede descifrar el objeto.

Si un objeto se cifra mediante un cifrado de doble capa del lado del servidor o un cifrado del lado del servidor gestionado por el cliente AWS KMS key (DSSE-KMS o SSE-KMS), Macie solo podrá descifrar el objeto si usted permite que Macie utilice la clave. Este es el caso de los objetos que se cifran con claves KMS administradas íntegramente dentro de AWS KMS y de las claves KMS en un almacén de claves externo. Si a Macie no se le permite usar la clave KMS correspondiente, Macie solo puede almacenar los metadatos del objeto y generar informes al respecto.

Para obtener más información sobre estos tipos de cifrado, consulte Uso del cifrado de doble capa del lado del servidor AWS KMS keys y Uso del cifrado del lado del servidor con en AWS KMS keys la Guía del usuario de Amazon Simple Storage Service.

sugerencia

Puede generar automáticamente una lista de todos los clientes gestionados AWS KMS keys a los que Macie necesita acceder para analizar los objetos de los buckets de S3 de su cuenta. Para ello, ejecute el script AWS KMS Permission Analyzer, que está disponible en el repositorio de Amazon Macie Scripts en. GitHub El script también puede generar un script adicional de comandos AWS Command Line Interface (AWS CLI). Si lo desea, puede ejecutar esos comandos para actualizar las políticas y los ajustes de configuración necesarios para las claves de KMS que especifique.

Cifrado en el servidor con claves proporcionadas por el cliente (SSE-C)

Si un objeto se cifra mediante un cifrado del lado del servidor con una clave proporcionada por el cliente (SSE-C), Macie no podrá descifrar el objeto. Macie solo puede almacenar y reportar metadatos para el objeto.

Para obtener más información sobre este tipo de cifrado, consulte Uso del cifrado del lado del servidor con claves en la Guía del usuario de Amazon Simple Storage Service.

Cifrado del cliente

Si un objeto se cifra mediante un cifrado del cliente, Macie puede descifrar el objeto. Macie solo puede almacenar y reportar metadatos para el objeto. Por ejemplo, Macie puede indicar el tamaño del objeto y las etiquetas asociadas al mismo.

Para obtener más información sobre este tipo de cifrado en el contexto de Amazon S3, consulte Protección de datos mediante el cifrado del cliente en la Guía del usuario de Amazon Simple Storage Service.

Puede filtrar su inventario de buckets en Macie para determinar qué buckets de S3 contienen objetos que utilizan determinados tipos de cifrado. También puede determinar qué buckets utilizan determinados tipos de cifrado del lado del servidor de forma predeterminada al almacenar objetos nuevos. La siguiente tabla proporciona ejemplos de filtros que puede aplicar a su inventario de cubos para encontrar esta información.

Para mostrar los buckets que... Aplicar este filtro...
Almacenan objetos que utilizan el cifrado SSE-C El recuento de objetos por cifrado es proporcionado por el cliente y desde = 1
Almacene los objetos que utilizan el cifrado DSSE-KMS o SSE-KMS Se AWS KMSadministra el recuento de objetos mediante cifrado y From = 1
Almacenan objetos que utilizan el cifrado SSE-S3 El recuento de objetos por cifrado está gestionado por Amazon S3 y From = 1
Almacenan objetos que utilizan el cifrado del cliente (o no están cifrados) El recuento de objetos mediante cifrado está Sin encriptar y Desde = 1
Cifre los objetos nuevos de forma predeterminada mediante el cifrado DSSE-KMS Cifrado predeterminado = aws:kms:dsse
Cifre los objetos nuevos de forma predeterminada mediante el cifrado SSE-KMS Cifrado predeterminado = aws:kms
Cifre los objetos nuevos de forma predeterminada mediante el cifrado SSE-S3 Cifrado predeterminado = AES256

Si un depósito está configurado para cifrar objetos nuevos de forma predeterminada mediante el cifrado DSSE-KMS o SSE-KMS, también puede determinar cuál se utiliza. AWS KMS key Para ello, elija el bucket en la página de buckets de S3. En el panel de detalles del depósito, en Cifrado del lado del servidor, consulta el campo. AWS KMS key Este campo muestra el nombre de recurso de Amazon (ARN) o identificador único (ID de clave) de la clave.

Permitir que Amazon Macie utilice un AWS KMS key gestionado por el cliente

Si un objeto de Amazon S3 se cifra mediante un cifrado de doble capa del lado del servidor o un cifrado del lado del servidor gestionado por el cliente AWS KMS key (DSSE-KMS o SSE-KMS), Amazon Macie solo podrá descifrar el objeto si se le permite usar la clave. La forma de proporcionar este acceso depende de si la cuenta propietaria de la clave también es propietaria del bucket de S3 que almacena el objeto:

  • Si la misma cuenta es propietaria de la AWS KMS key y del bucket, el usuario de la cuenta debe actualizar la política de la clave.

  • Si una cuenta es propietaria de la AWS KMS key y otra cuenta es propietaria del bucket, el usuario de la cuenta propietaria de la clave debe permitir el acceso entre cuentas a la clave.

En este tema se describe cómo realizar estas tareas y se proporcionan ejemplos para ambos escenarios. Para obtener más información sobre cómo permitir el acceso al sistema gestionado por el cliente, consulte Autenticación y control de acceso en la Guía para AWS KMS keys desarrolladores. AWS KMS AWS Key Management Service

Permitir el acceso de la misma cuenta a una clave administrada por el cliente

Si la misma cuenta es propietaria tanto de la AWS KMS key como del bucket de S3, el usuario de la cuenta debe agregar una instrucción a la política de la clave. La instrucción adicional debe permitir que el rol vinculado a un servicio de Macie de la cuenta utilice la clave para descifrar los datos. Para obtener información sobre cómo modificar una política de claves, consulte Modificación de una política de claves en la AWS Key Management ServiceGuía del desarrollador.

En la declaración:

  • El elemento Principal debe especificar el nombre de recurso de Amazon (ARN) del rol vinculado a un servicio de Macie de la cuenta propietaria de la AWS KMS key y del bucket de S3.

    Si la cuenta está en una Región de AWS opcional, el ARN también debe incluir el código de región correspondiente a la región. Por ejemplo, si la cuenta se encuentra en la región de Medio Oriente (Baréin) y tiene el código de región me-south-1, el elemento Principal debe especificar arn:aws:iam::123456789012:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie, en el que 123456789012 es el identificador de la cuenta. Para obtener una lista de todos los códigos de región de las regiones en las que Macie se encuentra disponible actualmente, consulte Puntos de conexión y cuotas de Amazon Macie en la Referencia general de AWS.

  • La matriz Action debe especificar la acción kms:Decrypt. Esta es la única acción de AWS KMS que Macie debe poder llevar a cabo para descifrar un objeto de S3 que se cifró con la clave.

A continuación, se muestra un ejemplo de la instrucción que se debe agregar a la política de una AWS KMS key.

{ "Sid": "Allow the Macie service-linked role to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::123456789012:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie" }, "Action": [ "kms:Decrypt" ], "Resource": "*" }

En el ejemplo anterior:

  • El campo AWS del elemento Principal especifica el ARN del rol vinculado al servicio de Macie (AWSServiceRoleForAmazonMacie) de la cuenta. Permite que el rol vinculado al servicio Macie realice la acción especificada en la declaración de política. 123456789012 es un ejemplo de ID de cuenta. Sustituya este valor por el ID de la cuenta del propietario de la clave de KMS y del bucket de S3.

  • La matriz Action especifica la acción que el rol vinculado a un servicio de Macie puede llevar a cabo con la clave de KMS: descifrar el texto cifrado que se cifró con la clave.

El lugar donde se añada esta declaración a una política de claves depende de la estructura y los elementos que la política contenga actualmente. Cuando añada la instrucción a la política, asegúrese de que la sintaxis sea válida. Las políticas de claves utilizan formato JSON. Esto significa que también hay que añadir una coma antes o después de la declaración, en función de dónde se añada la declaración a la política.

Permitir el acceso entre cuentas a una clave gestionada por el cliente

Si una cuenta posee la AWS KMS key (propietario de la clave) y otra cuenta posee el bucket de S3 (propietario del bucket), el propietario de la clave tiene que proporcionar al propietario del bucket acceso entre cuentas a la clave de KMS. Para ello, el propietario de la clave primero se asegura de que la política de claves permita al propietario del bucket usar la clave y crear una concesión para ella. A continuación, el propietario del bucket crea una concesión para la clave. Una concesión es un instrumento de política que permite a los principales AWS utilizar claves KMS en operaciones criptográficas si se cumplen las condiciones especificadas por la subvención. En este caso, la concesión delega los permisos pertinentes en el rol vinculado a un servicio de Macie de la cuenta del propietario del bucket.

Para obtener información sobre cómo modificar una política de claves, consulte Modificación de una política de claves en la AWS Key Management ServiceGuía del desarrollador. Para obtener más información sobre las Concesiones en AWS KMS, consulte Subvenciones en la AWS Key Management ServiceGuía para desarrolladores.

Paso 1: actualización de la política de claves

En la política de claves, el propietario de la clave debe asegurarse de que esta incluya dos instrucciones:

  • La primera declaración permite al propietario del bucket utilizar la clave para descifrar los datos.

  • La segunda instrucción permite al propietario del bucket crear una concesión para el rol vinculado a un servicio de Macie de la cuenta (del propietario del bucket).

En la primera declaración, el elemento Principal debe especificar el ARN de la cuenta del propietario del bucket. La matriz Action debe especificar la acción kms:Decrypt. Esta es la única acción de AWS KMS que Macie debe poder llevar a cabo para descifrar un objeto que se cifró con la clave. A continuación, se muestra un ejemplo de esta instrucción en la política de una AWS KMS key.

{ "Sid": "Allow account 111122223333 to use the key", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:Decrypt" ], "Resource": "*" }

En el ejemplo anterior:

  • El campo AWS del elemento Principal especifica el ARN de la cuenta del propietario del bucket (111122223333). Permite al propietario del bucket realizar la acción especificada en la declaración de la política. 111122223333 es un ejemplo de ID de cuenta. Sustituya este valor por el ID de la cuenta del propietario del bucket.

  • La matriz Action especifica la acción que el propietario del bucket puede llevar a cabo mediante la clave de KMS: descifrar el texto cifrado con la clave.

La segunda declaración de la política de claves permite al propietario del bucket crear una subvención para el rol vinculado al servicio de Macie para su cuenta. En esta declaración, el elemento Principal debe especificar el ARN de la cuenta del propietario del bucket. La matriz Action debe especificar la acción kms:CreateGrant. Un Condition elemento puede filtrar el acceso a la kms:CreateGrant acción especificada en la declaración. A continuación, se muestra un ejemplo de esta instrucción en la política de una AWS KMS key.

{ "Sid": "Allow account 111122223333 to create a grant", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": [ "kms:CreateGrant" ], "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie" } } }

En el ejemplo anterior:

  • El campo AWS del elemento Principal especifica el ARN de la cuenta del propietario del bucket (111122223333). Permite al propietario del bucket realizar la acción especificada en la declaración de la política. 111122223333 es un ejemplo de ID de cuenta. Sustituya este valor por el ID de la cuenta del propietario del bucket.

  • La Action matriz especifica la acción que el propietario del bucket puede realizar en la clave de KMS: crear una concesión para la clave.

  • El elemento Condition utiliza el StringEquals operador de condición y la kms:GranteePrincipal clave de condición para filtrar el acceso a la acción especificada por la declaración de directiva. En este caso, el propietario del bucket puede crear una concesión solo para la GranteePrincipal especificada, que es el ARN del rol vinculado a un servicio de Macie de su cuenta. En ese ARN, 111122223333 es un ejemplo de ID de cuenta. Sustituya este valor por el ID de la cuenta del propietario del bucket.

    Si la cuenta del propietario del bucket está en una Región de AWS opcional, incluya también el código de región correspondiente en el ARN del rol vinculado a un servicio de Macie. Por ejemplo, si la cuenta se encuentra en la región de Medio Oriente (Baréin), que tiene el código de región me-south-1, sustituya macie.amazonaws.com por macie.me-south-1.amazonaws.com en el ARN. Para obtener una lista de todos los códigos de región de las regiones en las que Macie se encuentra disponible actualmente, consulte Puntos de conexión y cuotas de Amazon Macie en la Referencia general de AWS.

Cuando el propietario de la clave añade estas declaraciones a la política de claves, depende de la estructura y los elementos que la directiva contenga actualmente. Cuando el propietario de la clave agregue las instrucciones, debe asegurarse de que la sintaxis sea válida. Las políticas de claves utilizan el formato JSON. Esto significa que el propietario de la clave también debe agregar una coma antes o después de cada instrucción, en función de dónde agregue la instrucción a la política.

Paso 2: creación de una concesión

Una vez que el propietario de la clave actualice la política de claves según sea necesario, el propietario del bucket debe crear una concesión para la clave. La concesión delega los permisos pertinentes al rol vinculado al servicio de Macie para su cuenta (del propietario del bucket). Antes de que el propietario del bucket cree la concesión, debe comprobar que está autorizado a realizar la acción kms:CreateGrant en su cuenta. Esta acción le permite agregar una concesión a una AWS KMS key existente administrada por el cliente.

Para crear la concesión, el propietario del bucket puede utilizar el CreateGrantfuncionamiento de la AWS Key Management Service API. Cuando el propietario del bucket cree la concesión, debe especificar los siguientes valores para los parámetros necesarios:

  • KeyId: el ARN de la clave de KMS. Para el acceso entre cuentas a una clave KMS, este valor debe ser un ARN. No puede ser una clave de ID.

  • GranteePrincipal: el ARN del rol vinculado a un servicio de Macie (AWSServiceRoleForAmazonMacie) de su cuenta. Este valor debe ser arn:aws:iam::111122223333:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie, donde 111122223333 es el ID de la cuenta del propietario del bucket.

    Si la cuenta se encuentra en una región opcional, el ARN debe incluir el código de región apropiado. Por ejemplo, si la cuenta está en la región Medio Oriente (Baréin), que tiene el código de región me-south-1, el ARN debe ser arn:aws:iam::111122223333:role/aws-service-role/macie.me-south-1.amazonaws.com/AWSServiceRoleForAmazonMacie, donde 111122223333 es el ID de la cuenta del propietario del bucket.

  • Operations: la acción de descifrado de AWS KMS (Decrypt). Esta es la única acción de AWS KMS que Macie debe poder llevar a cabo para descifrar un objeto que se cifró con la clave de KMS.

Para crear una concesión para una clave de KMS administrada por el cliente mediante la AWS Command Line Interface (AWS CLI), ejecute el comando create-grant. El siguiente ejemplo muestra cómo. El ejemplo está formateado para Microsoft Windows y utiliza el carácter de continuación de línea de intercalación (^) para mejorar la legibilidad.

C:\> aws kms create-grant ^ --key-id arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab ^ --grantee-principal arn:aws:iam::111122223333:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie ^ --operations "Decrypt"

Donde:

  • key-id especifica el ARN de la clave KMS a la que se va a aplicar la concesión.

  • grantee-principal especifica el ARN del rol vinculado a un servicio de Macie de la cuenta que puede llevar a cabo la operación especificada en la concesión. Este valor debe coincidir con el ARN especificado en la condición kms:GranteePrincipal de la segunda instrucción de la política de claves.

  • operations especifica la acción que la concesión permite llevar a cabo a la entidad principal especificada: descifrar el texto cifrado que se cifró con la clave de KMS.

Si el comando se ejecuta correctamente, verá un resultado similar al siguiente.

{ "GrantToken": "<grant token>", "GrantId": "1a2b3c4d2f5e69f440bae30eaec9570bb1fb7358824f9ddfa1aa5a0dab1a59b2" }

Donde GrantToken es una cadena única, no secreta, de longitud variable, codificada en base64 que representa la concesión que se creó y GrantId es el identificador único de la concesión.