如何配置 lambda 策略以将跟踪推送到 xray 以实现最低权限?
How can I configure lambda policy for pushing trace to xray to achieve Least Privilege Permissions?
我在我的应用程序中使用 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}
。但是我不明白 GroupName
和 ID
我应该使用什么。
我应该将 lambda
名称作为资源的一部分吗?
Statement:
- Effect: Allow
Action:
- xray:PutTraceSegments
- xray:PutTelemetryRecords
- xray:GetSamplingRules
- xray:GetSamplingTargets
- xray:GetSamplingStatisticSummaries
Resource: "*"
推荐的做法是使用名为 AWSXrayDaemonWriteAccess 的 AWS 托管策略,如 here 所述。使用托管策略的优势在于,如果守护程序将来需要其他权限,AWS 会自动添加它。另一方面,您必须自己管理策略列表。如果您愿意,您仍然可以选择自己管理它。
关于您对使用 * 的主要担忧,截至今天,X-Ray 没有资源可以管理,至少在发送段时没有。有用于管理抽样规则的资源,X-Ray 中的组用于其他用例。但是当 X-Ray SDK 需要发送数据时,它必须检索所有采样规则以决定是否发送数据。使用 PutTraceSegments 将分段发送到 AWS X-Ray 到您的 AWS 账户,而不是任何资源。因此对于这个 API 你必须使用 *。
与 GetSamplingTargets 类似,API 告诉 X-Ray 它使用了多少采样配额以及使用哪个采样规则来决定配额。它还会在接下来的几秒钟内获得一个采样目标。采样配额还与您帐户内跟踪的使用有关,而不是特定资源。
您提到的群组名称和 ID 是用于在控制台中查看您使用 CreateGroup API 或控制台创建的各种群组的数据的资源。您可以使用 GetGroups api 查看您的组,默认组始终存在。
从 lambda 发送数据时,组不会起作用。组服务图由服务根据您发送的数据计算,这些组可通过控制台查看。您可以使用 IAM 策略控制谁可以查看或修改这些组。
我在我的应用程序中使用 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}
。但是我不明白 GroupName
和 ID
我应该使用什么。
我应该将 lambda
名称作为资源的一部分吗?
Statement:
- Effect: Allow
Action:
- xray:PutTraceSegments
- xray:PutTelemetryRecords
- xray:GetSamplingRules
- xray:GetSamplingTargets
- xray:GetSamplingStatisticSummaries
Resource: "*"
推荐的做法是使用名为 AWSXrayDaemonWriteAccess 的 AWS 托管策略,如 here 所述。使用托管策略的优势在于,如果守护程序将来需要其他权限,AWS 会自动添加它。另一方面,您必须自己管理策略列表。如果您愿意,您仍然可以选择自己管理它。
关于您对使用 * 的主要担忧,截至今天,X-Ray 没有资源可以管理,至少在发送段时没有。有用于管理抽样规则的资源,X-Ray 中的组用于其他用例。但是当 X-Ray SDK 需要发送数据时,它必须检索所有采样规则以决定是否发送数据。使用 PutTraceSegments 将分段发送到 AWS X-Ray 到您的 AWS 账户,而不是任何资源。因此对于这个 API 你必须使用 *。 与 GetSamplingTargets 类似,API 告诉 X-Ray 它使用了多少采样配额以及使用哪个采样规则来决定配额。它还会在接下来的几秒钟内获得一个采样目标。采样配额还与您帐户内跟踪的使用有关,而不是特定资源。
您提到的群组名称和 ID 是用于在控制台中查看您使用 CreateGroup API 或控制台创建的各种群组的数据的资源。您可以使用 GetGroups api 查看您的组,默认组始终存在。
从 lambda 发送数据时,组不会起作用。组服务图由服务根据您发送的数据计算,这些组可通过控制台查看。您可以使用 IAM 策略控制谁可以查看或修改这些组。