Application Auto Scaling 对目标资源API调用的权限验证 - Application Auto Scaling

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Application Auto Scaling 对目标资源API调用的权限验证

向 Application Auto Scaling API 操作发出授权请求要求API调用者具有访问目标服务中和中的 AWS 资源的权限 CloudWatch。在继续处理请求 CloudWatch 之前,Application Auto Scaling 会验证与目标服务关联的请求的权限。为此,我们发出一系列调用以验证目标资源的IAM权限。返回响应时,Application Auto Scaling 会读取该响应。如果IAM权限不允许执行给定操作,则 Application Auto Scaling 会使请求失败,并向用户返回一个错误,其中包含有关缺少权限的信息。这可确保用户想要部署的扩缩配置按预期工作,并且在请求失败时返回有用的错误。

作为其工作原理的示例,以下信息提供了有关应用程序 Auto Scaling 如何使用 Aurora 和 CloudWatch执行权限验证的详细信息。

当用户RegisterScalableTargetAPI对 Aurora 数据库集群调用时,Application Auto Scaling 会执行以下所有检查,以验证用户是否具有所需的权限(粗体)。

  • RDS: c reateDBInstance:为了确定用户是否拥有此权限,我们向CreateDBInstanceAPI操作发送了请求,尝试在用户指定的 Aurora 数据库集群中创建参数无效(空实例 ID)的数据库实例。对于授权用户,会在审核请求后API返回InvalidParameterValue错误代码响应。但是,对于未经授权的用户,我们会收到 AccessDenied 错误,使 Application Auto Scaling 请求失败并显示 ValidationException 错误,向用户列出缺少的权限。

  • rds: d eleteDBInstance:我们向操作发送了一个空的实例 ID。DeleteDBInstance API对于授权用户,此请求会导致 InvalidParameterValue 错误。对于未经授权的用户,它会导致 AccessDenied 并向用户发送验证异常(与第一个要点中描述的处理相同)。

  • rds AddTagsToResource:: 由于AddTagsToResourceAPI操作需要亚马逊资源名称 (ARN),因此必须使用无效的账户 ID (12345) 和虚拟实例 ID () 指定 “虚拟” 资源来构造 (non-existing-db)。ARN arn:aws:rds:us-east-1:12345:db:non-existing-db对于授权用户,此请求会导致 InvalidParameterValue 错误。对于未经授权的用户,它会导致 AccessDenied 并向用户发送验证异常。

  • rds: d escribeDBCluster:我们描述了为自动缩放注册的资源的集群名称。对于授权用户,我们将得到一个有效的描述结果。对于未经授权的用户,它会导致 AccessDenied 并向用户发送验证异常。

  • RDS escribeDBInstance:。我们DescribeDBInstanceAPI使用db-cluster-id过滤器来调用,过滤用户为注册可扩展目标而提供的集群名称。对于授权用户,我们可以描述数据库集群中的所有数据库实例。对于未经授权的用户,此调用会导致 AccessDenied 并向用户发送验证异常。

  • cloudwatchPutMetricAlarm:: 我们在没有任何参数PutMetricAlarmAPI的情况下调用。由于缺少警报名称,对于授权用户,请求会导致 ValidationError。对于未经授权的用户,它会导致 AccessDenied 并向用户发送验证异常。

  • cloudwatchDescribeAlarms:: 我们在最大记录数值设置为 1 的情况下调用。DescribeAlarms API对于授权用户,我们预期响应中有一个警报的信息。对于未经授权的用户,此调用会导致 AccessDenied 并向用户发送验证异常。

  • cloudwatchDeleteAlarms:: 与PutMetricAlarm上述类似,我们不提供任何参数可供DeleteAlarms请求。由于请求中缺少警报名称,对于授权用户,此调用将失败并显示 ValidationError。对于未经授权的用户,它会导致 AccessDenied 并向用户发送验证异常。

只要发生任何一个验证异常,它就会被记录下来。您可以使用采取措施手动识别哪些呼叫未通过验证 AWS CloudTrail。有关更多信息,请参阅 用户指南。AWS CloudTrail

注意

如果您使用收到有关应用程序 Auto Scaling 事件的警报 CloudTrail,则默认情况下,这些警报将包括用于验证用户权限的应用程序 Auto Scaling 调用。要过滤掉这些提示,请使用 invokedBy 字段,它们包含用于这些验证检查的 application-autoscaling.amazonaws.com