

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

# 撤銷 IAM 角色臨時安全憑證
<a name="id_roles_use_revoke-sessions"></a>

**警告**  
如果您遵循此頁面上的步驟，則擔任角色所建立目前工作階段的所有使用者都會被拒絕存取所有 AWS 動作和資源。這會導致使用者遺失未儲存的工作。

當您允許使用者 AWS 管理主控台 以較長的工作階段持續時間 （例如 12 小時） 存取 時，其暫時登入資料不會快速過期。如果使用者不慎將他們的憑證向未經授權的第三方公開，該方在工作階段的持續時間均有權存取。不過，您可以立即撤銷所有在某個時間點前授予該角色的憑證許可，如果需要的話。該角色在指定時間點前發出的所有暫時性憑證變成無效。這會強迫所有使用者重新驗證和請求新的憑證。

 

**注意**  
您無法撤銷[服務連結角色](id_roles.md#iam-term-service-linked-role)**的工作階段。

當您使用此主題中的程序撤銷角色的許可時， 會將新的內嵌政策 AWS 連接到拒絕所有動作的所有許可的角色。如果使用者在您撤銷許可的時間點「之前」**擔任該角色，則它只會包含套用限制條件的情況。如果使用者在撤銷許可「之後」**擔任該角色，則拒絕政策不會套用至該使用者。

如需拒絕存取的詳細資訊，請參閱 [停用臨時安全性憑證的許可](id_credentials_temp_control-access_disable-perms.md)。

**重要**  
此拒絕政策適用於指定角色的所有使用者，而不只是具主控台工作階段較長持續時間的角色。

## 從角色撤銷工作階段許可的最低許可
<a name="revoke-session-permissions"></a>

若要從角色成功地撤銷工作階段許可，您必須擁有該角色的 `PutRolePolicy` 許可。這可讓您將 `AWSRevokeOlderSessions` 內嵌政策連接至該角色。

## 撤銷工作階段許可
<a name="revoke-session"></a>

您可以從角色撤銷工作階段許可，以拒絕擔任該角色之任何使用者的所有許可。

**注意**  
您無法在 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)。

**立即拒絕對任何目前使用者的角色憑證的所有許可**

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

1. 在導覽窗格中，選擇**角色**，然後選擇您想要撤銷其許可的角色名稱 (不是核取方塊)。

1. 在所選取角色的 **Summary (摘要)** 頁面上，選擇 **Revoke sessions (工作階段)** 標籤。

1. 在 **Revoke sessions (撤銷工作階段)** 標籤上，選擇 **Revoke active sessions (撤銷作用中的工作階段)**。

1. AWS 會要求您確認動作。選取**我確認我將撤銷此角色的所有作用中工作階段。**核取方塊，然後在對話方塊中選擇**撤銷作用中工作階段**。

   然後，IAM 將名為 `AWSRevokeOlderSessions` 的政策連接至角色。在您選擇**撤銷作用中工作階段**後，政策會拒絕過去以及未來約 30 秒內擔任該角色的使用者的所有存取權。此未來時間選擇考量政策的傳播延遲，以便處理在更新的政策在指定區域中生效之前取得或續約的新工作階段。在您選擇「撤銷作用中的工作階段」後，擔任該角色超過大約 30 秒的任何使用者都不會受影響。若要了解變更不一定會立即顯示的原因，請參閱 [我所做的變更不一定都會立刻生效](troubleshoot.md#troubleshoot_general_eventual-consistency)。

**注意**  
如果您稍後再次選擇**撤銷工作階段**，則會重新整理政策中的日期和時間戳記，而且它會再次拒絕在新指定的時間之前擔任該角色之任何使用者的許可。

以這種方式呼叫工作階段的有效使用者必須獲得臨時憑證，新工作階段才能繼續運作。會 AWS CLI 快取登入資料，直到過期為止。若要強制 CLI 刪除並重新整理已失效的快取憑證，請執行以下命令之一：

**Linux、macOS 或 Unix**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```

## 在指定時間之前撤銷工作階段許可
<a name="revoke-session-policy"></a>

 您也可以使用 AWS CLI 或 SDK 隨時撤銷您選擇的工作階段許可，在政策的條件元素中指定`aws:TokenIssueTime`金鑰的值。

在 `aws:TokenIssueTime` 的值早於指定的日期和時間時，此政策會拒絕所有許可。`aws:TokenIssueTime` 的值對應於臨時安全性憑證的確切建立時間。該`aws:TokenIssueTime`值僅存在於使用臨時安全登入資料簽署的 AWS 請求內容中，因此政策中的拒絕陳述式不會影響使用 IAM 使用者的長期登入資料簽署的請求。

此政策也可連接至角色。在這種情況下，該政策只會影響由該角色在指定日期和時間之前建立的臨時安全性憑證。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": {
    "Effect": "Deny",
    "Action": "*",
    "Resource": "*",
    "Condition": {
      "DateLessThan": {"aws:TokenIssueTime": "2014-05-07T23:47:00Z"}
    }
  }
}
```

------

以這種方式呼叫工作階段的有效使用者必須獲得臨時憑證，新工作階段才能繼續運作。會 AWS CLI 快取登入資料，直到過期為止。若要強制 CLI 刪除並重新整理已失效的快取憑證，請執行以下命令之一：

**Linux、macOS 或 Unix**

```
$ rm -r ~/.aws/cli/cache
```

**Windows**

```
C:\> del /s /q %UserProfile%\.aws\cli\cache
```