我想以编程方式更改 Amazon Route 53 上托管区域内的记录集的 CNAME,但我想将用户访问权限限制为仅对该记录集。根据我在文档中看到的内容,IAM 仅允许根据“托管区域”或“更改”指定操作。这意味着我的用户需要对我的所有记录集拥有控制权才能更改单个记录集。
在这种情况下,代码错误造成的后果不仅仅是灾难性的。如果对托管区域名称的检查有误,无论出于何种原因,我都可能错误地将更改应用于多个记录集(想象一下现在指向同一个框/基础设施的许多记录集)。
我的问题不是如何避免代码出错,而是创建一个用户来保护系统免受此类可能性的影响。有一种方法可以限制访问(或一种解决方法),以允许新的 IAM 用户仅访问一个/一组有限的托管区域。
在 IAM 级别,而不是以编程方式。
谢谢。
答案1
一种方法是创建一个新区域,该区域是主域的子域,如stuff.example.com
,并将子域的 NS 委托给该辅助区域。 授予他们该子域区域的 IAM 权限,他们就可以创建子域,如my.stuff.example.com
。 对于您希望成为一等公民的记录,您可以CNAME
my.example.com
,my.stuff.example.com
这将在功能上允许他们管理该子域而无需完全权限。
答案2
在上一次 amazon aws 会议上,我有机会向几位 aws 解决方案架构师提出了这个问题,他们向我确认这是不可能的。IAM 或更好的 Route53 没有这种粒度级别。
答案3
您可以创建进行此更改的 AWS Lambda 函数(仅针对此单个记录)并为该函数制定调用策略。