通过将内联策略附加到 IAM 用户,从而控制访问密钥的使用 - Amazon Identity and Access Management
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

通过将内联策略附加到 IAM 用户,从而控制访问密钥的使用

建议最好让工作负载使用带有 IAM 角色的临时凭证来访问 Amazon。应为拥有访问密钥的 IAM 用户分配最低访问权限,并启用多重身份验证 (MFA)。有关代入 IAM 角色的更多信息,请参阅担任角色的方法

但是,如果您正在为服务自动化或其他短期用例创建概念验证测试,并选择使用具有访问密钥的 IAM 用户来运行工作负载,建议使用策略条件来进一步限制对其 IAM 用户凭证的访问权限

在此情况下,您可以创建有时限的策略,使凭证在指定时间后过期,或者如果您是从安全网络运行工作负载,可以使用 IP 限制策略。

对于这两个用例,可使用附加到拥有访问密钥的 IAM 用户的内联策略。

为 IAM 用户配置有时限的策略
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择用户,然后为短期用例选择用户。如果尚未创建用户,您可以立即创建用户

  3. 在角色的详细信息页面上,选择权限选项卡。

  4. 选择添加权限,然后选择创建内联策略

  5. 策略编辑器部分,选择 JSON 显示 JSON 编辑器。

  6. 在 JSON 编辑器中输入以下策略,将 aws:CurrentTime 时间戳的值替换为所需的到期日期和时间:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "DateGreaterThan": { "aws:CurrentTime": "2025-03-01T00:12:00Z" } } } ] }

    该策略使用 Deny 效果来限制在指定日期后对所有资源执行所有操作。DateGreaterThan 条件比较当前的时间与您设置的时间戳。

  7. 选择下一步,进入查看并创建页面。在策略详细信息的策略名称下,输入策略的名称,然后选择创建策略

创建策略后,策略将显示在用户的权限选项卡上。当前时间大于或等于该策略中指定的时间时,用户就无法再访问 Amazon 资源。请务必让工作负载开发人员了解您为这些访问密钥指定的到期日期。

为 IAM 用户配置 IP 限制策略
  1. 登录 Amazon Web Services Management Console,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择用户,然后再选择将从安全网络运行工作负载的用户。如果尚未创建用户,您可以立即创建用户

  3. 在角色的详细信息页面上,选择权限选项卡。

  4. 选择添加权限,然后选择创建内联策略

  5. 策略编辑器部分,选择 JSON 显示 JSON 编辑器。

  6. 将以下 IAM 策略复制到 JSON 编辑器,并根据需要更改公有 IPv4 或 IPv6 地址或范围。可使用 https://checkip.amazonaws.com 确定当前的公有 IP 地址。您可以使用斜杠标记指定单个 IP 地址或 IP 地址范围。有关更多信息,请参阅 aws:SourceIp

    注意

    不得通过 VPN 或代理服务器对 IP 地址进行模糊处理。

    { "Version": "2012-10-17", "Statement": [ { "Sid":"IpRestrictionIAMPolicyForIAMUser", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678::/64", "203.0.114.1" ] }, "BoolIfExists": { "aws:ViaAWSService": "false" } } } ] }

    此策略示例拒绝使用应用该策略的 IAM 用户访问密钥,除非请求来自(以 CIDR 表示法指定的)网络“203.0.113.0/24”、“2001:DB8:1234:5678::/64”或特定 IP 地址“203.0.114.1”

  7. 选择下一步,进入查看并创建页面。在策略详细信息的策略名称下,输入策略的名称,然后选择创建策略

创建策略后,策略将显示在用户的权限选项卡上。

您还可以将该策略作为服务控制策略 (SCP) 应用于 Amazon Organizations 中的多个 Amazon 账户,我们建议使用附加条件 aws:PrincipalArn 让该策略声明仅适用于受此 SCP 约束的 Amazon 账户中的 IAM 用户。以下策略包括更新:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "IpRestrictionServiceControlPolicyForIAMUsers", "Effect": "Deny", "Action": "*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "203.0.113.0/24", "2001:DB8:1234:5678::/64", "203.0.114.1" ] }, "BoolIfExists": { "aws:ViaAWSService": "false" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:user/*" } } } ] }