Amazon web services 如何知道谁使用AWS无服务器应用程序启动或停止了EC2实例
我们开发了一个AWS无服务器Lambda应用程序,使用dotnetcore在EC2实例上执行操作,比如启动或停止EC2实例,并与AWS API网关集成 dotnetcore应用程序中的serverless.templateAmazon web services 如何知道谁使用AWS无服务器应用程序启动或停止了EC2实例,amazon-web-services,amazon-s3,amazon-ec2,aws-lambda,aws-sdk,Amazon Web Services,Amazon S3,Amazon Ec2,Aws Lambda,Aws Sdk,我们开发了一个AWS无服务器Lambda应用程序,使用dotnetcore在EC2实例上执行操作,比如启动或停止EC2实例,并与AWS API网关集成 dotnetcore应用程序中的serverless.template "StartInstanceById" : { "Type" : "AWS::Serverless::Function", "Properties": { "Handler": "EC2_Monitoring_Serverless::EC2_Monitorin
"StartInstanceById" : {
"Type" : "AWS::Serverless::Function",
"Properties": {
"Handler": "EC2_Monitoring_Serverless::EC2_Monitoring_Serverless.Functions::StartInstanceById",
"Runtime": "dotnetcore2.1",
"CodeUri": "",
"MemorySize": 256,
"Timeout": 30,
"Role": "arn:aws:iam::2808xxxx1013:role/lamda_start_stop",
"Policies": [ "AWSLambdaBasicExecutionRole" ],
"Events": {
"PutResource": {
"Type": "Api",
"Properties": {
"Path": "/instances",
"Method": "Get"
}
}
}
}
}
当我调用API网关url时,上面的Lambda函数可以很好地启动ec2实例
为了调用这些API,我们创建了Angular 6应用程序,并使用Aws Cognito用户池提供身份验证。
因此,Cognoto用户登录到该网站并获取所有EC2信息
如果用户想要停止/启动EC2实例,用户将单击调用lambda函数的相关api网关url的特定按钮,该按钮工作正常
现在的问题是谁做了那件事。在对stackoverflow和aws社区论坛进行了大量研究以了解谁启动或停止了EC2实例之后,我发现aws CloudTrail记录了用户启动或停止实例时的信息
因此,我创建了一个跟踪,可以在S3存储桶中看到日志。但在我打开的每个日志中,我都看到角色“arn:aws:iam::2808xxx1013:role/lamda_start_stop”被捕获。我知道这是因为Lambda函数。但我想知道是谁真正阻止了这件事
请建议如何捕获用户详细信息 lambda执行角色在
cloudtrail
中打印的原因是,它启动了停止ec2
实例的过程。此处假定角色(而不是实际用户)
要打印实际用户,您需要在lambda上实现日志,它将日志打印到
Cloudwatch
。您可以从这些日志中获取实际用户或任何其他自定义信息。在cloudtrail
中打印lambda执行角色的原因是它启动了停止ec2
实例的过程。此处假定角色(而不是实际用户)
要打印实际用户,您需要在lambda上实现日志,它将日志打印到
Cloudwatch
。您可以从这些日志中获取实际用户或任何其他自定义信息。为什么要使用lambda
启动/停止ec2
?更好的解决方案是在cloudwatch
内部设置。为什么要使用lambda
启动/停止ec2
?更好的解决方案是在cloudwatch
内部设置。