如何从AWS访问中获取对象和操作在javascript中拒绝exception?

任何aws服务都可以抛出AcceeDeniedexception。 logging如下:

somePromise.catch((err) => { console.error(`Failed to store logs into CloudWatch`, err); callback(err); }) 

云观看日志显示:

 { "errorMessage": "Access Denied", "errorType": "AccessDenied", "stackTrace": [ "Request.extractError (/var/task/node_modules/aws-sdk/lib/services/s3.js:577:35)", "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:105:20)", "Request.emit (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:77:10)", "Request.emit (/var/task/node_modules/aws-sdk/lib/request.js:683:14)", "Request.transition (/var/task/node_modules/aws-sdk/lib/request.js:22:10)", "AcceptorStateMachine.runTo (/var/task/node_modules/aws-sdk/lib/state_machine.js:14:12)", "/var/task/node_modules/aws-sdk/lib/state_machine.js:26:10", "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:38:9)", "Request.<anonymous> (/var/task/node_modules/aws-sdk/lib/request.js:685:12)", "Request.callListeners (/var/task/node_modules/aws-sdk/lib/sequential_executor.js:115:18)" ] } 

首先在哪里是一个堆栈跟踪? 🙂

其次是有没有办法去决定什么资源和操作要求? (有几个链接的承诺,不清楚什么是错的)

根据我的经验,您不太可能从JavaScript Stacktrace中获得更多细节。 我find的更有帮助的路线是查看我正在使用的(并somePromise获取somePromise )AWS服务库的访问somePromise

您可以从AWS端获取这些信息的另一种方式是使用CloudTrailCloudWatch Logs 。 您首先需要在您的AWS账户中创build一个CloudTrail 。 接下来,您需要将CloudTrail事件发送到CloudWatch Logs 。

将CloudTrail事件发送到CloudWatch Logs之后,可以使用CloudWatch Logs查询“拒绝访问”和“未经授权的操作”消息。 为此,请转到AWS控制台中的CloudWatch ,然后转到日志部分。 接下来查找您的CloudTrail日志组。 通常情况下,默认日志组被称为CloudTrail/Default 。 一旦进入该日志组,按顶部的search日志button。 这会为此日志组显示日志stream中的所有日志。 然后,您可以input一个查询,只会获取拒绝访问未授权操作事件。 为此,input查询{ ($.errorCode = "*UnauthorizedOperation") || ($.errorCode = "AccessDenied*") } { ($.errorCode = "*UnauthorizedOperation") || ($.errorCode = "AccessDenied*") }

我发现这是繁重的,而且非常耗时,所以我写了一个实用工具来自动发送这些访问拒绝和未经授权的操作消息到Slack 。 你可以在https://github.com/Giftbit/activity-aware-ids-aws/blob/master/infrastructure/cloudformation.yaml查看&#x3002; 如果您已经创build了CloudTrail并将事件发送到CloudWatch Logs,那么它还包含一个有用的CloudFormation模板来支持您。