停用臨時安全性憑證的許可 - AWS 身分和存取權管理

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

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

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

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

您無法變更的權限 AWS 帳戶根使用者。 同樣地,您無法變更透過呼叫GetFederationTokenGetSessionToken以 root 使用者身分登入時建立之臨時安全性登入資料的權限。因此,我們建議您不要以根使用者身分呼叫 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 的許可。

提示

您可以使用以下方式找到聯合使用者ARNs的 AWS CloudTrail 日誌。如需詳細資訊,請參閱如何使用輕鬆識別聯合身分使用者 AWS CloudTrail.

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

如果您想要拒絕存取特定的暫時安全性認證工作階段,而不會影響建立認證之使用IAM者或角色的權限,則可以使用條件內容金鑰。

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

注意

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

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

AWS:PrincipalArn

您可以使用條件前後關聯索引鍵AWS:PrincipalArn來拒絕存取特定主參與者ARN。您可以在原則的「條件」元素中指定與暫時安全性認證相關聯的使用者、角色或同盟使用者的唯一識別碼 (ID)。IAM

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

AWS:SourceIdentity

您可以使用條件內容索引鍵AWS:SourceIdentity來拒絕存取與角色工作階段相關聯的特定來源身分識別。只要在主體使用 any 擔任角色時,透過設定 SourceIdentity request 參數來發出角色工作階段,就適用此選項 AWS STS assume-role* CLI 指令,或 AWS STS AssumeRole* API 操作。您可以透過在原則Condition元素中指定暫時安全登入資料所關聯的來源識別碼來執行此操作。

與上下文鍵不同 sts:RoleSessionName,在設定來源識別之後,無法變更該值。針對角色採取的所有動作,索aws:SourceIdentity引鍵會出現在要求前後關聯中。當您使用工作階段認證擔任其他角色時,來源識別會保留在後續的角色工作階段中。從另一個角色取得及擔任角色稱為角色鏈結

下列政策顯示如何使用條件內容索引鍵 aws:SourceIdentity 拒絕存取暫時安全憑證工作階段的範例。如果您指定與角色工作階段相關聯的來源識別,它將拒絕具有具名來源識別的角色工作階段,而不會影響建立認證之角色的權限。在此範例中,主參與者在發出角色工作階段時所設定的來源識別為nikki_wolf@example.com。由於原則條件中包含來源身分識別的角色工作階段所發出的任何要求都nikki_wolf@example.com會遭到拒絕,因為來源身分識別包含在原則條件中,且原則影響已設定為Deny

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

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

    注意

    呼叫者指定的角色工作階段名稱 (屬於假定角色工作階段的唯一識別碼的一部分) 可以在角色鏈結期間變更。當一個角色擔任另一個角色時,就會發生角色鏈結。當主體擔任使用的角色時,角色工作階段名稱是使用 RoleSessionName request 參數設定的 AWS STS AssumeRoleAPI操作。

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

{ "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:AW:S3:: 安贊-S3-演示桶。」

    { "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:::amzn-s3-demo-bucket" } }
  4. 儲存您的工作。