我正在阅读Default VPC and Default Subnets - Amazon Virtual Private Cloud上有关AWS创建默认VPC的信息。在默认VPC组件下,它声明“ Amazon代表客户创建了上述VPC组件。IAM策略不适用于这些操作,因为客户不执行这些操作”。
我的问题是,我们需要为一个AWS服务创建一个IAM角色,以调用另一个AWS服务(例如,调用S3的EC2),但是当AWS代表我们构建资源时,为什么IAM策略不起作用?
首先感谢您的任何输入。
答案 0 :(得分:1)
将我们的AWS帐户视为“根”,并且AWS本质上具有一个“超级根”帐户,它们可以用来触发您的帐户的初始创建。当您的帐户最初被设置和配置时,所有这些都会发生,因为作为产品所有者,他们具有“超级根”访问级别。
IAM限制了我们(我认为AWS受不同的限制),以允许我们使用Principle of Least Privilege
答案 1 :(得分:1)
在您的Amazon EC2连接到Amazon S3的示例中,它实际上是您的程序代码在正在调用Amazon S3的Amazon EC2实例上运行。对S3的API调用需要通过IAM凭据进行身份验证和授权。
在某些情况下, AWS服务使用与服务相关的角色代表您调用另一个AWS服务 (例如,当Amazon EC2 Auto Scaling启动新的Amazon EC2时)实例。这要求提供Service-Linked Role for Amazon EC2 Auto Scaling,该权限授予一项服务调用另一项服务的权限。
在创建默认VPC 的情况下,这是AWS在向客户提供账户之前所做的。这样,客户可以启动资源(例如Amazon EC2实例)而无需先创建VPC。这是标准帐户设置的一部分。
看来,AWS还公开了CreateDefaultVpc()
命令来重新创建默认VPC。该文档说,进行此API调用的权限足以创建资源,而无需对其可能生成的每个基础调用都具有权限。我猜它正在使用通常与服务链接的角色相关联的权限,除了VPC操作没有服务链接的角色。如果您担心创建这些资源的人员(例如Internet网关),则可以拒绝允许用户调用CreateDefaultVpc()
的权限,这将阻止他们使用该命令。