修改活动的AWS联合用户策略/联合令牌(AWSJavaSDK)

时间:2019-01-08 20:58:12

标签: java amazon-web-services amazon-s3

我正在使用此API来获取联合令牌,这些令牌将允许用户访问某些AWS资源,例如S3存储桶以及该存储桶(AWSJavaSDK Get Federated 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/*"]
    }
  ]
}

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

1 个答案:

答案 0 :(得分:1)

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

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

  • 标识所需的策略数。例如,有四个用户A,B,C和D将使用临时凭据。 1小时后,B和C将不再有权访问某些资源。
  • 所以我们需要两个IAM用户,一个用于A和B组,另一个用于B&C组
  • 为标识为临时凭据的每组用户创建IAM用户
  • 创建Lambda函数15.0。该函数将生成 每个用户组使用其相应的IAM用户凭据的临时凭据
  • 创建另一个Lambda函数GenerateTmpCredentials。此功能将创建新的 需要撤销部分访问权限并将其分配给的用户组的策略 相应用户组的IAM用户
  • 现在在步骤功能工作流程(状态机)中将其连接起来

有关上述工作流程,请参见步骤功能状态机模板

ChangePolicy

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

您可以根据需要使用API​​网关或任何其他Lambda执行状态机。

相关问题