修改活动AWS联合用户策略/联合令牌(AWSJavaSDK)
我使用此API获取联邦令牌,允许用户访问某些AWS资源,如S3存储桶以及存储桶()中的目录 是否有可能撤销其适用政策的某些方面?假设这个用户在初始策略创建时有权访问某个目录,那么我只想撤销部分访问权。是否可以在不重新发出另一个令牌的情况下实现此功能?下面是一个示例策略修改活动AWS联合用户策略/联合令牌(AWSJavaSDK),java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我使用此API获取联邦令牌,允许用户访问某些AWS资源,如S3存储桶以及存储桶()中的目录 是否有可能撤销其适用政策的某些方面?假设这个用户在初始策略创建时有权访问某个目录,那么我只想撤销部分访问权。是否可以在不重新发出另一个令牌的情况下实现此功能?下面是一个示例策略 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:ListBucket"],
{
"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用户的权限,才能更改分配给从联合令牌API获得的临时凭据的权限。该用户不能是根用户,因为无法更改其权限 我可能会使用以下方法来实现:
- 确定所需的政策数量。例如,有四个用户A、B、C和D将使用临时凭据。1小时后,B和C将无法再访问某些资源
- 因此,我们需要两个IAM用户,一个用于A组和B组,另一个用于B组和C组
- 为标识为临时凭据的每组用户创建IAM用户
- 创建Lambda函数
。此函数将生成 使用相应IAM用户凭据的每个用户组的临时凭据GenerateTmpCredentials
- 创建另一个Lambda函数
。此函数将创建新的 需要撤销部分访问权并将其分配给的用户组的策略 对应用户组的IAM用户ChangePolicy
- 现在在步骤功能工作流(状态机)中将其连接起来
{
"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
}
}
}
{
“StartAt”:“GenerateTmpCredentials”,
“国家”:{
“GenerateTempCredentials”:{
“类型”:“任务”,
“资源”:“,
“下一步”:“等待一小时”
},
“等待一小时”:{
“类型”:“等待”,
“秒”:3600,
“下一步”:“更改策略”
},
“变更政策”:{
“类型”:“任务”,
“资源”:“,
“结束”:正确
}
}
}
上述工作流将首先调用GenerateTempCredentials函数,然后等待1小时,然后调用ChangePolicy函数
您可以根据需要使用API网关或任何其他Lambda执行状态机