Seguridad en las investigaciones de CloudWatch - Amazon CloudWatch

Seguridad en las investigaciones de CloudWatch

En esta sección se incluyen temas sobre cómo las investigaciones de CloudWatch se integran con las características de seguridad y permisos de AWS.

Permisos de usuario

AWS ha creado tres políticas de IAM administradas que puede utilizar para los usuarios que vayan a trabajar en las investigaciones de CloudWatch.

  • AIOpsConsoleAdminPolicy: permite al administrador configurar investigaciones de CloudWatch en la cuenta, acceder a las acciones de investigaciones de CloudWatch, administrar la propagación de identidades de confianza y administrar la integración con IAM Identity Center y el acceso organizativo.

  • AIOpsOperatorAccess: concede al usuario acceso a las acciones de investigación, por ejemplo, el inicio de una investigación. También concede los permisos adicionales necesarios para acceder a los eventos de investigación.

  • AIOpsReadOnlyAccess: concede permisos de solo lectura para las investigaciones de CloudWatch y para otros servicios de relacionados.

Le recomendamos que utilice tres entidades principales de IAM: a una de ellas le conceda la política de IAM AIOpsConsoleAdminPolicy, a otra la política AIOpsOperatorAccess y a la tercera la política AIOpsReadOnlyAccess. Estas entidades principales pueden ser roles de IAM (recomendado) o usuarios de IAM. Luego, los usuarios que trabajan con las investigaciones de CloudWatch iniciarían sesión con una de estas entidades principales.

Cómo controlar a qué datos tienen acceso las investigaciones de CloudWatch durante las investigaciones

Cuando habilita la característica de investigaciones de CloudWatch, especifica qué permisos tienen las investigaciones de CloudWatch para acceder a sus recursos durante las investigaciones. Para ello, debe asignar un rol de IAM al asistente.

Para permitir que las investigaciones de CloudWatch accedan a los recursos y puedan hacer sugerencias e hipótesis, el método recomendado consiste en vincular AIOpsAssistantPolicy al rol del asistente. Esto le concede al asistente permisos para analizar los recursos de AWS durante las investigaciones. Para obtener información acerca del contenido completo de esta política, consulte Política de IAM para investigaciones de CloudWatch (AIOpsAssistantPolicy).

También puede optar por vincular ReadOnlyAccess general de AWS al rol del asistente, además de vincular AIOpsAssistantPolicy. El motivo de ello es que AWS actualiza ReadOnlyAccess con más frecuencia con permisos para los nuevos servicios y acciones de AWS que se publiquen. AIOpsAssistantPolicy también se actualizará para incluir nuevas acciones, pero no con tanta frecuencia.

Si desea reducir el ámbito de los permisos concedidos a las investigaciones de CloudWatch, puede vincular una política de IAM personalizada al rol de IAM del asistente en lugar de vincular la política AIOpsAssistantPolicy. Para ello, inicie la política personalizada con el contenido de AIOpsAssistantPolicy y, a continuación, elimine los permisos que no quiere conceder a las investigaciones de CloudWatch. Esto evitará que el asistente pueda hacer sugerencias en función de los servicios o acciones de AWS a los que no conceda acceso.

nota

A todo lo que puedan acceder las investigaciones de CloudWatch se podrá agregar a la investigación y los operadores de la investigación podrán verlo. Le recomendamos que alinee los permisos de las investigaciones de CloudWatch con los permisos que tienen los operadores de su grupo de investigación.

Permitir que las investigaciones de CloudWatch descifren datos cifrados durante las investigaciones

Si cifra los datos en alguno de los siguientes servicios con una clave administrada por el cliente en AWS KMS y quiere que las investigaciones de CloudWatch puedan descifrar los datos de estos servicios e incluirlos en las investigaciones, tendrá que adjuntar una o varias políticas de IAM adicionales al rol de IAM del asistente.

  • AWS Step Functions

La declaración de política debe incluir una clave de contexto para el contexto de cifrado a fin de ayudar a reducir el ámbito de los permisos. Por ejemplo, la siguiente política permitiría a las investigaciones de CloudWatch descifrar los datos de una máquina de estados de Step Functions.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AIOPSKMSAccessForStepFunctions", "Effect": "Allow", "Principal": { "Service": "aiops.amazonaws.com" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "states.*.amazonaws.com", "kms:EncryptionContext:aws:states:stateMachineArn": "arn:aws:states:region:accountId:stateMachine:*" } } } ] }

Para obtener más información acerca de estos tipos de políticas y el uso de estas claves de contexto, consulte kms:ViaService y kms:EncryptionContext:context-key en la Guía del usuario de AWS Key Management Service y aws:SourceArn en la Guía del usuario de IAM.

Cifrado de datos de investigación

Para el cifrado de los datos de la investigación, AWS ofrece dos opciones:

  • Claves propiedad de AWS: de forma predeterminada, las investigaciones de CloudWatch cifran los datos en reposo de la investigación con una clave propiedad de AWS. No puede ver ni administrar las claves propiedad de AWS ni puede usarlas para otros fines ni auditar su uso. Sin embargo, no tiene que hacer ninguna acción ni cambiar ninguna configuración para usar estas claves. Para obtener más información sobre las claves propiedad de AWS, consulte AWS owned keys.

  • Claves administradas por el cliente: se trata de claves que crea y administra usted. Puede optar por utilizar una clave administrada por el cliente en lugar de una clave propiedad de AWS para los datos de la investigación. Para obtener más información acerca de las claves administradas por el cliente, consulte Customer managed keys.

nota

Las investigaciones de CloudWatch activan automáticamente el cifrado en reposo mediante claves propiedad de AWS sin costo alguno. Si utiliza una clave administrada por el cliente, se aplicarán cargos de AWS KMS. Para obtener más información acerca de los precios, consulte Precios de AWS Key Management Service.

Para obtener más información acerca de AWS KMS, consulte AWS Key Management Service.

Uso de una clave administrada por el cliente para su grupo de investigación

Puede asociar un grupo de investigación a una clave administrada por el cliente y, a continuación, todas las investigaciones que se creen en ese grupo utilizarán la clave administrada por el cliente para cifrar los datos en reposo de la investigación.

El uso de claves administradas por el cliente de las investigaciones de CloudWatch tiene las siguientes condiciones:

  • Las investigaciones de CloudWatch solo admiten claves de AWS KMS de cifrado simétrico con la especificación de clave predeterminada, SYMMETRIC_DEFAULT, y cuyo uso se define como ENCRYPT_DECRYPT.

  • Para que un usuario cree o actualice un grupo de investigación con una clave administrada por el cliente, dicho usuario debe tener los permisos kms:DescribeKey, kms:GenerateDataKey y kms:Decrypt.

  • Para que un usuario cree o actualice una investigación de un grupo de investigación que utiliza una clave administrada por el cliente, dicho usuario debe tener los permisos kms:GenerateDataKey y kms:Decrypt.

  • Para que un usuario pueda ver los datos de investigación de un grupo de investigación que utiliza una clave administrada por el cliente, dicho usuario debe tener el permiso kms:Decrypt.

Configuración de las investigaciones para utilizar una clave de AWS KMS administrada por el cliente

En primer lugar, si aún no tiene una clave simétrica que quiera utilizar, cree una nueva clave con el siguiente comando.

aws kms create-key

La salida del comando incluye el id. de la clave y el nombre de recurso de Amazon (ARN) de la clave. Los necesitará en los pasos posteriores de esta sección. A continuación, se muestra un ejemplo de esta salida.

{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT", "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1478910250.94, "Arn": "arn:aws:kms:us-west-2:111122223333:key/6f815f63-e628-448c-8251-e4EXAMPLE", "AWSAccountId": "111122223333", "EncryptionAlgorithms": [ "SYMMETRIC_DEFAULT" ] } }

Establecimiento de permisos en la clave

Después, establezca los permisos en la clave. De forma predeterminada, todas las claves de AWS KMS son privadas. Solo el propietario del recurso puede utilizarla para cifrar y descifrar datos. Sin embargo, el propietario del recurso puede conceder permisos para que otros usuarios y recursos accedan a la clave. Con este paso, concede a la entidad principal del servicio de AI Operations el permiso para utilizar la clave. Esta entidad principal del servicio debe estar en la misma región de AWS en la que está almacenada la clave de KMS.

Como práctica recomendada, le sugerimos que restrinja el uso de la clave de KMS únicamente a las cuentas o recursos de AWS que especifique.

El primer paso para establecer los permisos es guardar la política predeterminada para la clave como policy.json. Para ello, utilice el siguiente comando. Sustituya key-id por el identificador de su clave.

aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json

Abra el archivo policy.json en un editor de texto y agregue las siguientes secciones de política a esa política. Separe la instrucción existente de las nuevas secciones con una coma. Estas nuevas secciones utilizan secciones de Condition para mejorar la seguridad de la clave de AWS KMS. Para obtener más información, consulte AWS KMS keys and encryption context.

Esta política proporciona permisos a las entidades principales de servicio por los siguientes motivos:

  • El servicio de aiops necesita permisos de GenerateDataKey para obtener la clave de datos y utilizarla para cifrar los datos mientras están almacenados en reposo. El permiso de Decrypt es necesario para descifrar los datos mientras se leen desde el almacén de datos. El descifrado se produce al leer los datos mediante las API de aiops o al actualizar la investigación o el evento de investigación. La operación de actualización obtiene los datos existentes después de descifrarlos, los actualiza y los almacena en el almacén de datos después de cifrarlos

  • El servicio de alarmas de CloudWatch puede crear investigaciones o eventos de investigación. Estas operaciones de creación verifican que la persona que llama tiene acceso a la clave de AWS KMS definida para el grupo de investigación. La instrucción de la política otorga los permisos GenerateDataKey y Decrypt al servicio de alarmas de CloudWatch para crear investigaciones en su nombre.

nota

La siguiente política supone que debe seguir la recomendación de utilizar tres entidades principales de IAM y conceder a una de estas la política de IAM AIOpsConsoleAdminPolicy, conceder a otro la política AIOpsOperatorAccess y conceder a la tercera la política AIOpsReadOnlyAccess. Estas entidades principales pueden ser roles de IAM (recomendado) o usuarios de IAM. Luego, los usuarios que trabajan con las investigaciones de CloudWatch iniciarían sesión con una de estas entidades principales.

Para la siguiente política, necesitará los ARN de esas tres entidades principales.

{ "Sid": "Enable AI Operations Admin for the DescribeKey permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/{AIOpsConsoleAdmin}" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aiops.{region}.amazonaws.com" } } }, { "Sid": "Enable AI Operations Admin and Operator for the Decrypt and GenerateDataKey permissions", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::{account-id}:role/{AIOpsConsoleAdmin}", "arn:aws:iam::{account-id}:role/{AIOpsOperator}" ] }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aiops.{region}.amazonaws.com" }, "ArnLike": { "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" } } }, { "Sid": "Enable AI Operations ReadOnly for the Decrypt permission", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:role/{AIOpsReadOnly}" }, "Action": [ "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": "aiops.{region}.amazonaws.com" }, "ArnLike": { "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" } } }, { "Sid": "Enable the AI Operations service to have the DescribeKey permission", "Effect": "Allow", "Principal": { "Service": "aiops.amazonaws.com" }, "Action": [ "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "{account-id}" }, "StringLike": { "aws:SourceArn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" } } }, { "Sid": "Enable the AI Operations service to have the Decrypt and GenerateDataKey permissions", "Effect": "Allow", "Principal": { "Service": "aiops.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "{account-id}" }, "StringLike": { "aws:SourceArn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" }, "ArnLike": { "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" } } }, { "Sid": "Enable CloudWatch to have the Decrypt and GenerateDataKey permissions", "Effect": "Allow", "Principal": { "Service": "aiops.alarms.cloudwatch.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnLike": { "kms:EncryptionContext:aws:aiops:investigation-group-arn": "arn:aws:aiops:{region}:{account-id}:investigation-group/*" }, "StringEquals": { "aws:SourceAccount": "{account-id}", "kms:ViaService": "aiops.{region}.amazonaws.com" }, "StringLike": { "aws:SourceArn": "arn:aws:cloudwatch:{region}:{account-id}:alarm:*" } } }

Una vez haya actualizado la política, asígnela a la clave mediante la asignación del siguiente comando.

aws kms put-key-policy --key-id key-id --policy-name default --policy file://policy.json

Asociación de la clave al grupo de investigación

Cuando utiliza la consola de CloudWatch para crear un grupo de investigación, puede optar por asociar la clave de AWS KMS al grupo de investigación. Para obtener más información, consulte Configuración de investigaciones operativas.

También puede asociar una clave administrada por el cliente a un grupo de investigación existente.

Cambio de la configuración de cifrado

Puede actualizar un grupo de investigación para cambiar entre usar una clave administrada por el cliente o una clave propiedad del servicio. También puede pasar de usar una clave administrada por el cliente a otra. Al hacer un cambio de este tipo, este se aplica a las nuevas investigaciones creadas después del cambio. Las investigaciones anteriores siguen relacionadas con la configuración de cifrado anterior. Actualmente, las investigaciones en curso también siguen utilizando la clave original para obtener nuevos datos.

Mientras una clave utilizada anteriormente esté activa y Amazon Q tenga acceso a ella para hacer investigaciones, puede recuperar las investigaciones más antiguas cifradas con ese método, así como los datos de las investigaciones actuales que se cifraron con la clave anterior. Si elimina una clave utilizada anteriormente o revoca el acceso a ella, no se podrán recuperar los datos de la investigación cifrados con esa clave.

Inferencia entre regiones

Las investigaciones de CloudWatch utilizan la inferencia entre regiones para distribuir el tráfico entre distintas regiones de AWS. Si bien los datos solo permanecen almacenados en la región principal, cuando utiliza la inferencia entre regiones, sus datos de investigación podrían llevarse fuera de la región principal. Todos los datos se transmitirán cifrados a través de la red segura de Amazon. Para obtener más información, consulte Inferencia entre regiones en la guía del usuario de las investigaciones de CloudWatch.

Para obtener más información sobre dónde se produce la distribución de inferencias entre regiones para cada región, consulte la siguiente tabla.

Geografía compatible con las investigaciones de CloudWatch Región de investigación Posibles regiones de inferencia
Estados Unidos (US) Este de EE. UU. (Norte de Virginia) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Este de EE. UU. (Ohio) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Oeste de EE. UU. (Oregón) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Europa (UE) Europa (Fráncfort) Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Oregón), Europa (Fráncfort), Europa (Irlanda), Europa (París), Europa (Estocolmo)
Europa (Irlanda) Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Oregón), Europa (Fráncfort), Europa (Irlanda), Europa (París), Europa (Estocolmo)
Europa (España) Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Oregón), Europa (Fráncfort), Europa (Irlanda), Europa (París), Europa (Estocolmo)
Europa (Estocolmo) Este de EE. UU. (Norte de Virginia), Este de EE. UU. (Ohio), Oeste de EE. UU. (Oregón), Europa (Fráncfort), Europa (Irlanda), Europa (París), Europa (Estocolmo)
Asia-Pacífico (AP) Asia-Pacífico (Hong Kong) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Bombay) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Singapur) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Sídney) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Tokio) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Malasia) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)
Asia-Pacífico (Tailandia) EE. UU. Este (Norte de Virginia), EE. UU. Este (Ohio), EE. UU. Oeste (Oregón)