停用臨時安全性憑證的許可 - AWS Identity and Access Management

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

停用臨時安全性憑證的許可

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

政策更新可能需要幾分鐘的時間才會生效。撤銷角色的暫時安全憑證以強制所有擔任該角色的使用者重新驗證並請求新的憑證。

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

重要

您無法編輯從 IAM 身分中心權限集建立的 IAM 中的角色。您必須在 IAM 身分中撤銷使用者的作用中權限集工作階段。如需詳細資訊,請參閱 IAM 身分中心使用者指南中的撤銷由權限集建立的作用中 IAM 角色工作階段

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

當您擔心被以下身分進行可疑存取時,請使用此方法:

  • 使用跨帳戶存取權的其他帳戶中的主體

  • 具有存取帳戶 AWS 資源之權限的外部使用者身分識別

  • 已在 OIDC 提供商的移動或 Web 應用程序中進行身份驗證的用戶

此程序拒絕向所有有權擔任角色的使用者授予許可。

若要變更或移除為呼叫 AssumeRoleAssumeRoleWithSAMLAssumeRoleWithWebIdentityGetFederationTokenGetSessionToken 而取得的暫時安全憑證分配的許可,您可以編輯或刪除為角色定義許可的許可政策。

重要

如果存在允許主體存取的以資源為基礎的政策,您還必須為該資源新增明確拒絕。如需詳細資訊,請參閱 使用以資源為基礎的政策拒絕工作階段使用者

  1. 登入 AWS Management Console 並開啟 IAM 主控台。

  2. 在導覽窗格中,選擇要編輯的角色名稱。您可以使用搜尋方塊來篩選清單。

  3. 選取相關政策。

  4. 選擇許可索引標籤標籤。

  5. 選擇 JSON 標籤並更新政策以拒絕所有資源和動作。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "*", "Resource": "*" } ] }
  6. Review (檢視) 頁面上,查看政策 Summary (摘要),然後選擇 Save changes (儲存政策) 以儲存您的工作。

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

拒絕存取特定工作階段

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

您可以使用條件內容索引鍵以資源為基礎的政策拒絕 Principal 的許可。

提示

您可以使用記錄檔尋找聯合身分使用 AWS CloudTrail 者的 ARN。如需詳細資訊,請參閱如何使用輕鬆識別聯合身分使用 AWS CloudTrail者

使用條件內容索引鍵拒絕使用者工作階段

您可以在想要拒絕存取特定暫時安全憑證工作階段的情況下使用條件內容索引鍵,而不影響建立憑證的 IAM 使用者或角色的許可。

如需條件內容索引鍵的詳細資訊,請參閱 AWS 全域條件內容索引鍵

注意

如果存在允許主體存取的以資源為基礎的政策,在完成這些步驟後,您還必須在以資源為基礎的政策上新增明確拒絕陳述式。

更新政策之後,您可以撤銷角色的暫時安全憑證以立即撤銷所有發行的憑證。

AWS:PrincipalArn

您可以使用條件內容索引鍵 AWS:PrincipalArn 拒絕存取特定的主體 ARN。您可以透過在政策的「條件」元素中指定暫時安全憑證關聯的 IAM 使用者、角色或聯合身分使用者的唯一識別符 (ID),來執行此操作。

  1. 在 IAM 主控台導覽窗格中,選擇要編輯的角色名稱。您可以使用搜尋方塊來篩選清單。

  2. 選取相關政策。

  3. 選擇許可索引標籤標籤。

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

    { "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:sts::222222222222:federated-user/USERNAME" ] } } } ] }
  5. Review (檢視) 頁面上,查看政策 Summary (摘要),然後選擇 Save changes (儲存政策) 以儲存您的工作。

aws:userid

您可以使用條件內容索引鍵 aws:userid 拒絕存取與 IAM 使用者或角色關聯的所有或特定暫時安全憑證工作階段。您可以透過在政策的 Condition 元素中指定暫時安全憑證關聯的 IAM 使用者、角色或聯合身分使用者的唯一識別符 (ID),來執行此操作。

下列政策顯示如何使用條件內容索引鍵 aws:userid 拒絕存取暫時安全憑證工作階段的範例。

  • AIDAXUSER1 代表 IAM 使用者的唯一識別符。指定 IAM 使用者的唯一識別符作為內容索引鍵 aws:userid 的值將拒絕與 IAM 使用者關聯的所有工作階段。

  • AROAXROLE1 代表 IAM 角色的唯一識別符。指定 IAM 角色的唯一識別符作為內容索引鍵 aws:userid 的值將拒絕與角色關聯的所有工作階段。

  • AROAXROLE2 代表擔任角色工作階段的唯一識別符。在假設角色唯一識別碼的 caller-specified-role-session-name 部分中,您可以指定角色工作階段名稱或萬用字元 (如果使用 StringLike條件運算子)。如果您指定角色工作階段名稱,則它會拒絕具名角色工作階段,而不會影響建立憑證的角色的許可。如果您為角色工作階段名稱指定萬用字元,則它會拒絕與角色關聯的所有工作階段。

  • account-id:<federated-user-caller-specified-name> 代表聯合身分使用者工作階段的唯一識別符。聯合身分使用者是由呼叫 GetFederationToken API 的 IAM 使用者所建立。如果您為聯合身分使用者指定唯一識別符,它會拒絕具名聯合身分使用者工作階段,而不會影響建立憑證的角色的許可。

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

如需主體索引鍵值的特定範例,請參閱 主體索引鍵值。如需 IAM 唯一識別符的資訊,請參閱 唯一識別碼

使用以資源為基礎的政策拒絕工作階段使用者

如果主體 ARN 也包含在任何以資源為基礎的政策中,您還必須根據以資源為基礎的政策的 Principal 元素中特定使用者的 principalIdsourceIdentity 值撤銷存取權。如果您僅更新角色的許可政策,使用者仍然可以執行以資源為基礎的政策中允許的動作。

  1. 請參閱 AWS 與 IAM 搭配使用的服務 以查看服務是否支援以資源為基礎的政策。

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

  3. 編輯政策陳述式以指定憑證的識別資訊:

    1. Principal 中,輸入要拒絕的憑證的 ARN。

    2. Effect 中,輸入 "Deny"。

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

    4. Resource 中,輸入目標資源的 ARN。例如:"arn:aws:s3:::EXAMPLE-BUCKET"。

    { "Version": "2012-10-17", "Statement": { "Principal": [ "arn:aws:iam::222222222222:role/ROLENAME", "arn:aws:iam::222222222222:user/USERNAME", "arn:aws:sts::222222222222:federated-user/USERNAME" ], "Effect": "Deny", "Action": "s3:*", "Resource": "arn:aws:s3:::EXAMPLE-BUCKET" } }
  4. 儲存您的工作。