gpt4 book ai didi

javascript - 如何在 JavaScript 中从 AWS 访问被拒绝异常中获取对象和操作?

转载 作者:搜寻专家 更新时间:2023-11-01 00:05:09 26 4
gpt4 key购买 nike

任何 aws 服务都可以抛出 AcceeDenied 异常。这是这样记录的:

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)"
]
}

首先堆栈跟踪在哪里? :)

其次,有没有办法确定请求了哪些资源和操作? (有几个链式的promise,不清楚哪里错了)

最佳答案

根据我的经验,您不太可能从 JavaScript Stacktrace 中获得更多细节。我发现更有用的方法是查看我正在使用的库(并从中获取 somePromise)正在访问哪些 AWS 服务。

另一种可能收集此类信息的方法是从 AWS 端使用 CloudTrailCloudWatch Logs。您首先需要 create a CloudTrail in your AWS Account .接下来你需要 send CloudTrail events to CloudWatch Logs .

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

我发现这很繁琐,而且非常耗时,所以我写了一个 utility to send these Access Denied and Unauthorized Operation messages to Slack对我来说是自动的。您可以在https://github.com/Giftbit/activity-aware-ids-aws/blob/master/infrastructure/cloudformation.yaml查看.它还包括一个有用的 CloudFormation 模板来为您提供支持,前提是您已经创建了 CloudTrail 并将事件发送到 CloudWatch Logs。

关于javascript - 如何在 JavaScript 中从 AWS 访问被拒绝异常中获取对象和操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46155548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com