如何配置lambda策略以将跟踪推送到xray以实现最低特权权限



我在应用程序中使用AWS labmda和xray。以下是我的lambda角色的策略。我不喜欢的是Resources部分,它是*?如何定义资源以实现Least Privilege Permissions

我已经通读了这份文件:https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awsx-ray.html.它说在资源中使用arn:${Partition}:xray:${Region}:${Account}:group/${GroupName}/${Id}。但是我不明白GroupNameID应该用什么。

我应该将lambda名称作为资源的一部分吗?

Statement:
- Effect: Allow
Action:
- xray:PutTraceSegments
- xray:PutTelemetryRecords
- xray:GetSamplingRules
- xray:GetSamplingTargets
- xray:GetSamplingStatisticSummaries
Resource: "*"

建议使用名为AWSXrayDaemonWriteAccess的AWS托管策略,如下所述。使用托管策略的优点是,如果守护进程将来需要另一个权限,那么它将由AWS自动添加。另一方面,您必须自己管理策略列表。如果你愿意,你仍然可以选择自己管理它。

关于您使用*的主要问题,截至目前,X-Ray没有可管理的资源,至少在发送片段时没有。有用于管理采样规则的资源,X射线中的组用于其他用例。但是,当X-Ray SDK必须发送数据时,它必须检索所有采样规则才能决定是否发送数据。分段使用PutTraceSegments发送到您的AWS帐户,而不是任何资源。因此,对于这个API,您必须使用*。同样,对于GetSamplingTargets,API会告诉X射线它使用了多少采样配额,以及使用了哪个采样规则来决定配额。它还获得了接下来几秒钟的采样目标。采样配额还与帐户中跟踪的使用情况有关,而不是与特定资源有关。

您提到的Group Name和ID是用于在控制台中查看使用CreateGroup API或控制台创建的各种组的数据的资源。您可以使用GetGroupsAPI查看您的组,并且默认组始终存在。

从lambda发送数据时,组不起作用。组服务图由服务根据您发送的数据计算,这些组可通过控制台查看。您可以控制谁可以使用IAM策略查看或修改这些组。

最新更新