

# IAM ロールの一時的なセキュリティ認証情報を取り消す
<a name="id_roles_use_revoke-sessions"></a>

**警告**  
このページの手順に従うと、ロールを引き受けることによって作成された現在のセッションのすべてのユーザーは、すべての AWS アクションとリソースへのアクセスを拒否されます。その結果、保存されていない作業は失われます。

ユーザーが長いセッションの有効期間 (12 時間など) を使用して AWS マネジメントコンソール にアクセスできるようにすると、一時的な認証情報がすぐに期限切れになることはありません。ユーザーが意図せずに認証情報を不正なサードパーティーに公開した場合、そのパーティーはセッションの期間アクセスできます。ただし、必要がある場合は、特定の時点より前に発行したロールの認証情報の、すべてのアクセス許可をすぐに取り消しできます。指定された時間より前に発行された、そのロールのすべての一時的な認証情報が無効になります。これにより、すべてのユーザーは新しい認証情報を再認証し、リクエストしなければならなくなります。

 

**注記**  
*[サービスにリンクされたロール](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 のロールを編集することはできません。IAM アイデンティティセンターでユーザーのアクティブなアクセス許可セットセッションを取り消す必要があります。詳細については、「IAM Identity Center ユーザーガイド」の「[Revoke active IAM role sessions created by permission sets](https://docs.aws.amazon.com/singlesignon/latest/userguide/useraccess.html#revoke-user-permissions)」を参照してください。

**ロール認証情報のすべての現在のユーザーの、すべてのアクセス許可をすぐに拒否するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. ナビゲーションペインで、**[ロール]** に続いて、アクセス許可を取り消すロールの名前 (チェックボックスではありません) を選択します。

1. 選択したロールの **[概要]** ページで、**[セッションの無効化]** タブを選択します。

1. **[セッションの無効化]** タブで、**[アクティブなセッションの無効化]** を選択します。

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 リクエストのコンテキストでのみ存在します。そのため、ポリシーの Deny ステートメントは、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
```