

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 透過將內嵌政策連接至 IAM 使用者來控制存取金鑰的使用
<a name="access-keys_inline-policy"></a>

建議的最佳實務是，[工作負載使用具有 IAM 角色的臨時憑證](best-practices.md#bp-workloads-use-roles)來存取 AWS。具有存取金鑰的 IAM 使用者應獲指派最低權限存取權，並啟用[多重要素驗證 (MFA)](id_credentials_mfa.md)。如需有關擔任 IAM 角色的詳細資訊，請參閱 [擔任角色的方法](id_roles_manage-assume.md)。

不過，如果您要建立服務自動化或其他短期使用案例的概念驗證測試，並選擇使用具有存取金鑰的 IAM 使用者來執行工作負載，建議您[使用政策條件來進一步限制對其 IAM 使用者憑證的存取](best-practices.md#use-policy-conditions)。

在這種情況下，您可以建立有時限的政策，使憑證在指定的時間後過期；或者，如果您是從安全網路執行工作負載，則可以使用 IP 限制政策。

在這兩種使用案例中，您都可以使用連接至具有存取金鑰之 IAM 使用者的內嵌政策。

**為 IAM 使用者設定有時限的政策**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**使用者**，然後選取短期使用案例的使用者。如果您尚未建立使用者，現在可以[建立使用者](getting-started-workloads.md)。

1. 在使用者**詳細資訊**頁面上，選擇**許可**索引標籤。

1. 選擇**新增許可**，然後選取**建立內嵌政策**。

1. 在**政策編輯器**區段中，選取 **JSON** 以顯示 JSON 編輯器。

1. 在 JSON 編輯器中，輸入下列政策，將 `aws:CurrentTime` 時間戳記的值取代為所需的過期日期和時間：

------
#### [ JSON ]

****  

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

------

   此政策使用 `Deny` 效果來限制在指定日期後對所有資源執行的所有動作。`DateGreaterThan` 條件會將目前時間與您設定的時間戳記進行比較。

1. 選取 **下一步** 以繼續前往 **檢閱和建立** 頁面。在**政策**詳細資訊中，在**政策名稱**下輸入政策的名稱，然後選擇**建立政策**。

建立政策後，其會顯示在使用者的**許可**索引標籤上。當目前時間大於或等於政策中指定的時間時，使用者將無法再存取 AWS 資源。請務必通知工作負載開發人員您為這些存取金鑰指定的過期日期。

**為 IAM 使用者設定 IP 限制政策**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在導覽窗格中，選擇**使用者**，然後選取將從安全網路執行工作負載的使用者。如果您尚未建立使用者，現在可以[建立使用者](getting-started-workloads.md)。

1. 在使用者**詳細資訊**頁面上，選擇**許可**索引標籤。

1. 選擇**新增許可**，然後選取**建立內嵌政策**。

1. 在**政策編輯器**區段中，選取 **JSON** 以顯示 JSON 編輯器。

1. 將下列 IAM 政策複製到 JSON 編輯器，並根據您的需求更改公有 IPv4 或 IPv6 位址或範圍。您可以使用 [https://checkip.amazonaws.com](https://checkip.amazonaws.com/) 來確定目前的公有 IP 位址。可以使用斜線表示法指定個別 IP 位址或 IP 位址範圍。如需詳細資訊，請參閱[aws:SourceIp](reference_policies_condition-keys.md#condition-keys-sourceip)。
**注意**  
不得透過 VPN 或代理伺服器來混淆 IP 位址。

------
#### [ JSON ]

****  

   ```
   {
     "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"
           }
         }
       }
     ]
   }
   ```

------

   在此政策範例中，除非請求源自於網路 (以 CIDR 表示法指定) "203.0.113.0/24"、"2001:DB8:1234:5678::/64" 或特定 IP 位址 "203.0.114.1"，否則此政策會拒絕使用套用了此政策的 IAM 使用者的存取金鑰 

1. 選取 **下一步** 以繼續前往 **檢閱和建立** 頁面。在**政策**詳細資訊中，在**政策名稱**下輸入政策的名稱，然後選擇**建立政策**。

建立政策後，其會顯示在使用者的**許可**索引標籤上。

您也可以將此政策作為服務控制政策 (SCP) 套用到 中的多個 AWS 帳戶 AWS Organizations，我們建議您使用其他條件，`aws:PrincipalArn`讓此政策陳述式僅適用於受此 SCP 約束 AWS 的帳戶內的 IAM 使用者。下列政策包含該更新：

------
#### [ JSON ]

****  

```
{
  "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/*"
        }
      }
    }
  ]
}
```

------