Elastic Load Balancing
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

负载均衡器的身份验证和访问控制

AWS 使用安全凭证来识别您的身份并向您授予对 AWS 资源的访问权。利用 AWS Identity and Access Management (IAM) 的功能,可在不共享您的安全凭证的情况下允许其他用户、服务和应用程序完全使用或有限制地使用您的 AWS 资源。

默认情况下,IAM 用户没有创建、查看或修改 AWS 资源的权限。要允许某个 IAM 用户访问资源 (如负载均衡器) 和执行任务,您必须创建一个 IAM 策略 (该策略向该 IAM 用户授予使用其所需的特定资源和 API 操作的权限),然后将该策略附加到该 IAM 用户或该 IAM 所属的组。当您将策略与一个用户或一组用户关联时,它会授权或拒绝用户使用指定资源执行指定任务。

例如,您可以使用 IAM 在您的 AWS 账户下创建用户和组 (IAM 用户可以是人员、系统或应用程序)。然后,使用 IAM 策略向用户和组授予对指定资源执行特定操作的权限。

使用 IAM 策略授予权限

当您将策略与一个用户或一组用户关联时,它会授权或拒绝用户使用指定资源执行指定任务。

IAM 策略是包含一个或多个语句的 JSON 文档。每个语句的结构如下:

Copy
{ "Version": "2012-10-17", "Statement":[{ "Effect": "effect", "Action": "action", "Resource": "resource-arn", "Condition": { "condition": { "key":"value" } } }] }
  • Effect - 效果可以是 AllowDeny。默认情况下 IAM 用户没有使用资源和 API 操作的权限,因此,所有请求均会被拒绝。显式允许将覆盖默认规则。显式拒绝将覆盖任何允许。

  • Action - 操作是对其授予或拒绝权限的特定 API 操作。有关指定 action 的更多信息,请参阅 Elastic Load Balancing 的操作

  • Resource - 受操作影响的资源。对于许多 Elastic Load Balancing API 操作,通过在此语句中指定 Amazon 资源名称 (ARN),可以限制对特定负载均衡器授予或拒绝的权限。否则,您可以使用 * 通配符指定所有负载均衡器。有关更多信息,请参阅 Elastic Load Balancing 的资源级权限

  • Condition - 您可以选择性地使用条件来控制策略的生效时间。有关更多信息,请参阅 Elastic Load Balancing 的条件密钥

有关更多信息,请参阅什么是 IAM?。有关创建和管理用户和组的信息,请参阅 IAM 用户和组

Elastic Load Balancing 的操作

在 IAM 策略语句的 Action 元素中,您可以指定 Elastic Load Balancing 所提供的任意 API 操作。如以下示例所示,您必须使用小写形式的字符串 elasticloadbalancing: 作为操作名称的前缀:

"Action": "elasticloadbalancing:DescribeLoadBalancers"

要在单个语句中指定多项操作,请使用方括号将操作括起来并以逗号分隔,如下所示:

"Action": ["elasticloadbalancing:action1","elasticloadbalancing:action2"]

您也可以使用 * 通配符指定多项操作。以下示例指定以 Describe 开头的所有 Elastic Load Balancing API 操作名称:

"Action": "elasticloadbalancing:Describe*"

要指定 Elastic Load Balancing 的所有 API 操作,请按下例所示使用通配符 *:

"Action": "elasticloadbalancing:*"

有关 Elastic Load Balancing API 操作的完整列表,请参阅以下文档:

Elastic Load Balancing 的资源级权限

资源级权限 指的是能够指定允许用户对哪些资源执行操作的能力。Elastic Load Balancing 部分支持资源级权限。

重要

Elastic Load Balancing 有两个 API 集:一个用于 应用程序负载均衡器 和网络负载均衡器 (API 版本 2015-12-01),另一个用于 传统负载均衡器 (API 版本 2012-06-01)。目前,2015-12-01 版 API 不支持资源级权限。2012-06-01 版 API 支持资源级权限;不过,并非每个 API 操作都支持资源级权限。

对于支持资源级权限的 API 操作,您可以通过操作控制用户可使用的负载均衡器。要在策略语句中指定负载均衡器,您必须使用其 Amazon 资源名称 (ARN)。指定 ARN 时,您可以在路径中使用 * 通配符;例如,在不希望指定确切负载均衡器名称时可以这样做。

ARN 语法

传统负载均衡器的 ARN 具有以下语法:

arn:aws-cn:elasticloadbalancing:region:my-account-id:loadbalancer/load-balancer-name
区域

负载均衡器的区域。有关 Elastic Load Balancing 支持的区域的更多信息,请参阅 Amazon Web Services 一般参考 中的区域和终端节点

account-id

您的 AWS 账户 ID,不包含连字符 (例如,0123456789012)。

负载均衡器名称

您的负载均衡器的名称。

ARN 示例

下面是传统负载均衡器的示例 ARN:

"Resource": "arn:aws-cn:elasticloadbalancing:us-west-2:123456789012:loadbalancer/my-load-balancer"

不支持资源级权限的 API 操作

不能使用以下 API 操作指定特定负载均衡器的 ARN:

  • 适用于 API 版本 2015-12-01 的所有 API 操作

  • 适用于 API 版本 2012-06-01 的以下 API 操作:

    • DescribeInstanceHealth

    • DescribeLoadBalancerAttributes

    • DescribeLoadBalancerPolicyTypes

    • DescribeLoadBalancers

    • DescribeLoadBalancerPolicies

    • DescribeTags

对于不支持资源级权限的 API 操作,必须指定以下资源语句:

"Resource": "*"

Elastic Load Balancing 的条件密钥

在 IAM 策略语句中,您可以通过选项来指定控制策略生效时间的条件。每个条件都包含一个或多个密钥值对。AWS 定义了以下键,您可以使用这些键来指定允许 IAM 用户和组使用负载均衡器的条件。

提示

键名区分大小写。

  • aws:CurrentTime - 与日期/时间条件一起使用,以基于请求时间对访问进行限制 (请参阅日期条件)。

  • aws:EpochTime - 用于日期/时间条件,指定日期新纪元或 UNIX 时间 (请参阅日期条件)。

  • aws:MultiFactorAuthPresent - 用于通过多重验证 (MFA) 设备检查发出 API 请求的 IAM 用户是否通过了身份验证。

  • aws:MultiFactorAuthAge - 用于检查经 MFA 验证的、用于发出请求的安全凭证是在多久之前颁发的 (以秒为单位)。与其他键不同,如果未使用 MFA,那么此键就不会出现 (请参阅条件键的存在数字条件将多重验证 (MFA) 设备与 AWS 结合使用)。

  • aws:SecureTransport - 用于检查是否使用 SSL 发出了请求 (请参阅布尔值条件)。

  • aws:SourceIp - 用于检查请求者的 IP 地址 (请参阅 IP 地址)。请注意,如果您使用 aws:SourceIp,并且请求来自 EC2 实例,则会评估实例的公有 IP 地址。

  • aws:Referer - 用于检查发出 HTTP 请求的用户。

  • aws:UserAgent - 与字符串条件一起使用,用于检查发出请求的客户端应用程序 (请参阅字符串条件)。

  • aws:userid - 用于检查请求者的用户 ID (请参阅字符串条件)。

  • aws:username - 用于在可用时检查请求者的用户名 (请参阅字符串条件)。

在您决定了如何控制对您的负载均衡器的访问之后,请打开 IAM 控制台并按照管理 IAM 策略中的说明为 Elastic Load Balancing 创建 IAM 策略。有关更多信息,请参阅测试 IAM 策略