gpt4 book ai didi

amazon-web-services - AWS : How to attach a policy to an IAM user that grants him the privilege to create a verified identity and not access root identities?

转载 作者:行者123 更新时间:2023-12-05 04:36:13 24 4
gpt4 key购买 nike

根帐户中,我有一个经过验证的域身份,我用它来为交易电子邮件创建一个电子邮件身份
enter image description here

现在,我创建了一个新的 IAM 帐户

我想为这个 IAM 帐户 附加一个策略,允许它使用那个已验证的创建一个已验证的电子邮件身份根帐户中的域身份

并且他必须无法列出或使用根帐户中的已验证电子邮件身份

我应该为此使用内联策略(我知道应该避免并留作最后的手段)还是正常权限配置
enter image description here

如果是这样,我应该如何编写或选择这样的策略?


编辑 1:当我尝试使用 IAM 帐户 创建电子邮件时,只是想看看 AWS 会说什么,通知中是这样写的:

You do not have sufficient access to perform this action.

User: arn:aws:iam::122443365328:user/iam-user-name is notauthorized to perform: ses:CreateEmailIdentity on resource:

arn:aws:ses:us-region:122443365328:identity/test@dmain_name.com because noidentity-based policy allows the ses:CreateEmailIdentity action

当我在内联策略创建仪表板中搜索 CreateEmailIdentity 时,找不到它:

enter image description here


编辑 2:

当我选择 SES-v2 作为服务时,我实际上已经找到了它:

enter image description here

我已授予 IAM 用户以下权限:

enter image description here

在资源部分:
enter image description here

我添加了验证域名的ARN:

enter image description here

这是结果:

enter image description here

但是,当我尝试使用 IAM 帐户 创建一个电子邮件身份 时,我仍然得到这个:

You do not have sufficient access to perform this action. User:arn:aws:iam::12xxxxxx5328:user/iam-user-name is not authorized toperform: ses:CreateEmailIdentity on resource:arn:aws:ses:us-west-2:122443365328:identity/dev@domain_name.combecause no identity-based policy allows the ses:CreateEmailIdentityaction

我在这里不明白的是未被授权对我正在尝试创建的资源(即新电子邮件)执行 ses:CreateEmailIdentity 的含义。

我怎样才能获得授权在一个仍然不存在的电子邮件身份上执行此操作。


编辑 3:
即使在使用 root 用户 创建电子邮件并授予 IAM 用户 使用此策略使用该电子邮件发送电子邮件的特权之后:

enter image description here

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "stmt1643366831422",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::12xxxxxx328:user/iam-user-name"
},
"Action": [
"ses:SendEmail",
"ses:SendRawEmail",
"ses:SendTemplatedEmail",
"ses:SendBulkTemplatedEmail"
],
"Resource": "arn:aws:ses:us-west-2:12xxxxxxxx28:identity/test2@domain_name.com",
"Condition": {}
}
]
}

当我在后端发送电子邮件时,记录的内容如下:

🚀 ~ file: emailServices.js ~ line 297 ~ .then ~ error AccessDenied:User arn:aws:iam::12xxxxx5328:user/iam-user-name' is not authorized to perform ses:SendEmail' on resource`arn:aws:ses:us-west-2:1xxxxx28:identity/domain_name.com'

然后我授权 iam 用户在 Domain Identity 上使用相同的策略发送电子邮件,但应用于 Domain Identity

现在,可以使用 IAM 用户凭证发送电子邮件了。
问题是他可以使用所有已验证的电子邮件身份 发送电子邮件。
但是,我希望他仅使用专门为该 IAM 用户 创建的相应电子邮件身份 即可。


注意 1:
我知道我不应该使用根账户,而应该只使用 IAM 账户。

最佳答案

为域中的任何电子邮件创建电子邮件身份的 IAM 策略

您的 IAM 策略需要类似于以下内容:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "CreateEmailIdentity",
"Effect": "Allow",
"Action": "ses:CreateEmailIdentity",
"Resource": "arn:aws:ses:us-west-2:12xxxxxxxx28:identity/*@domain_name.com"
}
]
}

请注意,我使用的是 *@domain_name.com 而不是 domain_name.com。这将允许您为 test@domain.comtest2@domain.com 等创建电子邮件身份,因为“*”是通配符。如果您想将资源限制为特定的电子邮件身份,您还可以将 "arn:aws:ses:us-west-2:12xxxxxxxx28:identity/test@domain_name.com" 指定为资源。

修复发送邮件问题

如果出现以下情况,我可以重现该问题:

  1. domain_name.com 电子邮件身份已正确创建和验证
  2. 我使用 sesv2 CreateEmailIdentity 创建了 test@domain_name.com 电子邮件身份,但实际上并没有通过单击 AWS 发送的验证电子邮件中的确认链接来验证它。控制台会说电子邮件身份已验证(因为整个域的电子邮件身份 domain_name.com 已验证),但这是不正确的。 aws sesv2 list-email-identities 给出了所有电子邮件身份的实际验证状态。

在验证域身份 (domain_name.com) 但未验证特定电子邮件身份 (test@domain_name.com) 的情况下,AWS 会尝试使用 domain_name.com 电子邮件身份发送电子邮件,这被您的 IAM 策略阻止。如果您尝试强制它使用 test@domain_name.com 电子邮件身份(SES SendEmail 中的 SourceArn,SES V2 SendEmail 中的 FromEmailAddressIdentityArn ),它将为您提供正确的“电子邮件身份是未验证'错误。

如果 test@domain_name.com 电子邮件身份确实经过验证,则它可以正常工作。

旁注:

  1. 正确的术语是 IAM 用户,而不是 IAM 帐户。
  2. >

    Should I use an inline policy for this (which I know should be avoided and left as a last resort) or normal permission configuration?

我不知道您所说的“正常权限配置”是什么意思,但是您可以将三种类型的策略附加到 IAM 用户:

  • AWS 托管政策:这些政策几乎不可能用于任何细化政策,也不适用于您的要求。
  • 客户托管政策:您可以创建自己的自定义托管政策,并将其用于多个 IAM 用户、角色和组。可用于满足您的要求。
  • 内联策略:您可以创建仅适用于特定 IAM 用户、角色或组的内联策略。可用于满足您的要求。
  1. >

    How can I be authorized to do that on an email identity that still doesn't exist.

ARN 格式完全取决于要验证的电子邮件或域,这就是为什么即使资源事先不存在,您也可以将其添加到 IAM 策略中。

关于amazon-web-services - AWS : How to attach a policy to an IAM user that grants him the privilege to create a verified identity and not access root identities?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70890811/

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