IAM策略能否限制为仅针对临时会话(GetSessionToken)?

0

【以下的问题经过翻译处理】 我想创建一个IAM用户,该用户只能用于创建临时会话令牌和在S3中列出存储桶。然后,临时会话还应该能够进行PutObject、GetObject和DeleteObject操作。我不认为使用GetSessionToken是可能的,因为临时会话会像原始帐户一样受到限制。但我不确定是否有一些特殊的主体或其他条件(比如检查会话令牌)可以让这个工作?

这是我的基本策略...

(代码部分省略)

我需要在这里使用AssumeRole吗,这样临时会话就能获得不同的权限吗?

谢谢!

profile picture
EXPERTE
gefragt vor 6 Monaten8 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 你好,

如果我理解正确,您希望仅在请求者使用临时凭证时允许S3操作。

在这种情况下,您可以使用“Null”条件运算符来检查“aws:TokenIssueTime”全局条件键的存在;正如文档所述,“如果用户正在使用临时凭据,则键aws:TokenIssueTime存在并具有值。” 文档中也提供了一个例子,“用户在使用Amazon EC2 API时必须不使用临时凭据(该键必须不存在)。”(这与您的情况相反)。

如果您计划将策略附加到IAM用户,则应该是这样的:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": "my_s3_bucket_arn/*",
            "Condition": {
                "Null": {
                    "aws:TokenIssueTime": "false"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket"
            ],
            "Resource": "my_s3_bucket_arn",
            "Condition": {
                "Null": {
                    "aws:TokenIssueTime": "false"
                }
            }
        }
    ]
}

注意:IAM身份基础策略(附加到IAM用户、组或角色)没有“Principal”元素。

上述策略检查“aws:TokenIssueTime”是否不是空,这意味着实体应该使用临时凭证;在这种情况下,如果用户使用“GetSessionToken”或假定角色获得临时凭证,则可以调用允许的S3 API操作。

我希望这回答了您的问题!

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen