限制某些用户的访问权限,使其只能在 Amazon SES 上操作,而不能在其他服务上操作

Restrict access for some users to operate only on Amazon SES and not other services

如何限制某些用户仅在 SES 上操作而不在我的 AWS 账户上操作其他服务?

示例:

{
    "Version": "2021-12-16",
    "Statement": [
        {
            "Sid": "AllowsSES",
            "Effect": "Allow",
            "Action": "ses:*",
            "Resource": "*"
        },
        {
            "Sid": "DenyAllOthers", 
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*"
        }
    ]
}

AWS 中的 IAM 用户默认没有访问权限。只有在通过 Allow 政策明确授予权限时,他们才能访问。

这可以通过 IAM 策略实现,但某些服务也可以直接授予权限,例如 Amazon S3 存储桶策略和 Amazon SQS 访问策略。

一般来说,最好避免使用 Deny 策略,因为它们会覆盖 Allow 策略。最好简单地限制通过 Allow 策略授予的内容。然而,有时 Deny 是必需的。例如,管理员可能被授予对所有 S3 存储桶的权限,但明确拒绝访问包含敏感数据的存储桶。

对于您的情况,只需使用您的第一个 (Allow) 策略授予他们访问 Amazon SES 的权限就足够了。默认情况下,他们将无法访问任何其他服务。

对于您的情况,您只需要以下政策

{
"Version": "2021-12-16",
"Statement": [
    {
        "Sid": "AllowsSES",
        "Effect": "Allow",
        "Action": "ses:*",
        "Resource": "arn:aws:ses:(regiondetail):(AWSAccountNumber):identity/(AWSIAMName)"
    }
]
}

原因是您可能制定了一个有点矛盾的政策。 您正在向所有人提供访问权限并拒绝访问权限。因此,实时应用的策略可能无法像您期望的那样正常工作。

在绝对必要时也使用拒绝策略,并酌情使用它来拒绝对特定用户或资源的访问。此外,当您像上面那样授予特定访问权限时,它只会授予那些用户访问权限。

包括拒绝,您可以使用以下:-

{
"Version": "2021-12-16",
"Statement": [
    {
        "Sid": "AllowsSES",
        "Effect": "Allow",
        "Action": "ses:*",
        "Resource": "*"
    },
    {
        "Sid": "DenySelected", 
        "Effect": "Deny",
        "Action": "*",
        "Resource": "arn:aws:ses:(regiondetail):(AWSAccountNumber):identity/(AWSIAMName)"
    }
]
}