

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

# 停用臨時安全性憑證的許可
<a name="id_credentials_temp_control-access_disable-perms"></a>

暫時安全憑證在過期之前持續有效。這些憑證在指定的持續時間內有效，從 900 秒 (15 分鐘) 至最長 129,600 秒 (36 小時)。預設工作階段持續時間為 43,200 秒 (12 小時)。您可以撤銷這些憑證，但也必須變更 IAM 使用者或角色的許可，以停止使用遭洩漏的憑證進行惡意帳戶活動。每次使用指派給臨時安全登入資料的許可來提出 AWS 請求時，都會進行評估。從登入資料中移除所有許可後，使用它們的 AWS 請求會失敗。

政策更新可能需要幾分鐘的時間才會生效。對於 IAM 角色工作階段，您可以撤銷角色的臨時安全憑證，以強制所有擔任該角色的使用者重新驗證並請求新的憑證。如需詳細資訊，請參閱[撤銷角色的臨時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html)。

您無法變更 的許可 AWS 帳戶根使用者。同樣地，以根使用者身分登入時，您無法更改呼叫 `GetFederationToken` 或 `GetSessionToken` 建立的暫時安全憑證許可。因此，我們建議您不要以根使用者身分呼叫 `GetFederationToken` 或 `GetSessionToken`。

如需有關如何變更 IAM 使用者的許可的程序，請參閱[變更 IAM 使用者的許可](id_users_change-permissions.md)。

如需有關如何變更 IAM 角色的許可的程序，請參閱[更新角色的許可](id_roles_update-role-permissions.md)。

**重要**  
您無法在 IAM 中編輯從 IAM Identity Center 許可集建立的角色。您必須撤銷 IAM Identity Center 中使用者的作用中許可集工作階段。如需詳細資訊，請參閱 *IAM Identity Center User Guide* 中的 [Revoke active IAM role sessions created by permission sets](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#revoke-user-permissions)。

**Topics**
+ [拒絕存取與角色關聯的所有 IAM 角色工作階段](#deny-access-to-all-sessions)
+ [拒絕存取特定 IAM 角色工作階段](#deny-access-to-specific-session)
+ [拒絕存取具有條件內容索引鍵的臨時安全憑證工作階段](#deny-access-to-specific-session-condition-key)
+ [使用資源型政策拒絕存取特定主體](#deny-access-with-resource-based)

## 拒絕存取與角色關聯的所有 IAM 角色工作階段
<a name="deny-access-to-all-sessions"></a>

此程序拒絕與角色關聯的**所有** IAM 角色工作階段的許可。當您擔心被以下身分進行可疑存取時，請使用此方法：


+ 使用跨帳戶存取權的其他帳戶中的主體
+ 具有存取您帳戶中 AWS 資源許可的外部使用者身分
+ 在行動或 Web 應用程式中，已透過 OIDC 提供者驗證的使用者

若要變更或移除透過呼叫 `AssumeRole`、`AssumeRoleWithSAML`、`AssumeRoleWithWebIdentity`、`GetFederationToken` 或 `GetSessionToken` 而取得的指派給臨時安全憑證的許可，您可以編輯或刪除為角色定義許可的身分型政策。

**重要**  
如果存在允許主體存取的以資源為基礎的政策，您還必須為該資源新增明確拒絕。如需詳細資訊，請參閱 [使用資源型政策拒絕存取特定主體](#deny-access-with-resource-based)。

**若要拒絕存取與角色關聯的**所有** IAM 角色工作階段**

1. 登入 AWS 管理主控台 並開啟 IAM 主控台。

1. 在導覽窗格中，選擇**角色**。

1. 選擇要編輯的角色名稱。您可以使用搜尋方塊來篩選清單。

1. 選擇**許可**索引標籤。

1. 選取要編輯的相關政策。在編輯客戶管理政策之前，檢閱**連接的實體**索引標籤，以避免中斷對可能已連接相同政策的其他身分的存取。

1. 選擇 **JSON** 標籤並更新政策以拒絕所有資源和動作。
**注意**  
這些許可與 AWS 受管政策 [AWSDenyAll](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSDenyAll.html) 中的許可相同。您可以將此 AWS 受管政策連接至您想要拒絕所有存取的任何 IAM 使用者或角色。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DenyAll",
               "Effect": "Deny",
               "Action": [
                   "*"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. 在 **Review** (檢視) 頁面上，查看政策 **Summary** (摘要)，然後選擇 **Save changes** (儲存政策) 以儲存您的工作。

在更新政策時，所做出的變更將影響與該角色關聯的所有暫時安全憑證的許可，包括在更改該角色的許可政策之前發行的憑證。

更新政策之後，您可以[撤銷角色的暫時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html)以立即撤銷角色所發行憑證的所有許可。

## 拒絕存取特定 IAM 角色工作階段
<a name="deny-access-to-specific-session"></a>

當您使用全部拒絕政策更新 IAM 角色或完全刪除該角色時，有權存取該角色的所有使用者都會中斷。您可以拒絕存取，而不會影響與該角色關聯的所有其他工作階段的許可。

您可以使用[條件內容索引鍵](#deny-access-to-specific-session-condition-key)或[以資源為基礎的政策](#deny-access-with-resource-based)拒絕 `Principal` 的許可。

**提示**  
您可以使用 AWS CloudTrail 日誌來尋找聯合身分使用者的 ARNs。如需詳細資訊，請參閱[如何使用 輕鬆識別您的聯合身分使用者 AWS CloudTrail](https://aws.amazon.com/blogs/security/how-to-easily-identify-your-federated-users-by-using-aws-cloudtrail/)。

## 拒絕存取具有條件內容索引鍵的臨時安全憑證工作階段
<a name="deny-access-to-specific-session-condition-key"></a>

您可以在想要拒絕存取特定臨時安全憑證工作階段的情況下使用身分型政策中的條件內容索引鍵，而不影響建立憑證的 IAM 使用者或角色的許可。對於 IAM 角色，在更新政策之後，您還可以[撤銷角色的臨時安全憑證](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_revoke-sessions.html)工作階段，以立即撤銷所有發行的憑證。

如需條件內容索引鍵的詳細資訊，請參閱 [AWS 全域條件內容索引鍵](reference_policies_condition-keys.md)。

### aws:PrincipalArn
<a name="deny-access-condition-key-principalarn"></a>

您可以在身分型政策中使用條件內容索引鍵 [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn)，依 Amazon Resource Name (ARN) 拒絕存取特定主體。您可以透過在政策的條件元素中指定暫時安全登入資料與之關聯的 AWS STS IAM 使用者、角色或聯合身分使用者工作階段的 ARN 來執行此操作。

**若要依 ARN 拒絕存取特定主體**

1. 在 IAM 主控台導覽窗格中，選擇**使用者**或**角色**。

1. 選擇要編輯的 IAM 使用者或角色的名稱。您可以使用搜尋方塊來篩選清單。

1. 選擇**許可**索引標籤。

1. 選取要編輯的相關政策。在編輯客戶管理政策之前，檢閱**連接的實體**索引標籤，以避免中斷對可能已連接相同政策的其他身分的存取。

1. 選擇 **JSON** 標籤並為主體 ARN 新增拒絕陳述式，如下列範例所示。

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Deny",
         "Action": "*",
         "Resource": "*",
         "Condition": {
           "ArnEquals": {
             "aws:PrincipalArn": [
               "arn:aws:iam::{{222222222222}}:role/{{ROLENAME}}",
               "arn:aws:iam::{{222222222222}}:user/{{USERNAME}}",
               "arn:aws:iam::{{222222222222}}:federated-user/{{USERNAME}}" 
             ]
           }
         }
       }
     ]
   }
   ```

------

1. 在 **Review** (檢視) 頁面上，查看政策 **Summary** (摘要)，然後選擇 **Save changes** (儲存政策) 以儲存您的工作。

### aws:SourceIdentity
<a name="deny-access-condition-key-sourceidentity"></a>

您可以在身分型政策中使用條件內容索引鍵 [aws:SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity)，拒絕存取與 IAM 角色工作階段關聯的特定來源身分。只要角色工作階段是在委託人使用任何 AWS STS `assume-role`\* CLI 命令或 AWS STS `AssumeRole`\* API 操作擔任角色時，透過設定`SourceIdentity`請求參數發出，就會套用。您可以透過在政策的 `Condition` 元素中指定臨時安全憑證關聯的來源身分來執行此操作。

與內容索引鍵 [sts:RoleSessionName](reference_policies_iam-condition-keys.md#ck_rolesessionname) 不同，在設定來源身分之後，無法變更值。`aws:SourceIdentity` 索引鍵會出現在由角色所採取的所有動作的請求內容中。當您使用工作階段憑證來擔任另一個角色時，來源身分仍然存在於後續角色工作階段。從另一個角色取得及擔任角色稱為[角色鏈結](id_roles.md#iam-term-role-chaining)。

下列政策顯示如何使用條件內容索引鍵 `aws:SourceIdentity` 拒絕存取暫時安全憑證工作階段的範例。如果您指定與角色工作階段關聯的來源身分，則它會拒絕含有具名來源身分的角色工作階段，而不會影響建立憑證的角色的許可。在此範例中，發出角色工作階段時，主體設定的來源身分為 `nikki_wolf@example.com`。具有來源身分 `nikki_wolf@example.com` 的角色工作階段發出的任何請求都會遭拒，因為來源身分包含在政策條件中，且政策效果設定為 `Deny`。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:SourceIdentity": [
            "{{nikki_wolf@example.com}}",
            "{{<source identity value>}}"
          ]
        }
      }
    }
  ]
}
```

------

### aws:userid
<a name="deny-access-condition-key-userid"></a>

您可以在身分型政策中使用條件內容索引鍵 [aws:userid](reference_policies_condition-keys.md#condition-keys-userid) 拒絕存取與 IAM 使用者或角色關聯的所有或特定臨時安全憑證工作階段。您可以透過在政策的 `Condition`元素中指定暫時安全登入資料相關聯的 IAM AWS STS 使用者、角色或聯合身分使用者工作階段的唯一識別符 (ID) 來執行此操作。

下列政策顯示如何使用條件內容索引鍵 `aws:userid` 拒絕存取暫時安全憑證工作階段的範例。
+ `AIDAXUSER1` 代表 IAM 使用者的唯一 ID。指定 IAM 使用者的唯一 ID 作為內容索引鍵 `aws:userid` 的值將拒絕存取 IAM 使用者。其中包括透過呼叫 `GetSessionToken` API 建立的任何臨時安全憑證工作階段。
+ `AROAXROLE1:*` 代表與 IAM 角色關聯的所有工作階段的唯一 ID。將 IAM 角色的唯一 ID 和 caller-specified-role-session-name 部分中的萬用字元 (\*) 指定為內容索引鍵 `aws:userid` 的值將拒絕與該角色關聯的所有工作階段。
+ `AROAXROLE2:<caller-specified-role-session-name>` 代表擔任角色工作階段的唯一 ID。在擔任角色唯一 ID 的 caller-specified-role-session-name 部分中，如果使用 StringLike 條件運算子，您可以指定角色工作階段名稱或萬用字元。如果您指定角色工作階段名稱，則它會拒絕具名角色工作階段，而不會影響建立憑證的角色的許可。如果您為角色工作階段名稱指定萬用字元，則它會拒絕與角色關聯的所有工作階段。
**注意**  
呼叫者指定的角色工作階段名稱是擔任角色工作階段的唯一識別碼的一部分，可能會在角色鏈結期間變更。當一個角色擔任另一個角色時，會發生角色鏈結。當委託人使用 API 操作擔任角色時，會使用 AWS STS `AssumeRole` `RoleSessionName`請求參數設定角色工作階段名稱。
+ `account-id:<federated-user-caller-specified-name>` 代表 AWS STS 聯合身分使用者工作階段的唯一 ID。IAM 使用者透過呼叫 `GetFederationToken` API 來建立此工作階段。為 AWS STS 聯合身分使用者工作階段指定唯一 ID 會拒絕具名聯合身分工作階段，而不會影響建立憑證的 IAM 使用者的許可。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "aws:userId": [
            "{{AIDAXUSER1}}",
            "{{AROAXROLE1}}:{{*}}",
            "{{AROAXROLE2}}:<{{caller-specified-role-session-name}}>",
            "{{123456789012}}:<{{federated-user-caller-specified-name}}>"
          ]
        }
      }
    }
  ]
}
```

------

如需主體索引鍵值的特定範例，請參閱 [主體索引鍵值](reference_policies_variables.md#principaltable)。如需有關 IAM 唯一識別碼以及如何取得它們的資訊，請參閱[唯一識別碼](reference_identifiers.md#identifiers-unique-ids)。

## 使用資源型政策拒絕存取特定主體
<a name="deny-access-with-resource-based"></a>

若要使用資源型政策限制對特定主體的存取，您可以使用 `Condition` 元素中的條件內容索引鍵 [aws:PrincipalArn](reference_policies_condition-keys.md#condition-keys-principalarn) 或 [aws:SourceIdentity](reference_policies_condition-keys.md#condition-keys-sourceidentity)。資源型政策是連接至資源的許可政策，可控制誰可以存取資源，以及他們可以對其執行哪些動作。

當您使用`aws:PrincipalARN`內容金鑰時，請在政策的條件元素中指定與暫時安全登入資料相關聯的 IAM AWS STS 使用者、角色或聯合身分使用者工作階段的 ARN。下列範例政策示範如何在資源型政策中使用 `aws:PrincipalARN` 內容索引鍵：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Principal": "*",
    "Effect": "Deny",
    "Action": "{{s3:*}}",
    "Resource": "arn:aws:{{s3}}:::{{amzn-s3-demo-bucket}}",
    "Condition": {
      "ArnEquals": {
        "aws:PrincipalArn": [
          "arn:aws:iam::{{222222222222}}:role/{{ROLENAME}}",
          "arn:aws:iam::{{222222222222}}:user/{{USERNAME}}",
          "arn:aws:sts::{{222222222222}}:federated-user/{{USERNAME}}"
        ]
      }
    }
  }
}
```

------

當您使用 `aws:SourceIdentity` 內容索引鍵時，在政策的 `Condition` 元素中指定與角色的臨時安全憑證關聯的來源身分值。只要角色工作階段是在委託人使用任何 AWS STS `assume-role`\* CLI 命令或 AWS STS `AssumeRole`\* API 操作擔任角色時，透過設定`SourceIdentity`請求參數發出，就會套用。下列範例示範如何在資源型政策中使用 `aws:SourceIdentity` 內容索引鍵：

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Principal": "*",
    "Effect": "Deny",
    "Action": "{{s3:*}}",
    "Resource": "arn:aws:{{s3}}:::{{amzn-s3-demo-bucket}}",
    "Condition": {
      "StringLike": {
        "aws:SourceIdentity": [
          "{{nikki_wolf@example.com}}",
          "{{<source identity value>}}"
        ]
      }
    }
  }
}
```

------

如果您僅更新主體的身分型政策，其仍然可以執行資源型政策中允許的動作，除非在身分型政策中明確拒絕這些動作。

**若要在資源型政策中拒絕存取特定主體**

1. 請參閱 [AWS 使用 IAM 的 服務](reference_aws-services-that-work-with-iam.md) 以查看服務是否支援以資源為基礎的政策。

1. 登入 AWS 管理主控台 並開啟 服務的 主控台。每個服務在主控台中都有不同的位置用於附加政策。

1. 編輯資源型政策。新增拒絕政策陳述式以指定憑證的識別資訊：

   1. 在 `Principal` 元素中，輸入萬用字元 (\*)。在 `Condition` 元素中，主體將受到限制。

   1. 在 `Effect` 元素中，輸入 "Deny"。

   1. 在 `Action` 中，輸入服務命名空間和要拒絕的動作名稱。若要拒絕所有動作，請使用萬用字元 (\*)。例如：`"s3:*"`。

   1. 在 `Resource` 元素中，輸入目標資源的 ARN。例如：`"arn:aws:s3:::amzn-s3-demo-bucket"`。

   1. 在 `Condition` 元素中，指定 `aws:PrincipalARN` 或 `aws:SourceIdentity` 內容索引鍵。

      如果您使用 `aws:PrincipalARN` 內容索引鍵，請輸入要拒絕其存取之主體的 ARN。

      如果您使用 `aws:SourceIdentity` 內容索引鍵，請在角色工作階段中輸入要拒絕存取的來源身分值。

1. 儲存您的工作。