Política de tópicos do Amazon SNS para CloudTrail - AWS CloudTrail

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 CloudTrail

Para enviar notificações para um tópico do SNS, é CloudTrail necessário ter as permissões necessárias. CloudTrailanexa automaticamente as permissões necessárias ao tópico quando você cria um tópico do Amazon SNS como parte da criação ou atualização de uma trilha no CloudTrail console.

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.

CloudTrail adiciona a seguinte declaração à política para você com os seguintes campos:

  • Os SIDs permitidos.

  • O nome principal do serviço para CloudTrail.

  • O tópico do SNS, incluindo região, ID da conta e nome do tópico.

A política a seguir permite CloudTrail enviar notificações sobre a entrega de arquivos de log das regiões suportadas. 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 AWS KMS criptografado do Amazon SNS para enviar notificações, você também deve habilitar a compatibilidade entre a fonte do evento CloudTrail () e o tópico criptografado adicionando a seguinte declaração à política do. 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 compatibilidade entre fontes de eventos de AWS serviços e tópicos criptografados.

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 CloudTrail anexada ao seu tópico do Amazon SNS permite que CloudTrail o responsável pelo serviço publique em um tópico do SNS, identificado por um ARN. Para ajudar a impedir que um invasor tenha acesso ao seu tópico do SNS e envie notificações em nome dos destinatários do CloudTrail tópico, edite manualmente sua política de tópicos do CloudTrail SNS para adicionar uma chave de aws:SourceArn condição à declaração de política anexada por. 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 à sua política de tópicos do SNS, obtenha o nome do tópico do SNS nas configurações da trilha no CloudTrail console.

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
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel de navegação, escolha Tópicos.

  3. Escolha o tópico SNS que é mostrado nas configurações de trilha e escolha Edit (Editar).

  4. Expanda Access policy (Política de acesso).

  5. 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" }
  6. Adicione um novo bloco para uma condição, aws:SourceArn, conforme mostrado no exemplo a seguir. O valor de aws: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" } } }
  7. 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
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. No painel de navegação, escolha Tópicos.

  3. Escolha o tópico SNS que é mostrado nas configurações de trilha e escolha Edit (Editar).

  4. Expanda Access policy (Política de acesso).

  5. 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" }
  6. Adicione um novo bloco para uma condição, aws:SourceAccount, conforme mostrado no exemplo a seguir. O valor de aws:SourceAccount é o ID da conta proprietária da CloudTrail trilha. Este exemplo restringe o acesso ao tópico do SNS somente aos usuários que podem entrar na AWS conta 123456789012.

    { "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" } } }
  7. 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

Você pode adicionar manualmente as permissões de um tópico do Amazon SNS à sua política de tópicos no console do Amazon SNS e depois especificar o tópico no console. CloudTrail

Para atualizar manualmente uma política de tópicos do SNS
  1. Abra o console do Amazon SNS em https://console.aws.amazon.com/sns/v3/home.

  2. Escolha Topics (Tópicos) e escolha o tópico.

  3. Escolha Editar e, em seguida, role para baixo até Política de acesso.

  4. Adicione o extrato de SNS topic policy com os valores apropriados para a região, ID da conta e nome do tópico.

  5. Se o seu tópico for um tópico criptografado, você deverá CloudTrail permitir que ele tenha kms:GenerateDataKey* e as kms:Decrypt permissões. Para ter mais informações, consulte Encrypted SNS topic KMS key policy.

  6. Escolha Salvar alterações.

  7. Volte ao CloudTrail console e especifique o tópico da 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.

CloudTrail não está enviando notificações para uma região

Quando você cria um novo tópico como parte da criação ou atualização de uma trilha, CloudTrail anexa as permissões necessárias ao seu tópico. A política de tópicos usa o nome principal do serviço"cloudtrail.amazonaws.com",, que permite CloudTrail enviar notificações para todas as regiões.

Se não CloudTrail estiver enviando notificações para uma região, é possível que seu tópico tenha uma política mais antiga que especifique IDs de CloudTrail conta para cada região. Essa política dá CloudTrail permissão para enviar notificações somente para as regiões especificadas.

A política de tópicos a seguir CloudTrail permite enviar 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 CloudTrail contas individuais. Para entregar registros para uma nova região, você deve atualizar manualmente a política para incluir o ID da CloudTrail conta dessa região. Por exemplo, como CloudTrail adicionou suporte para a região Leste dos EUA (Ohio), você deve atualizar a política para adicionar o ARN do ID da conta para essa região:. "arn:aws:iam::475085895292:root"

Como prática recomendada, atualize a política para usar uma permissão com o responsável pelo CloudTrail serviço. 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á CloudTrail permissão para enviar notificações para 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.

CloudTrail não está enviando notificações para uma conta de membro em uma organização

Quando uma conta membro com uma trilha AWS Organizations organizacional 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. CloudTrail cria trilhas da organização nas contas dos membros mesmo se a validação do recurso falhar, por exemplo, o tópico do SNS da trilha da organização não inclui todas as IDs das contas dos membros. Se a política de tópicos do SNS estiver incorreta, ocorrerá uma falha na autorização.

Para verificar se a política de tópicos do SNS de uma trilha tem uma falha de autorização:

  • No CloudTrail console, confira a página de detalhes da trilha. Se houver uma falha na autorização, a página de detalhes inclui um aviso SNS authorization failed e indica a correção da política de tópicos do SNS.

  • A partir do AWS CLI, execute o get-trail-statuscomando. Se houver uma falha na autorização, a saída do comando incluirá o LastNotificationError campo com um valor deAuthorizationError.

Recursos adicionais do

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.