Quero saber informações sobre o usuário que invocou minha função do AWS Lambda, como os detalhes de userIdentity, sourceIPAddress ou userAgent.
Resolução
Para visualizar informações sobre o usuário que invocou sua função do Lambda, você deve ativar o registro em log de eventos de dados no AWS CloudTrail. Por padrão, o CloudTrail não registra chamadas de API do Lambda Invoke e o Histórico de eventos do CloudTrail não as registra.
Para obter mais informações sobre preços para eventos de dados no CloudTrail, consulte a definição de preço do AWS CloudTrail.
Para ativar o registro em log de eventos de dados, crie uma nova trilha ou atualize uma trilha e defina a configuração de eventos de dados. Em Tipo de evento de dados, em Origem, escolha Lambda e, em Modelo de seletor de log, escolha Registrar todos os eventos.
Os logs de exemplo a seguir mostram detalhes de uma chamada da API Invoke:
{
"eventVersion": "1.06",
"userIdentity": {
"type": "IAMUser",
"principalId": "AIDAIOR74VCJ2M3NB8U4M",
"arn": "arn:aws:iam::999999999999:user/kyle",
"accountId": "999999999999",
"accessKeyId": "AK2IU7DKE7U2KOI8CCBP",
"userName": "kyle"
},
"eventTime": "2017-11-29T08:47:45Z",
"eventSource": "lambda.amazonaws.com",
"eventName": "Invoke",
"awsRegion": "us-west-2",
"sourceIPAddress": "[IP_ADDRESS]",
"userAgent": "aws-cli/1.11.129 Python/2.7.8 Linux/3.1.56-0.6.839hdh3.x86_64 botocore/1.5.92",
"requestParameters": {
"invocationType": "RequestResponse",
"functionName": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:prod",
"clientContext": "ew0KICAiY29udGV4dGtleSIgOiAiY29udGV4dHZhbHVlIg0KfQ==",
"qualifier": "prod"
},
"responseElements": null,
"additionalEventData": {
"functionVersion": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction:4"
},
"requestID": "eaccb900-8f45-11e7-b60d-179cdf501g92",
"eventID": "0e205f1d-3929-4803-b887-0d2aca122148",
"readOnly": false,
"resources": [{
"accountId": "999999999999",
"type": "AWS::Lambda::Function",
"ARN": "arn:aws:lambda:us-west-2:999999999999:function:BlogFunction"
}],
"eventType": "AwsApiCall",
"managementEvent": false,
"recipientAccountId": "999999999999",
"sharedEventID": "6159da59-ad2f-4e04-9669-cf0a6b6b4827"
}
Para encontrar informações sobre o usuário que invocou a função do Lambda no exemplo anterior, consulte os seguintes campos:
- O userIdentity fornece informações sobre o usuário que fez a solicitação.
- O sourceIPAddress fornece o endereço IP em que o usuário fez a solicitação.
Observação: esse campo permite endereços IPv4 e IPv6.
- O userAgent fornece o agente que o usuário usou para fazer a solicitação.
Informações relacionadas
Gain visibility into the execution of your AWS Lambda functions with AWS CloudTrail (Obter visibilidade da execução das funções do AWS Lambda com o AWS CloudTrail)
Registrar chamadas à API do AWS Lambda usando o AWS CloudTrail
Understanding the CloudTrail Lake event schema (Sobre o esquema de eventos do CloudTrail Lake)
O CloudTrail registra conteúdos para eventos de gerenciamento, dados e atividades de rede