gpt4 book ai didi

java - 修改 Activity 的 AWS 联合用户策略/联合 token (AWSJavaSDK)

转载 作者:行者123 更新时间:2023-12-02 10:24:12 24 4
gpt4 key购买 nike

我使用此 API 来获取联合 token ,这些 token 将允许用户访问某些 AWS 资源,例如 S3 存储桶以及该存储桶内的目录 ( AWSJavaSDK Get Federated Token )。

是否可以撤销其所应用政策的某些方面?假设该用户在初始策略创建时有权访问某个目录,那么我只想撤销部分访问权限。是否可以在不重新发行另一个 token 的情况下实现此功能?以下是政策示例。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::productionapp"]
},
{
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:PutObject",
"s3:DeleteObject"
],
"Resource": ["arn:aws:s3:::productionapp/*"]
}
]
}

还有其他方法可以实现我的目标吗?

最佳答案

只有通过更改创建该临时凭证的 IAM 用户的权限,才能更改分配给从联合 token API 获取的临时凭证的权限。该用户不能是 root 用户,因为他们的权限无法更改。

我可能会使用Step Functions实现它:

  • 确定所需政策的数量。例如,有四个用户 A、B、C 和 D 将使用临时凭证。 1小时后,B和C将无法再访问某些资源。
  • 因此,我们需要两个 IAM 用户,一个用于 A 组和 B 组,一个用于 B 组和 C 组
  • 为为临时凭证标识的每组用户创建 IAM 用户
  • 创建 Lambda 函数GenerateTmpCredentials。该函数将生成使用相应的 IAM 用户凭证为每个用户组提供临时凭证
  • 创建另一个 Lambda 函数 ChangePolicy。该函数将创建新的需要撤销部分访问权限并将其分配给的用户组的策略对应用户组的IAM用户
  • 现在将其连接到步骤函数工作流程(状态机)

请参阅上述工作流程的步骤函数状态机模板

{
"StartAt": "GenerateTmpCredentials",
"States": {
"GenerateTmpCredentials": {
"Type": "Task",
"Resource": "<put arn of the GenerateTmpCredentials lambda>",
"Next": "WaitOneHour"
},
"WaitOneHour": {
"Type": "Wait",
"Seconds": 3600,
"Next": "ChangePolicy"
},
"ChangePolicy": {
"Type": "Task",
"Resource": "<put arn of the ChangePolicy lambda>",
"End": true
}
}
}

上述工作流程将首先调用GenerateTmpCredentials函数,然后等待1小时,然后调用ChangePolicy策略函数。

您可以根据您的要求使用 API Gateway 或任何其他 Lambda 执行状态机。

关于java - 修改 Activity 的 AWS 联合用户策略/联合 token (AWSJavaSDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54099586/

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