我想以编程方式更改亚马逊路线53上托pipe区域内的logging集的CNAME,但我想限制用户只能访问该logging集。 对于我在文档中看到的,IAM允许仅基于“托pipe区域”或“更改”来指定操作。 这意味着我的用户需要对我所有的logging集进行更改,以便更改一个logging集。
在这种情况下代码错误的后果不仅仅是灾难性的。 如果托pipe区域名称上的检查是错误的,出于任何原因,我可能会错误地将更改应用于多个logging集(想象许多logging集现在指向相同的框/基础设施)。
我的问题不是关于在代码中犯错误,而是关于创build一个用户来保护系统免受这种可能性。 有一种限制访问(或解决方法)的方法,只允许新的IAM用户访问一个/一组有限的托pipe区域。
在IAM级别,不是以编程方式。
谢谢。
你可以做的一个方法是创build一个新的区域,这是一个主域名的子域名,比如stuff.example.com ,并将子域名NS委托给该次要域名。 将他们的IAM权限授予该子域的区域,他们将能够创build像my.stuff.example.com这样的子域名。 对于希望成为一等公民的logging,您可以将CNAME my.example.com为my.stuff.example.com ,这样可以在function上允许他们pipe理该子域,而不具有完全权限。
我有机会在最后一场亚马逊会议上向几位解决scheme架构师提出这个问题,他们证实我是不可能的。 IAM或更好的Route53没有这个粒度级别。
您可以创build进行此更改的AWS Lambda函数(仅用于此单个logging),并为此函数制定调用策略。