As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Política de tópicos do Amazon SNS para o CloudTrail
Para enviar notificações a um tópico do SNS, o CloudTrail deve ter as permissões necessárias. O CloudTrail anexa automaticamente as permissões necessárias ao tópico quando você cria um tópico do Amazon SNS como parte da criação ou da atualização de uma trilha no console do CloudTrail.
Importante
Como prática recomendada de segurança, para restringir o acesso ao tópico do SNS, recomendamos que, depois de criar ou atualizar uma trilha para enviar notificações do SNS, você edite manualmente a política do IAM anexada ao tópico do SNS para adicionar chaves de condição. Para obter mais informações, consulte Prática recomendada de segurança para a política de tópicos do SNS neste tópico.
O CloudTrail adiciona a seguinte instrução à política para você com os seguintes campos:
-
Os SIDs permitidos.
-
O nome principal do serviço do CloudTrail.
-
O tópico do SNS, incluindo região, ID da conta e nome do tópico.
A política a seguir permite que o CloudTrail envie notificações sobre a entrega de arquivos de log de regiões compatíveis. Para ter mais informações, consulte CloudTrail Regiões suportadas. Esta é a política padrão anexada a uma política de tópicos do SNS nova ou existente quando você cria ou atualiza uma trilha e opta por habilitar as notificações do SNS.
Política de tópicos do SNS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:
region
:SNSTopicOwnerAccountId
:SNSTopicName
" } ] }
Para usar um tópico do Amazon SNS criptografado pelo AWS KMS para enviar notificações, você deverá habilitar a compatibilidade entre a fonte do evento (CloudTrail) e o tópico criptografado adicionando a instrução a seguir à política da AWS KMS key.
Política de chaves do KMS
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" } ] }
Para obter mais informações, consulte Habilitar a compatibilidade entre as fontes de eventos de tópicos criptografados e serviços da AWS.
Sumário
Prática recomendada de segurança para a política de tópicos do SNS
Por padrão, a declaração de política do IAM que o CloudTrail anexa ao tópico do Amazon SNS permite que o principal de serviço do CloudTrail publique em um tópico do SNS identificado por um ARN. Para ajudar a impedir que um invasor obtenha acesso ao tópico do SNS e envie notificações em nome do CloudTrail para destinatários do tópico, edite manualmente sua política de tópicos do CloudTrail SNS para adicionar uma aws:SourceArn
condição de chave para a declaração de política anexada pelo CloudTrail. O valor dessa chave é sempre o ARN da trilha (ou matriz de ARNs de trilha) que estejam usando o tópico do SNS. Como o valor dessa chave inclui o ID de trilha específica e o ID da conta que possui a trilha, ela restringe o acesso a tópicos do SNS somente às contas que têm permissão para gerenciar a trilha. Antes de adicionar chaves de condição à política de tópicos do SNS, obtenha o nome do tópico do SNS nas configurações da trilha no console do CloudTrail.
A aws:SourceAccount
chave de condição também é compatível, mas não é recomendada.
Para adicionar a chave de condição do aws:SourceArn
à sua política de tópico do SNS
Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home
. -
No painel de navegação, escolha Tópicos.
-
Escolha o tópico SNS que é mostrado nas configurações de trilha e escolha Edit (Editar).
-
Expanda Access policy (Política de acesso).
-
No editor JSON Access policy (Política de acesso), procure um bloco semelhante ao exemplo a seguir.
{ "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
-
Adicione um novo bloco para uma condição,
aws:SourceArn
, conforme mostrado no exemplo a seguir. O valor deaws:SourceArn
é o ARN da trilha sobre a qual você está enviando notificações para o SNS.{ "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail3" } } }
-
Quando terminar de editar a política de tópico do SNS, escolha Save changes (Salvar alterações).
Para adicionar a chave de condição do aws:SourceAccount
à sua política de tópico do SNS
Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home
. -
No painel de navegação, escolha Tópicos.
-
Escolha o tópico SNS que é mostrado nas configurações de trilha e escolha Edit (Editar).
-
Expanda Access policy (Política de acesso).
-
No editor JSON Access policy (Política de acesso), procure um bloco semelhante ao exemplo a seguir.
{ "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
-
Adicione um novo bloco para uma condição,
aws:SourceAccount
, conforme mostrado no exemplo a seguir. O valor deaws:SourceAccount
é o ID da conta da que possui a trilha do CloudTrail. Este exemplo restringe o acesso ao tópico do SNS apenas aos usuários que podem entrar na conta 123456789012 da AWS.{ "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }
-
Quando terminar de editar a política de tópico do SNS, escolha Save changes (Salvar alterações).
Especificar um tópico existente para enviar notificações
É possível adicionar manualmente as permissões para um tópico do Amazon SNS à política do tópico no console do Amazon SNS e especificar o tópico no console do CloudTrail.
Para atualizar manualmente uma política de tópicos do SNS
Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home
. -
Escolha Topics (Tópicos) e escolha o tópico.
-
Escolha Editar e, em seguida, role para baixo até Política de acesso.
-
Adicione a instrução de SNS topic policy com os valores apropriados para a região, o ID da conta e o nome do tópico.
-
Se o seu tópico for um tópico criptografado, será necessário permitir que o CloudTrail tenha permissões de
kms:GenerateDataKey*
ekms:Decrypt
. Para ter mais informações, consulte Encrypted SNS topic KMS key policy. -
Selecione Save changes.
-
Volte ao console do CloudTrail e especifique o tópico para a trilha.
Solução de problemas de política de tópicos do SNS
As seções a seguir descrevem como solucionar problemas da política de tópicos do SNS.
Cenários:
O CloudTrail não está enviando notificações para uma região
Quando você cria um novo tópico como parte da criação ou da atualização de uma trilha, o CloudTrail anexa as permissões necessárias ao seu tópico. A política de tópicos usa o nome da entidade principal do serviço, "cloudtrail.amazonaws.com"
, o que permite que o CloudTrail envie notificações a todas as regiões.
Se o CloudTrail não estiver enviando notificações a uma região, é possível que seu tópico tenha uma política mais antiga que especifica IDs de contas do CloudTrail para cada região. Essa política oferece ao CloudTrail permissão para enviar notificações somente para as regiões especificadas.
A política de tópicos a seguir permite que o CloudTrail envie notificações somente para as nove regiões especificadas:
exemplo política de tópicos com IDs de contas
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AWSCloudTrailSNSPolicy20131101",
"Effect": "Allow",
"Principal": {"AWS": [
"arn:aws:iam::903692715234:root",
"arn:aws:iam::035351147821:root",
"arn:aws:iam::859597730677:root",
"arn:aws:iam::814480443879:root",
"arn:aws:iam::216624486486:root",
"arn:aws:iam::086441151436:root",
"arn:aws:iam::388731089494:root",
"arn:aws:iam::284668455005:root",
"arn:aws:iam::113285607260:root"
]},
"Action": "SNS:Publish",
"Resource": "aws:arn:sns:us-east-1:123456789012:myTopic"
}]
}
Essa política usa uma permissão com base em IDs de contas individuais do CloudTrail. Para entregar logs para uma nova região,é necessário atualizar a política manualmente para incluir o ID da conta do CloudTrail para essa região. Por exemplo, como o CloudTrail adicionou suporte à região Leste dos EUA (Ohio), é necessário atualizar a política para adicionar o ARN do ID da conta dessa região: "arn:aws:iam::475085895292:root"
.
Como prática recomendada, atualize a política para usar uma permissão com o principal do serviço do CloudTrail. Para fazer isso, substitua os Nomes de região da Amazon (ARN) do ID da conta pelo nome principal do serviço: "cloudtrail.amazonaws.com"
.
Isso dá ao CloudTrail permissão para enviar notificações a regiões atuais e novas. Veja a seguir uma versão atualizada da política anterior:
exemplo política de tópicos com o nome principal do serviço
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "AWSCloudTrailSNSPolicy20131101",
"Effect": "Allow",
"Principal": {"Service": "cloudtrail.amazonaws.com"},
"Action": "SNS:Publish",
"Resource": "arn:aws:sns:us-west-2:123456789012:myTopic"
}]
}
Verifique se a política tem os valores corretos:
-
No campo
Resource
, especifique o número da conta do proprietário do tópico. Para os tópicos que você criar, especifique o número da sua conta. -
Especifique os valores apropriados para a região e o nome do tópico do SNS.
O CloudTrail não está enviando notificações a uma conta-membro em uma organização
Quando uma conta-membro com uma trilha de organização AWS Organizations não está enviando notificações do Amazon SNS, pode haver um problema com a configuração da política de tópicos do SNS. O CloudTrail cria trilhas de organização nas contas-membro mesmo se houver falha na validação de um recurso, por exemplo. O tópico SNS da trilha organizacional não inclui todos os IDs das contas-membro. Se a política de tópicos do SNS estiver incorreta, ocorrerá falha na autorização.
Como verificar se a política de tópicos do SNS de uma trilha tem uma falha de autorização:
-
No console do CloudTrail, verifique a página de detalhes da trilha. Se houver uma falha na autorização, a página de detalhes incluirá um aviso
SNS authorization failed
e indicará que a política de tópicos do SNS deve ser corrigida. -
A partir da AWS CLI, execute o comando get-trail-status. Se houver uma falha na autorização, a saída do comando incluirá o campo
LastNotificationError
com um valor deAuthorizationError
.
Recursos adicionais
Para obter mais informações sobre tópicos do SNS e como se inscrever neles, consulte o Guia do desenvolvedor do Amazon Simple Notification Service.