我正在阅读Default VPC和Default Subnets-Amazon Virtual Private Cloud关于AWS创建默认VPC的内容。在默认的VPC组件下,它表示"亚马逊代表客户创建上述VPC组件。IAM策略不适用于这些操作,因为客户不执行这些操作"。
我的问题是,我们需要为AWS服务创建IAM角色,以调用另一个AWS服务,例如EC2调用S3,但为什么当AWS代表我们构建资源时,IAM策略不起作用?
提前感谢您的任何意见。
在您的Amazon EC2连接到Amazon S3的示例中,实际上是您的程序代码在Amazon EC2实例上运行,该实例正在调用Amazon S3。对S3的API调用需要通过IAM凭据进行身份验证和授权。
在某些情况下,AWS服务使用服务链接角色代表您调用另一个AWS服务,例如当Amazon EC2 Auto Scaling启动新的Amazon EC2实例时。这需要为AmazonEC2自动缩放提供服务链接角色,该角色允许一个服务调用另一个服务。
在创建默认VPC的情况下,这是AWS在向客户提供帐户之前所做的事情。这样,客户就可以启动资源(例如AmazonEC2实例(,而无需首先创建专有网络。这是标准帐户设置的一部分。
AWS似乎也公开了CreateDefaultVpc()
命令来重新创建默认VPC。该文档指出,进行此API调用的权限足以创建资源,而不需要对它可能生成的每个底层调用都拥有权限。我猜它使用的权限通常与服务链接角色相关,只是VPC操作没有服务链接角色。如果您担心有人创建这些资源(例如Internet网关(,您可以拒绝用户调用CreateDefaultVpc()
的权限,这将阻止他们使用该命令。
将我们的AWS帐户视为"root",AWS本质上有一个"超级root"帐户,他们可以触发您的帐户的初始创建。这一切都发生在您的帐户最初设置和配置时,因为作为产品所有者的一部分,他们拥有"超级根"级别的访问权限。
我们受到IAM的限制(我认为AWS以不同的方式受到限制(,以允许我们使用最低权限原则