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á.
Configurando a autenticação do token do portador
Antes de enviar registros usando a autenticação de token do portador com qualquer um dos endpoints de ingestão HTTP, você precisa:
Crie um usuário do IAM com permissões CloudWatch de registros
Gere credenciais específicas do serviço (token do portador)
Crie um grupo de registros e um fluxo de registros
Ativar a autenticação do token do portador no grupo de registros
Importante
Recomendamos usar a autenticação SigV4 com credenciais de curto prazo para todas as cargas de trabalho, sempre que possível. O SigV4 fornece a postura de segurança mais forte. Restrinja o uso de chaves de API (tokens portadores) a cenários em que a autenticação de curto prazo baseada em credenciais não seja viável. Quando estiver pronto para incorporar CloudWatch registros em aplicativos com maiores requisitos de segurança, você deve mudar para credenciais de curto prazo. Para obter mais informações, consulte Alternativas às chaves de acesso de longo prazo no Guia do usuário do IAM.
Opção 1: início rápido usando o AWS console
O AWS Management Console fornece um fluxo de trabalho simplificado para gerar chaves de API para acesso ao endpoint HTTP.
Para configurar o acesso ao endpoint HTTP usando o console
Faça login no AWS Management Console.
Navegue até CloudWatch> Configurações > Registros.
-
Na seção Chaves de API, escolha Gerar chave de API.
-
Em Validade da chave de API, faça uma das seguintes opções:
Selecione uma duração de expiração da chave de API de 1, 5, 30, 90 ou 365 dias.
Escolha Duração personalizada para especificar uma data de validade personalizada para a chave de API.
Selecione Nunca expira (não recomendado).
-
Escolha Gerar chave de API.
O console automaticamente:
Cria um novo usuário do IAM com as permissões apropriadas
Anexa a política gerenciada do CloudWatchLogsAPIKeyAccess (inclusões
logs:PutLogEventselogs:CallWithBearerTokenpermissões)Gera credenciais específicas do serviço (chave de API)
-
Copie e salve com segurança as credenciais exibidas:
ID da chave de API (ID de credencial específica do serviço)
Segredo da chave da API (token do portador)
Importante
Salve o segredo da chave de API imediatamente. Ela não poderá ser recuperada posteriormente. Se você a perder, precisará gerar uma nova chave de API.
-
Crie o grupo de registros e o fluxo de registros em que seus registros serão armazenados:
# Create the log group aws logs create-log-group \ --log-group-name /aws/hlc-logs/my-application \ --region us-east-1 # Create the log stream aws logs create-log-stream \ --log-group-name /aws/hlc-logs/my-application \ --log-stream-name application-stream-001 \ --region us-east-1 -
Ative a autenticação do token do portador no grupo de registros:
aws logs put-bearer-token-authentication \ --log-group-identifier /aws/hlc-logs/my-application \ --bearer-token-authentication-enabled \ --region us-east-1Verifique a configuração:
aws logs describe-log-groups \ --log-group-name-prefix /aws/hlc-logs/my-application \ --region us-east-1
Permissões incluídas: o usuário do IAM criado automaticamente terá as seguintes permissões:
logs:PutLogEvents— Enviar eventos de registro para CloudWatch Logslogs:CallWithBearerToken— Autenticar usando o token do portadorkms:Describe*,kms:GenerateDataKey*,kms:Decrypt— Acesse grupos de registros criptografados pelo KMS (com condição restrita ao serviço de registros)
Opção 2: configuração manual
Se você preferir ter mais controle sobre a configuração do IAM ou precisar personalizar as permissões, você pode configurar o acesso ao endpoint HTTP manualmente.
Etapa 1: criar um usuário do IAM
Crie um usuário do IAM que será usado para ingestão de registros:
Faça login no AWS Management Console e navegue até o IAM.
No painel de navegação à esquerda, escolha Usuários.
Selecione Criar usuário.
Insira um nome de usuário (por exemplo,
cloudwatch-logs-hlc-user).Escolha Próximo.
-
Anexe uma das seguintes políticas do IAM:
Opção A: usar a política gerenciada (recomendada)
Anexe a política gerenciada do CloudWatchLogsAPIKeyAccess.
Opção B: criar uma política personalizada
Crie e anexe a seguinte política do IAM:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LogsAPIs", "Effect": "Allow", "Action": [ "logs:CallWithBearerToken", "logs:PutLogEvents" ], "Resource": "*" }, { "Sid": "KMSAPIs", "Effect": "Allow", "Action": [ "kms:Describe*", "kms:GenerateDataKey*", "kms:Decrypt" ], "Condition": { "StringEquals": { "kms:ViaService": [ "logs.*.amazonaws.com" ] } }, "Resource": "arn:aws:kms:*:*:key/*" } ] } Escolha Avançar e, em seguida, Criar usuário.
nota
As permissões do KMS são necessárias se você planeja enviar registros para grupos de registros criptografados pelo KMS. A condição restringe o acesso ao KMS somente às chaves usadas por meio do serviço de CloudWatch registros.
Etapa 2: gerar credenciais específicas do serviço (chave de API)
Gere a chave da API CloudWatch Logs usando a CreateServiceSpecificCredentialAPI. Você também pode usar o comando create-service-specific-credential
Para gerar uma chave de API com uma expiração de 30 dias:
aws iam create-service-specific-credential \ --user-name cloudwatch-logs-hlc-user \ --service-name logs.amazonaws.com \ --credential-age-days 30
A resposta é um ServiceSpecificCredentialobjeto. O ServiceCredentialSecret valor é sua chave da API CloudWatch Logs (token do portador).
Importante
Armazene o valor ServiceCredentialSecret em segurança, pois não será possível recuperá-lo mais tarde. Se você a perder, precisará gerar uma nova chave de API.
Etapa 3: criar um grupo de registros e um fluxo de registros
Crie o grupo de registros e o fluxo de registros em que seus registros serão armazenados:
# Create the log group aws logs create-log-group \ --log-group-name /aws/hlc-logs/my-application \ --region us-east-1 # Create the log stream aws logs create-log-stream \ --log-group-name /aws/hlc-logs/my-application \ --log-stream-name application-stream-001 \ --region us-east-1
Etapa 4: ativar a autenticação do token do portador
Ative a autenticação do token do portador no grupo de registros:
aws logs put-bearer-token-authentication \ --log-group-identifier /aws/hlc-logs/my-application \ --bearer-token-authentication-enabled \ --region us-east-1
Verifique a configuração:
aws logs describe-log-groups \ --log-group-name-prefix /aws/hlc-logs/my-application \ --region us-east-1
Controle as permissões para gerar e usar CloudWatch as chaves da API Logs
A geração e o uso das chaves da API CloudWatch Logs são controlados por ações e chaves de condição nos serviços do CloudWatch Logs e do IAM.
Controle da geração de chaves da API CloudWatch Logs
A CreateServiceSpecificCredential ação iam: controla a geração de uma chave específica do serviço (como uma chave da API CloudWatch Logs). Você pode definir o escopo dessa ação para usuários do IAM como um recurso para limitar os usuários para os quais uma chave pode ser gerada.
É possível usar as seguintes chaves de condição para impor condições à permissão para a ação iam:CreateServiceSpecificCredential:
iam: ServiceSpecificCredentialAgeDays — Permite especificar, na condição, o tempo de expiração da chave em dias. Por exemplo, é possível usar essa chave de condição para permitir somente a criação de chaves de API que expirem em noventa dias.
iam: ServiceSpecificCredentialServiceName — Permite especificar, na condição, o nome de um serviço. Por exemplo, você pode usar essa chave de condição para permitir somente a criação de chaves de API para CloudWatch Logs e não para outros serviços.
Controle do uso das chaves da API CloudWatch Logs
A logs:CallWithBearerToken ação controla o uso de uma chave da API CloudWatch Logs. Para evitar que uma identidade use as chaves da API CloudWatch Logs, anexe uma política que negue a logs:CallWithBearerToken ação ao usuário do IAM associado à chave.
Exemplo de política
Impedir que uma identidade gere e use CloudWatch as chaves da API Logs
{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCWLAPIKeys", "Effect": "Deny", "Action": [ "iam:CreateServiceSpecificCredential", "logs:CallWithBearerToken" ], "Resource": "*" } ] }
Atenção
Essa política impedirá a criação de credenciais para todos os AWS serviços que oferecem suporte à criação de credenciais específicas do serviço. Para ter mais informações, consulte Credenciais específicas do serviço para usuários do IAM.
Impedir que uma identidade use CloudWatch as chaves da API Logs
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "logs:CallWithBearerToken", "Resource": "*" } ] }
Permita a criação de chaves de CloudWatch registros somente se elas expirarem em 90 dias
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:CreateServiceSpecificCredential", "Resource": "arn:aws:iam::123456789012:user/username", "Condition": { "StringEquals": { "iam:ServiceSpecificCredentialServiceName": "logs.amazonaws.com" }, "NumericLessThanEquals": { "iam:ServiceSpecificCredentialAgeDays": "90" } } } ] }
Chaves de API rotativas
A rotação regular de suas chaves de API reduz o risco de acesso não autorizado. Recomendamos estabelecer um cronograma de rotação que se alinhe às políticas de segurança da sua organização.
Processo de rotação
Para alternar uma chave de API sem interromper a entrega do registro, siga este procedimento:
-
Crie uma nova credencial (secundária) para o usuário do IAM:
aws iam create-service-specific-credential \ --user-name cloudwatch-logs-hlc-user \ --service-name logs.amazonaws.com \ --credential-age-days 90 (Opcional) Armazene a nova credencial AWS Secrets Manager para recuperação segura e rotação automatizada.
Importe a nova credencial para o portal do seu fornecedor ou atualize a configuração do seu aplicativo para usar a nova chave de API.
-
Defina a credencial original como inativa:
aws iam update-service-specific-credential \ --user-name cloudwatch-logs-hlc-user \ --service-specific-credential-id ACCA1234EXAMPLE1234 \ --status Inactive Verifique se a entrega de registros não é afetada monitorando a
IncomingBytesmétrica do seu grupo de registros em CloudWatch. Para obter mais informações, consulte Monitoramento com CloudWatch métricas.-
Depois de confirmar a entrega bem-sucedida com a nova chave, exclua a credencial anterior:
aws iam delete-service-specific-credential \ --service-specific-credential-id ACCA1234EXAMPLE1234
Monitorando a expiração da chave
Para verificar a data de criação e o status de suas chaves de API existentes, use o list-service-specific-credentials
aws iam list-service-specific-credentials \ --user-name cloudwatch-logs-hlc-user \ --service-name logs.amazonaws.com
A resposta inclui CreateDate e Status para cada credencial. Use essas informações para identificar chaves que estão prestes a expirar ou que estão ativas há mais tempo do que sua política de rotação permite.
Respondendo a uma chave de API comprometida
Se você suspeitar que uma chave de API foi comprometida, execute as seguintes etapas imediatamente:
-
Desative a chave imediatamente para evitar mais uso não autorizado:
aws iam update-service-specific-credential \ --user-name cloudwatch-logs-hlc-user \ --service-specific-credential-id ACCA1234EXAMPLE1234 \ --status Inactive Analise CloudTrail os registros para determinar o escopo do acesso não autorizado. Veja Registrando o uso da chave de API com CloudTrail como habilitar a auditoria do uso da chave de API.
Crie uma chave de substituição seguindo o processo de rotação descrito emProcesso de rotação.
-
Exclua a chave comprometida depois que a substituição estiver em vigor:
aws iam delete-service-specific-credential \ --service-specific-credential-id ACCA1234EXAMPLE1234 Anexe uma política de negação se precisar bloquear imediatamente todo o acesso ao token portador do usuário do IAM durante a investigação:
{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "logs:CallWithBearerToken", "Resource": "*" } }
nota
Para realizar essas ações por meio da API, você deve se autenticar com AWS credenciais e não com uma chave da API CloudWatch Logs.
Você também pode usar as seguintes operações de API do IAM para gerenciar chaves comprometidas:
ResetServiceSpecificCredential— Redefina a chave para gerar uma nova senha sem excluir a credencial. A chave não deve ter expirado.
Práticas recomendadas de segurança para chaves de API
Siga estas práticas recomendadas para proteger suas chaves da API CloudWatch Logs:
Nunca incorpore chaves de API no código-fonte. Não codifique as chaves de API no código do aplicativo nem as comprometa com sistemas de controle de versão. Se uma chave for transferida acidentalmente para um repositório público, o escaneamento AWS automático pode sinalizá-la e você deve girar a chave imediatamente.
Use um gerenciador de segredos. Armazene as chaves de API em AWS Secrets Manageruma solução de gerenciamento de segredos equivalente. Isso permite controle de acesso centralizado, registro de auditoria e rotação automatizada.
Defina uma expiração para todas as chaves. Sempre especifique um
--credential-age-daysvalor ao criar chaves de API. Para impor uma vida útil máxima da chave em sua organização, use a chave de condiçãoiam:ServiceSpecificCredentialAgeDaysdo IAM. Para ver um exemplo, consulte Permita a criação de chaves de CloudWatch registros somente se elas expirarem em 90 dias.Aplique permissões com privilégios mínimos. Defina o escopo das permissões do usuário do IAM somente para os grupos de registros e as ações necessárias. Use a política de CloudWatchLogsAPIKeyacesso gerenciado como ponto de partida e restrinja ainda mais conforme necessário.
Ative o CloudTrail registro. Audite o uso da chave da API ativando eventos de CloudTrail dados para
AWS::Logs::LogGroupAuthorization. Consulte Registrando o uso da chave de API com CloudTrail.Monitore com o IAM Access Analyzer. Use o IAM Access Analyzer para identificar credenciais não utilizadas e políticas excessivamente permissivas associadas aos usuários da chave de API do IAM.
Gire as teclas regularmente. Estabeleça um cronograma de rotação e siga o processo descrito emChaves de API rotativas.
Registrando o uso da chave de API com CloudTrail
Você pode usar AWS CloudTrail para registrar eventos de dados para o uso da chave da API CloudWatch Logs. CloudWatch O Logs emite eventos de AWS::Logs::LogGroupAuthorization dados para CallWithBearerToken chamadas, permitindo que você audite quando e como as chaves de API são usadas para enviar registros.
Para ativar o CloudTrail registro para o uso da chave da API CloudWatch Logs:
nota
O bucket do S3 que você especifica para a trilha deve ter uma política de bucket que permita CloudTrail gravar arquivos de log nele. Para obter mais informações, consulte a política de bucket do Amazon S3 para. CloudTrail
-
Crie uma trilha:
aws cloudtrail create-trail \ --name cloudwatch-logs-api-key-audit \ --s3-bucket-name my-cloudtrail-bucket \ --region us-east-1 -
Configure seletores de eventos avançados para capturar eventos de autorização de grupos de CloudWatch registros de registros:
aws cloudtrail put-event-selectors \ --region us-east-1 \ --trail-name cloudwatch-logs-api-key-audit \ --advanced-event-selectors '[{ "Name": "CloudWatch Logs API key authorization events", "FieldSelectors": [ { "Field": "eventCategory", "Equals": ["Data"] }, { "Field": "resources.type", "Equals": ["AWS::Logs::LogGroupAuthorization"] } ] }]' -
Inicie o registro de trilhas:
aws cloudtrail start-logging \ --name cloudwatch-logs-api-key-audit \ --region us-east-1