Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何知道谁使用AWS无服务器应用程序启动或停止了EC2实例_Amazon Web Services_Amazon S3_Amazon Ec2_Aws Lambda_Aws Sdk - Fatal编程技术网

Amazon web services 如何知道谁使用AWS无服务器应用程序启动或停止了EC2实例

Amazon 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

我们开发了一个AWS无服务器Lambda应用程序,使用dotnetcore在EC2实例上执行操作,比如启动或停止EC2实例,并与AWS API网关集成

dotnetcore应用程序中的serverless.template

"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
内部设置。