Segurança nas investigações do CloudWatch
Esta seção inclui tópicos sobre como as investigações do CloudWatch se integram aos recursos de segurança e permissões da AWS.
Tópicos
Permissões de usuário
A AWS criou três políticas gerenciadas do IAM que você pode usar para os usuários que trabalharão com as investigações do CloudWatch.
-
AIOpsConsoleAdminPolicy: concede ao administrador a capacidade de configurar investigações do CloudWatch na conta, acessar as ações de investigações do CloudWatch e gerenciar a propagação de identidade confiável e a integração com o Centro de Identidade do IAM e o acesso organizacional.
-
AIOpsOperatorAccess: concede ao usuário acesso às ações de investigação, incluindo iniciar uma investigação. Também concede permissões adicionais que são necessárias para acessar eventos de investigação.
-
AIOpsReadOnlyAccess: concede permissões somente leitura para investigações do CloudWatch e outros serviços relacionados.
Recomendamos que você use três entidades principais do IAM, concedendo a uma delas a política AIOpsConsoleAdminPolicy do IAM, à outra, a política AIOpsOperatorAccess, e à terceira, a política AIOpsReadOnlyAccess. Essas entidades principais podem ser perfis do IAM (recomendado) ou usuários do IAM. Dessa forma, os usuários que trabalham com as investigações do CloudWatch podem fazer login com uma dessas entidades principais.
Como controlar a quais dados as investigações do CloudWatch têm acesso durante as investigações
Ao habilitar o recurso de investigações do CloudWatch, você especifica quais permissões as investigações do CloudWatch terão para acessar seus recursos durante as investigações. Você faz isso atribuindo um perfil do IAM ao assistente.
Para permitir que as investigações do CloudWatch acessem recursos e possam fazer sugestões e hipóteses, o método recomendado é anexar a política AIOpsAssistantPolicy ao perfil do assistente. Isso concede ao assistente permissões para analisar seus recursos da AWS durante as investigações. Para obter informações sobre todo o conteúdo dessa política, consulte Política do IAM para investigações do CloudWatch (AIOpsAssistantPolicy).
Você também pode optar por anexar a política geral ReadOnlyAccess da AWS ao perfil do assistente, além de anexar aAIOpsAssistantPolicy. O motivo para fazer isso é que a AWS atualiza a política ReadOnlyAccess com mais frequência com permissões para novos serviços e ações da AWS que são lançados. A política AIOpsAssistantPolicy também será atualizada para novas ações, mas não com tanta frequência.
Se desejar restringir o escopo das permissões concedidas às investigações do CloudWatch, você poderá anexar uma política do IAM personalizada ao perfil do IAM do assistente em vez de anexar a política AIOpsAssistantPolicy. Para fazer isso, inicie sua política personalizada com o conteúdo da política AIOpsAssistantPolicy e, em seguida, remova as permissões que não deseja conceder às investigações do CloudWatch. Isso impedirá que o assistente possa fazer sugestões com base nos serviços ou ações da AWS aos quais você não concede acesso.
nota
Qualquer coisa que as investigações do CloudWatch possam acessar pode ser adicionada à investigação e ser vista pelos operadores da investigação. Recomendamos alinhar as permissões das investigações do CloudWatch com as permissões dos operadores do seu grupo de investigação.
Permitir que as investigações do CloudWatch descriptografem dados durante as investigações
Se você criptografar os dados em qualquer um dos serviços a seguir com uma chave gerenciada pelo cliente no AWS KMS e desejar que as investigações do CloudWatch descriptografem os dados desses serviços e os incluam nas investigações, você precisará anexar uma ou mais políticas adicionais do IAM ao perfil do IAM do assistente.
-
AWS Step Functions
A declaração de política deve incluir uma chave de contexto para o contexto de criptografia para ajudar a restringir o escopo das permissões. Por exemplo, a política a seguir permitirá que as investigações do CloudWatch descriptografem dados de uma máquina de estado do 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 obter mais informações sobre esses tipos de políticas e o uso dessas chaves de contexto, consulte kms:ViaService e kms:EncryptionContext:context-key no Guia do desenvolvedor do AWS Key Management Service e aws:SourceArn no Guia do usuário do IAM.
Criptografia de dados de investigação
Para a criptografia dos dados da investigação, a AWS oferece duas opções:
-
Chaves pertencentes à AWS: por padrão, o CloudWatch Investigations criptografa dados de investigação em repouso com uma chave pertencente à AWS. Você não pode visualizar nem gerenciar chaves de propriedade da AWS, tampouco usá-las para outras finalidades ou auditar seu uso. No entanto, você não precisa fazer nada nem alterar nenhuma configuração para usar essas chaves. Para obter mais informações sobre chaves de propriedade da AWS, consulte AWS owned keys.
-
Chaves gerenciadas pelo cliente: são chaves que você cria e gerencia por conta própria. Você pode optar por usar uma chave gerenciada pelo cliente em vez de uma chave de propriedade da AWS para os dados de investigação. Para obter mais informações sobre chaves gerenciadas pelo cliente, consulte Customer managed keys.
nota
As investigações do CloudWatch habilitam automaticamente a criptografia em repouso usando chaves pertencentes à AWS sem nenhum custo. Se você usar uma chave gerenciada pelo cliente, serão aplicadas cobranças do AWS KMS. Para obter mais informações sobre preços, consulte Preços do AWS Key Management Service
Para obter mais informações sobre o AWS KMS, consulte AWS Key Management Service.
Usar uma chave gerenciada pelo cliente para o grupo de investigação
Você pode associar um grupo de investigação a uma chave gerenciada pelo cliente e, em seguida, todas as investigações criadas nesse grupo a usarão para criptografar os dados de investigação em repouso.
As investigações do CloudWatch e o uso da chave gerenciada pelo cliente apresentam as seguintes condições:
-
As investigações do CloudWatch são compatíveis apenas com chaves de criptografia simétricas do AWS KMS com a especificação de chave padrão,
SYMMETRIC_DEFAULT
, e que tenham o uso definido comoENCRYPT_DECRYPT
. -
Para que um usuário crie ou atualize um grupo de investigação com uma chave gerenciada pelo cliente, esse usuário deverá ter as permissões
kms:DescribeKey
,kms:GenerateDataKey
ekms:Decrypt
. -
Para que um usuário crie ou atualize uma investigação em um grupo de investigação que usa uma chave gerenciada pelo cliente, esse usuário deverá ter as permissões
kms:GenerateDataKey
ekms:Decrypt
. -
Para que um usuário visualize os dados da investigação em um grupo de investigação que usa uma chave gerenciada pelo cliente, esse usuário deverá ter a permissão
kms:Decrypt
.
Configurar investigações para usar uma chave gerenciada pelo cliente do AWS KMS
Primeiro, caso ainda não tenha uma chave simétrica que queira usar, crie uma chave com o comando a seguir.
aws kms create-key
A saída do comando inclui o ID e o nome do recurso da Amazon (ARN) da chave. Você precisará deles em etapas posteriores nesta seção. Veja abaixo um exemplo de saída.
{ "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" ] } }
Definir permissões na chave
Depois, defina as permissões na chave. Por padrão, todas as chaves do AWS KMS são privadas. Somente o proprietário do recurso pode usá-la para criptografar e descriptografar dados. No entanto, o proprietário do recurso pode conceder permissões para acessar a chave a outros usuários e recursos. Com esta etapa, você fornece à entidade principal do serviço do IA Operations permissão para usar a chave. A entidade principal desse serviço deve estar na mesma região da AWS em que a chave do KMS está armazenada.
Como prática recomendada, recomendamos restringir o uso da chave do KMS somente aos recursos ou contas da AWS que você especificar.
A primeira etapa para definir as permissões é salvar a política padrão da chave como policy.json
. Para fazer isso, use o comando a seguir. Substitua key-id
pelo ID da chave.
aws kms get-key-policy --key-id
key-id
--policy-name default --output text > ./policy.json
Abra o arquivo policy.json
em um editor de texto e adicione as seções de política a seguir a essa política. Separe a declaração existente das novas seções com uma vírgula. Essas novas seções usam as seções Condition
para aumentar a segurança da chave do AWS KMS. Para obter mais informações, consulte AWS KMS keys and encryption context.
Essa política fornece permissões para as entidades principais dos serviços pelas seguintes razões:
-
O serviço do
aiops
precisa de permissõesGenerateDataKey
para obter a chave de dados e usá-la para criptografar os dados enquanto eles estão armazenados em repouso. A permissãoDecrypt
é necessária para descriptografar os dados durante a leitura do armazenamento de dados. A descriptografia acontece quando você lê os dados usando APIs doaiops
ou quando atualiza a investigação ou o evento de investigação. A operação de atualização busca os dados existentes após descriptografá-los, atualiza-os e armazena os dados atualizados no armazenamento de dados após a criptografia -
O serviço de alarmes do CloudWatch pode criar investigações ou eventos de investigação. Essas operações de criação verificam se o chamador tem acesso à chave do AWS KMS definida para o grupo de investigação. A declaração de política concede as permissões
GenerateDataKey
eDecrypt
ao serviço de alarmes do CloudWatch para criar investigações em seu nome.
nota
A política a seguir assume que você segue a recomendação de usar três entidades principais do IAM, concedendo a uma delas a política AIOpsConsoleAdminPolicy do IAM, à outra, a política AIOpsOperatorAccess, e à terceira, a política AIOpsReadOnlyAccess. Essas entidades principais podem ser perfis do IAM (recomendado) ou usuários do IAM. Dessa forma, os usuários que trabalham com as investigações do CloudWatch podem fazer login com uma dessas entidades principais.
Para a política a seguir, você precisará dos ARNs das três entidades principais.
{ "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:*" } } }
Depois de atualizar a política, atribua-a à chave inserindo o comando a seguir.
aws kms put-key-policy --key-id
key-id
--policy-name default --policy file://policy.json
Associar a chave ao grupo de investigação
Ao usar o console do CloudWatch para criar um grupo de investigação, você pode escolher associar a chave do AWS KMS ao grupo de investigação. Para obter mais informações, consulte Configurar investigações operacionais.
Você também pode associar uma chave gerenciada pelo cliente a um grupo de investigação existente.
Alterar a configuração de criptografia
Você pode atualizar um grupo de investigação para alternar entre o uso de uma chave gerenciada pelo cliente ou uma chave de propriedade do serviço. Você também pode deixar de usar uma chave gerenciada pelo cliente para usar outra. Ao fazer essa alteração, ela se aplicará às novas investigações criadas depois dela. As investigações anteriores ainda estarão associadas à configuração de criptografia antiga. As investigações atuais em andamento também continuarão usando a chave original para novos dados.
Desde que uma chave usada anteriormente esteja ativa e o Amazon Q tenha acesso a ela para investigações, você poderá recuperar as investigações mais antigas criptografadas com esse método, bem como os dados das investigações atuais que foram criptografados com a chave anterior. Se você excluir uma chave usada anteriormente ou revogar o acesso a ela, os dados das investigações criptografados com essa chave não poderão ser recuperados.
Inferência entre regiões
As investigações do CloudWatch usam inferência entre regiões para distribuir o tráfego em diferentes regiões da AWS. Embora os dados permaneçam armazenados somente na região primária, ao ser usada a inferência entre regiões, os dados da investigação podem sair da região primária. Todos os dados serão transmitidos criptografados pela rede segura da Amazon. Para obter mais informações, consulte Inferência entre regiões no Guia do usuário das investigações do CloudWatch.
Para obter detalhes sobre onde ocorre a distribuição de inferência entre regiões para cada região, consulte a tabela a seguir.
Geografia de compatibilidade das investigações do CloudWatch | Região de investigação | Possíveis regiões de inferência |
---|---|---|
Estados Unidos (EUA) | Leste dos EUA (Norte da Virgínia) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) |
Leste dos EUA (Ohio) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Oeste dos EUA (Oregon) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Europa (EU) | Europa (Frankfurt) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Europa (Frankfurt), Europa (Irlanda), Europa (Paris) e Europa (Estocolmo) |
Europa (Irlanda) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Europa (Frankfurt), Europa (Irlanda), Europa (Paris) e Europa (Estocolmo) | |
Europa (Espanha) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Europa (Frankfurt), Europa (Irlanda), Europa (Paris) e Europa (Estocolmo) | |
Europa (Estocolmo) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon), Europa (Frankfurt), Europa (Irlanda), Europa (Paris) e Europa (Estocolmo) | |
Ásia-Pacífico (AP) | Ásia-Pacífico (Hong Kong) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) |
Ásia-Pacífico (Mumbai) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Ásia-Pacífico (Singapura) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Ásia-Pacífico (Sydney) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Ásia-Pacífico (Tóquio) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Ásia-Pacífico (Malásia) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) | |
Ásia-Pacífico (Tailândia) | Leste dos EUA (Norte da Virgínia), Leste dos EUA (Ohio), Oeste dos EUA (Oregon) |