
# 撤销临时安全凭证的权限
临时安全凭证在过期之前一直有效，STS不同API获得的临时安全凭证有效期可参考[比较STS临时安全凭证](https://support.huaweicloud.com/usermanual-iam5/iam_01_1329.html)章节。您可以调整信任委托的信任策略禁止生成新的临时安全凭证，但是还需要更改信任委托的身份策略，以阻止他人通过已泄露的临时安全凭证进行恶意账号活动。每次使用临时安全凭证向华为云发出请求时，系统都会重新评估分配给该临时安全凭证的权限。从信任委托中删除所有权限后，使用这些临时安全凭证的华为云请求会失败，不过策略更新可能需要几分钟时间才能生效。支持撤销的云服务委托的列表请参见[支持身份策略与信任委托的云服务列表](https://support.huaweicloud.com/usermanual-iam5/iam_01_1224.html)。
下面典型使用场景以撤销AssumeAgency API生成的临时安全凭证为例，AssumeAgencyWithSAML API与AssumeAgencyWithOIDC API生成的临时安全凭证撤销方法与其一致。
#### 撤销所有临时安全凭证的访问
此方法会阻止所有使用临时安全凭证签名的请求，临时安全凭证由AssumeAgency API切换目标信任委托生成。请编辑或删除为信任委托关联的身份策略，如果选择更新策略，可以调整为如下策略。所做的更改会影响与该信任委托关联的所有临时安全凭证的权限，包括在更改信任委托身份策略之前颁发的临时安全凭证、正在生成或者将要生成的临时安全凭证。
![](https://support.huaweicloud.com/usermanual-iam5/public_sys-resources/note_3.0-zh-cn.png)
- 如果存在允许主体访问的资源策略，则必须调整资源策略，添加显式拒绝语句。
- 只支持撤销部分云服务的临时安全凭证的权限，具体请参见[支持身份策略与信任委托的云服务列表](https://support.huaweicloud.com/usermanual-iam5/iam_01_1224.html)。
 
```
{
"Version": "5.0",
"Statement": [{
"Effect": "Deny",
"Action": [
"*"
],
"Resource": [
"*"
]
}]
}
```
#### 撤销特定临时安全凭证的访问
如果您想要阻止特定临时安全凭证的访问，而不影响其他临时安全凭证的访问，可以使用条件键。
![](https://support.huaweicloud.com/usermanual-iam5/public_sys-resources/note_3.0-zh-cn.png)
- 如果存在允许主体访问的资源策略，则必须调整资源策略，添加显式拒绝语句。
- 只支持撤销部分云服务的临时安全凭证的权限，具体请参见[支持身份策略与信任委托的云服务列表](https://support.huaweicloud.com/usermanual-iam5/iam_01_1224.html)。
 
#### 拒绝特定时间前生成的临时安全凭证的访问
通过在身份策略的Condition元素中指定[g:TokenIssueTime](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html#iam_01_1287__li148763245416)键的值，以撤销特定时间前生成的临时安全凭证的访问权限。当g:TokenIssueTime的值早于指定的日期和时间时，该身份策略会拒绝所有访问，g:TokenIssueTime的值对应临时安全凭证的签发时间。g:TokenIssueTime值仅存在于使用临时安全凭证签名的请求中，因此该身份策略中的Deny语句不会影响使用永久访问密钥签名的请求。
通过将此身份策略附加到信任委托上，可以拒绝特定时间前生成的临时安全凭证签名的请求，临时安全凭证由AssumeAgency API切换目标信任委托生成。
```
{
"Version": "5.0",
"Statement": [{
"Effect": "Deny",
"Action": [
"*"
],
"Resource": [
"*"
],
"Condition": {
"DateLessThan": {
"g:TokenIssueTime": "2024-03-01T12:00:00Z"
}
}
}]
}
```
#### 拒绝特定主体临时安全凭证的访问
通过在身份策略的Condition元素中指定[g:PrincipalUrn](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html#iam_01_1287__li1733183419392)键的值，以撤销特定主体生成的临时安全凭证的访问权限。目前临时安全凭证只支持通过委托或者信任委托方式获取，因此获取到的临时安全凭证也称为委托或信任委托会话，委托或信任委托会话的URN格式为sts::\<account-id\>:assumed-agency:\<agency-name\>/\<session-name\>。注意：目前通过IAM控制台切换委托或者信任委托后的会话URN的session-name固定为null，通过AssumeAgency API切换委托或者信任委托时session-name允许您自己指定。
通过将此身份策略附加到信任委托上，可以拒绝特定用户切换该信任委托的控制台请求。
```
{
"Version": "5.0",
"Statement": [{
"Effect": "Deny",
"Action": [
"*"
],
"Condition": {
"StringEquals": {
"g:PrincipalUrn": [
"sts::account-id:assumed-agency:agency-name/null"
]
}
}
}]
}
```
通过将此身份策略附加到信任委托上，可以拒绝特定主体的临时安全凭证签名的请求，临时安全凭证由AssumeAgency API切换目标信任委托生成。
```
{
"Version": "5.0",
"Statement": [{
"Effect": "Deny",
"Action": [
"*"
],
"Condition": {
"StringEquals": {
"g:PrincipalUrn": [
"sts::account-id:assumed-agency:agency-name/session-name"
]
}
}
}]
}
```
#### 拒绝特定源身份信息的临时安全凭证的访问
通过在身份策略的Condition元素中指定[g:SourceIdentity](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html#iam_01_1287__li568204310111)键的值，以撤销特定源身份信息的临时安全凭证的访问权限。只要在调用AssumeAgency API时指定了源身份信息，就可以使用此方法来进行撤销。一旦设置源身份信息后，g:SourceIdentity键的值会存在于该信任委托会话的所有请求调用中，并会一直持续下去，即便您通过委托链（信任委托再切换其他信任委托）也无法修改。注意：目前通过IAM控制台切换信任委托时无法设置源身份信息，因此该方法无法拒绝切换信任委托后的控制台请求。
通过将此身份策略附加到信任委托上，可以拒绝特定源身份信息的临时安全凭证签名的请求，临时安全凭证由AssumeAgency API切换目标信任委托生成。
```
{
"Version": "5.0",
"Statement": [{
"Effect": "Deny",
"Action": [
"*"
],
"Condition": {
"StringEquals": {
"g:SourceIdentity": [
"123"
]
}
}
}]
}
```
