允许IAM仅访问Route 53上的特定子域

lfk*_*lfk 2 dns amazon-web-services amazon-iam amazon-route53

我需要给一个IAM用户Route 53访问权限来创建一个子域名下的记录data.example.com.例如,用户应该能够为其创建CNAME server1.data.example.com.同时,我不希望用户能够添加/修改/删除除以外的任何记录*.data.example.com.

是否有可能编写一份这样做的政策?

Bra*_*ler 5

您可以按托管区域限制,但不能通过子域限制.如果您要限制特定的子域,则Route53托管区域应按子域拆分.您可以为子域创建托管区域:

例如,如果你想要一个名为subdomain,test你可以这样做,因为这里的答案总结得很好:

为test.example.com创建托管区域.

请注意Route 53为其分配新托管区域的4个名称服务器.

返回主区域,使用记录类型NS创建一个主机名为"test"的新资源记录,并在下面的框中输入Route 53分配的4个名称服务器.

上述代理控制该子域到这个新的托管区域,该区域具有我们可以在IAM策略中使用的唯一区域ID

然后,您可以构建一个限制对此区域的操作的IAM策略:

{
   "Statement":[
      {
         "Action":[
            "route53:*"
         ],
         "Effect":"Allow",
         "Resource":[
            "arn:aws:route53:::hostedzone/<The new zone ID>"
         ]
      },
      {
         "Action":[
            "route53:ListHostedZones"
         ],
         "Effect":"Allow",
         "Resource":[
            "*"
         ]
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

从这里你可以调整这个政策,以适应您希望用户能够利用在该区域的行动.

  • 感觉就像您[借用我的话](/sf/answers/2504969141/)都没有归属。我毫不犹豫地提起它,直到我注意到您还输入了我在原作中输入的拼写错误:*“ Route 53为它分配了新的托管区域*”不应包含“ it”一词。那是我的错...而且也出现在这里。请编辑您的问题,以提供适当的来源归因,并避免将来再这样做。另请参阅https://meta.stackexchange.com/q/160071/211183。 (2认同)