AWS Identity and Access Management (IAM) ユーザーまたはロールが削除されました。同じポリシーとアクセス許可で再作成したいです。
簡単な説明
AWS マネジメントコンソールを使用して IAM ユーザーを削除すると、IAM はそのユーザーに関連付けられているリソースを自動的に削除します。グループメンバーシップ、パスワード、アクセスキー、インラインポリシー、MFA デバイスなどが、このようなリソースに該当します。
AWS マネジメントコンソールを使用してユーザーグループを削除すると、IAM はそのグループに関連するリソースを自動的に削除または削除します。すべてのグループメンバーが削除され、マネージドポリシーがデタッチされ、すべてのインラインポリシーが削除されます。
解決策
削除した IAM ユーザーまたはロールを復元することはできません。ただし、次の AWS サービスを使用すると、特定の IAM ユーザーおよびグループに関連付けられた API とリソースを確認することができます。
次に、IAM ユーザーまたは IAM グループを再作成し、関連するリソースを再設定します。
CloudTrail イベント履歴を使用して、削除された IAM ユーザーまたはロールを確認する
CloudTrail を使用して削除された IAM ユーザーまたはロール名のイベント履歴を検索し、関連するリソースの API 履歴を取得します。
注: CloudTrail を使用すると、過去 90 日間のイベントに関するイベント履歴を検索できます。
- CloudTrail コンソールを開きます。
- ナビゲーションペインで [イベント履歴] をクリックします。
- [ルックアップ属性] ドロップダウンリストを選択し、[リソース名] を選択します。
- [ルックアップ値を入力] テキストボックスに、IAM ユーザーまたはロール名を入力します。
注: CloudTrail イベントにカスタムフィルターを設定することもできます。
結果には、削除された IAM ユーザーまたはロールに関連する次の API が含まれる場合があります。
CloudWatch ロググループを使用する
CloudWatch ロググループを使用すると、過去 90 日間を超えた API 履歴を検索できます。
注: Amazon CloudWatch ロググループにログを記録するには、証跡を作成し、設定しておく必要があります。詳細については、「Creating a trail with the CloudTrail console」(CloudTrail コンソールで証跡を作成する) を参照してください。
- CloudWatch コンソールを開きます。
- ナビゲーションペインで [ログ] を展開し、次に [ログ管理] を選択します。
- [ロググループ] で、該当するロググループを選択します。
- ロググループページから、[ロググループの検索] を選択します。
- [イベントをフィルター] に、ユーザーの API コールまたは特定の API アクションを検索するクエリを入力します。次に、更新アイコンを選択します。
- ロググループの検索出力で、[タイムスタンプ] を展開すると API コールの結果の詳細が表示されます。
ログでユーザーの API コールを検索するクエリの例:
{ $.userIdentity.userName = "Alice" }
注: Alice は、検索クエリのユーザー名に置き換えます。
ログでロールの API コールを検索するクエリの例:
{ $.userIdentity.sessionContext.sessionIssuer.userName = "AliceRole" }
注: AliceRole は、検索クエリの IAM ロール名に置き換えます。
注: CloudWatch Logs Insights を使用してログデータを分析することもできます。詳細については、「CloudWatch Logs Insights を使用して CloudTrail ログを取得して分析するにはどうすればよいですか?」を参照してください。
Athena を使用して CloudTrail 証跡ログをクエリし、削除された IAM ユーザーまたはロールを確認する
Athena を使用すると、過去 90 日間の CloudTrail ログをクエリできます。証跡がデータイベントを記録するように設定されている場合は、データイベントも検索できます。CloudTrail イベント履歴でデータイベントを表示することはできません。
注: Athena を使用して CloudTrail ログをクエリするには、Amazon Simple Storage Service (Amazon S3) バケットに記録するように証跡を設定する必要があります。
- Athena コンソールを開き、[クエリエディタ] をクリックします。
- ユースケースに基づいて、次のクエリ例のいずれかを入力し、[実行] をクリックします。
特定の IAM ユーザーに適用された設定変更に関連するすべての CloudTrail イベントを返すクエリの例:
SELECT *
FROM example-athena-table
WHERE
eventsource = 'iam.amazonaws.com'
AND requestParameters LIKE '%DeletedIAMUserName%'
AND readonly = 'false'
特定の IAM ロールに適用された設定変更に関連するすべての CloudTrail イベントを返すクエリの例:
SELECT *
FROM example-athena-table
WHERE
eventsource = 'iam.amazonaws.com'
AND requestParameters LIKE '%DeletedIAMRoleName%'
AND readonly = 'false'
注: athena-table は実際の Athena テーブル名に置き換え、DeletedIAMUserName または DeletedIAMRoleName は、実際の IAM ユーザーまたはロールに置き換えます。
CloudTrail ログを使用して、Athena テーブルを作成し、クエリを実行することもできます。詳細については、「CloudTrail ログをクエリする」を参照してください。
AWS Config を使用して削除された IAM ユーザーまたはロールを確認する
削除された IAM ユーザーやロールなど、AWS Config が AWS アカウントに記録したリソースを確認できます。
- us-east-1 の AWS リージョンで AWS Config コンソールを開きます。
- ナビゲーションペインで、[リソース] をクリックします。
- [リソースインベントリ] ページの [リソースタイプ] で、ドロップダウンリストを選択します。
- [AWS IAM ロール] または [AWS IAM ユーザー] を選択します。
- [削除済みリソースを含む] を選択し、オンに切り替えたら、[適用] をクリックします。
- [リソース識別子] 列から、"deleted" とマークされた IAM ユーザーまたはロールを選択します。
- [リソース] ページで [リソースタイムライン] を選択します。
- [タイムライン] ページで、削除された IAM ユーザーまたはロールについて、[一般情報] と [イベント] を確認します。
AWS Config リソースタイムラインには、削除前の IAM ロールまたはユーザーに関連付けられているインラインポリシー、マネージドポリシー、アクセス許可の詳細が含まれています。詳細については、「Viewing resources referenced with AWS Config」(AWS Config で参照されるリソースを確認する) を参照してください。
関連情報
Viewing Compliance History for your AWS Resources with AWS Config (AWS Config で AWS リソースのコンプライアンス履歴を確認する)
CloudTrail ログ検索を行うための、Amazon Athena テーブルを自動的に作成する方法を教えてください
特定の IAM ユーザー、ロール、および AWS アクセスキーのアカウントアクティビティをモニタリングするにはどうすればよいですか?