IAM ユーザーの露出の修正 - AWS Security Hub

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

IAM ユーザーの露出の修正

AWS Security Hub は、 AWS Identity and Access Management (IAM) ユーザーの公開結果を生成できます。

Security Hub コンソールでは、露出の検出結果に関与した IAM ユーザーとその識別情報が、検出結果の詳細の [リソース] セクションに一覧表示されます。プログラムでは、Security Hub CSPM API の GetFindingsV2オペレーションを使用してリソースの詳細を取得できます。

露出の検出結果に関連するリソースを特定したら、不要なリソースを削除できます。不要なリソースを削除すると、露出プロファイルと AWS コストを削減できます。リソースが不可欠な場合は、以下の推奨される修復手順に従ってリスクを軽減します。修復トピックは、特性のタイプに基づいて分割されます。

1 つの露出の検出結果には、複数の修復トピックで特定された問題が含まれます。逆に、1 つの修復トピックだけに対処することで、露出の検出結果に対処し、その重要度レベルを下げることができます。リスク修復へのアプローチは、組織の要件とワークロードによって異なります。

注記

このトピックで提供される修復ガイダンスでは、他の AWS リソースで追加の相談が必要になる場合があります。

IAM ベストプラクティスでは、個々の IAM ユーザーを作成する代わりに、一時的な認証情報を使用して AWS にアクセスするために、IAM ロールを作成するか、ID プロバイダーとのフェデレーションを使用することをお勧めします。これが組織やユースケースのオプションである場合は、IAM ユーザーを使用する代わりに、ロールまたはフェデレーションに切り替えることをお勧めします。詳細については、『IAM ユーザーガイド』のIAM ユーザーを参照してください。

IAM ユーザーの設定ミスの特性

IAM ユーザーの設定ミスの特性と推奨される修復手順は次のとおりです。

IAM ユーザーには管理アクセス権を持つポリシーがある

IAM ポリシーでは、リソースにアクセスするときに IAM ユーザーに一連の権限を付与します。管理ポリシーは、IAM ユーザーに AWS サービスとリソースへの広範なアクセス許可を付与します。ユーザーが必要とする最小限のアクセス許可セットではなく、完全な管理者権限を提供すると、認証情報が侵害された場合に攻撃の範囲が拡大する可能性があります。 AWS では、標準的なセキュリティの原則に従って、最小特権を付与することをお勧めします。これは、タスクの実行に必要な許可のみ付与することを意味します。

  1. 管理ポリシーの確認と識別[リソース ID] で、IAM ロール名を識別します。IAM ダッシュボードに移動し、識別されたロールを選択します。IAM ユーザーにアッタッチされたアクセス許可ポリシー確認します。ポリシーが AWS マネージドポリシーの場合は、 AdministratorAccessまたは を探しますIAMFullAccess。それ以外の場合は、ポリシードキュメントで、"Resource": "*" に対して "Action": "*" を含むステートメント "Effect": "Allow" を持つステートメントを探します。

  2. 最小特権アクセスの実装 – サービス管理ポリシーを、ユーザーが機能するために必要な特定のアクセス許可のみを付与するポリシーに置き換えます。IAM ポリシーのセキュリティー上のベストプラクティスに関する詳細については、「AWS Identity and Access Management ユーザーガイド」の「最小特権のアクセス許可を適用する」を参照してください。不要なアクセス許可を特定するには、IAM Access Analyzer を使用して、アクセス履歴に基づいてポリシーを変更できます。詳細については、「AWS Identity and Access Management ユーザーガイド」の「外外部アクセスと未使用のアクセスに関する検出結果」を参照してください。

  3. 安全な設定に関する考慮事項 – インスタンスにサービス管理アクセス許可が必要な場合は、リスクを軽減するために、以下の追加のセキュリティコントロールを実装することを検討してください。

    • 多要素認証 (MFA) – MFA は、追加の形式の認証を要求することで、セキュリティレイヤーを追加します。これにより、認証情報が漏えいした場合でも、不正アクセスを防ぐことができます。詳細については、「AWS Identity and Access Management ユーザーガイド」の「多要素認証 (MFA) を必須とする」を参照してください。

    • IAM 条件 – 条件要素を設定すると、ソース IP や MFA の経過時間などの要因に基づいて、管理アクセス許可をいつ、どのように使用できるかを制限できます。詳細については、「AWS Identity and Access Management ユーザーガイド」の「IAM ポリシーの条件を使用して、アクセスをさらに制限する」を参照してください。

    • アクセス許可の境界 – アクセス許可の境界は、ロールが持つことができる最大アクセス許可を確立し、管理アクセスを持つロールのガードレールを提供します。詳細については、「AWS Identity and Access Management ユーザーガイド」の「Use permissions boundaries to delegate permissions management within an account」を参照してください。

IAM ユーザーで MFA が有効になっていない

多要素認証 (MFA) は、ユーザー名とパスワードに更なる保護手段を追加します。MFA が有効で、IAM ユーザーが AWS ウェブサイトにサインインすると、 AWS MFA デバイスからユーザー名、パスワード、認証コードの入力を求められます。認証プリンシパルは、時間的制約のあるキーを発行するデバイスを所有し、認証情報に関する知識がある必要があります。MFA を使用しない場合、ユーザーのパスワードが侵害されると、攻撃者はユーザーのアクセス AWS 許可へのフルアクセスを取得します。は、標準のセキュリティ原則に従って、 AWS マネジメントコンソール アクセス権を持つすべてのアカウントとユーザーに対して MFA を有効にする AWS ことをお勧めします。

MFA タイプの確認

AWS は、次の MFA タイプをサポートしています。

  • パスキーとセキュリティキー

  • 仮想認証アプリケーション

  • ハードウェア TOTP トークン

通常、物理デバイスによる認証がより厳格なセキュリティ保護を提供しますが、どんなタイプの MFA であっても MFA を無効にするよりは安全です。

MFA の有効化

要件に合った MFA タイプを有効にするには、「IAM ユーザーガイド」の「IAM のAWS 多要素認証」を参照してください。実装する特定の MFA タイプの手順に従います。多くのユーザーを管理する組織では、MFA に機密リソースへのアクセスを要求することで、MFA の使用を強制できます。

IAM ユーザーには、 への管理アクセス権を持つポリシーがあります。 AWS のサービス

サービス管理者ポリシーは、IAM ユーザーに特定の AWS サービス内のすべてのアクションを実行するアクセス許可を付与します。これらのポリシーには通常、ユーザーがジョブ機能を実行するために必要ではないアクセス許可が含まれます。最低限必要なアクセス許可セットではなく、IAM ユーザーにサービス管理者権限を付与すると、認証情報が侵害された場合に攻撃の範囲が拡大します。 AWS では、標準的なセキュリティの原則に従って、最小特権を付与することをお勧めします。これは、タスクの実行に必要な許可のみ付与することを意味します。

サービス管理ポリシーの確認と識別

[リソース ID] で、IAM ロール名を指定します。IAM ダッシュボードに移動し、識別されたロールを選択します。IAM ユーザーにアッタッチされたアクセス許可ポリシー確認します。ポリシーが AWS マネージドポリシーの場合は、AdministratorAccess または IAMFullAccess を探します。それ以外の場合は、ポリシードキュメントで、ステートメント「Effect": "Allow" with "Action": "*" over "Resource": "*"」を含むステートメントを探します。

最小特権アクセスの実装

サービス管理ポリシーを、ユーザーが機能するために必要な特定のアクセス許可のみを付与するポリシーに置き換えます。不要なアクセス許可を特定するには、IAM Access Analyzer を使用して、アクセス履歴に基づいてポリシーを変更できます。

安全な設定に関する考慮事項

インスタンスにサービス管理アクセス許可が必要な場合は、露出を軽減するために、これらの追加のセキュリティコントロールを実装することを検討してください。

  • MFA は、追加の形式の認証を要求することで、セキュリティレイヤーを追加します。これにより、認証情報が漏えいした場合でも、不正アクセスを防ぐことができます。

  • 条件要素を使用して、ソース IP や MFA の経過時間などの要因に基づいて、管理アクセス許可をいつ、どのように使用できるかを制限します。

  • アクセス許可の境界を使用して、ロールが持つことができる最大アクセス許可を確立し、管理アクセスを持つロールのガードレールを提供します。

IAM ユーザーの AWS アカウントには弱いパスワードポリシーがあります

パスワードポリシーは、IAM ユーザーパスワードの複雑さを最小限に抑えることで、不正アクセスから保護するのに役立ちます。強力なパスワードポリシーがないと、パスワードの推測やブルートフォース攻撃によってユーザーアカウントが侵害されるリスクが高くなります。標準のセキュリティ原則に従って、 は強力なパスワードポリシーを実装して、ユーザーが推測が難しい複雑なパスワードを作成することを AWS 推奨しています。

強力なパスワードポリシーの設定

IAM ダッシュボードに進み、アカウント設定に移動します。最小長、必要な文字タイプ、パスワードの有効期限設定など、アカウントの現在のパスワードポリシー設定を確認します。

パスワードポリシーを設定するときは、少なくとも以下のベストプラクティスに従う AWS ことをお勧めします。

  • 少なくとも 1 つの大文字が必要です。

  • 少なくとも 1 つの小文字が必要です。

  • 少なくとも 1 つの記号が必要です。

  • 少なくとも 1 つの数字が必要

  • 8 文字以上必要です。

セキュリティに関するその他の考慮事項

強力なパスワードポリシーに加えて、以下の追加のセキュリティ対策を検討してください。

  • MFA は、追加の形式の認証を要求することで、セキュリティレイヤーを追加します。これにより、認証情報が漏えいした場合でも、不正アクセスを防ぐことができます。

  • ソース IP や MFA の経過時間などの要因に基づいて、管理アクセス許可をいつ、どのように使用できるかを制限する条件要素を設定します。

IAM ユーザーに未使用の認証情報がある

90 日以上非アクティブのままになっているパスワードやアクセスキーなどの未使用の認証情報は、 AWS 環境にセキュリティ上のリスクをもたらします。これらの未使用の認証情報は、攻撃者の潜在的な攻撃ベクトルを作成し、組織全体のアタックサーフェスを増やします。セキュリティのベストプラクティスに従って、 AWS では、攻撃対象領域を減らすために、90 日以上使用されていない認証情報を無効化または削除することをお勧めします。

未使用の認証情報を無効化または削除する

露出の検出結果で、リソースを開きます。これにより、ユーザー詳細ウィンドウが開きます。未使用の認証情報に対してアクションを実行する前に、環境への潜在的な影響を評価します。適切な評価なしで認証情報を削除すると、バックグラウンドプロセス、スケジュールされたジョブなどが中断される可能性があります。未使用の認証情報を削除する影響を確認するために、完全に削除する前に短時間の非アクティブ化期間を検討してください。

認証情報タイプに基づいて適切なアクションを実行します。

  • コンソールパスワードが未使用の場合は、まずパスワードを変更し、一時的に非アクティブ化することを検討してください。問題が発生しない場合は、完全な非アクティブ化または削除を続行します。

  • アクセスキーが未使用の場合は、まずキーを非アクティブ化することを検討してください。影響を受けるシステムがないことを確認したら、完全な非アクティブ化または削除を続行します。

  • ユーザーが未使用の場合は、完全に削除する前に、制限ポリシーをアタッチして、ユーザーを一時的に非アクティブ化することを検討してください。

IAM ユーザーがローテーションされていないアクセスキーを持っている

アクセスキーは、 AWS リソースへのプログラムによるアクセスを可能にするアクセスキー ID とシークレットアクセスキーで構成されます。アクセスキーを長期間変更しない場合、漏洩すると不正アクセスのリスクが高まります。セキュリティのベストプラクティスに従って、攻撃者が侵害された認証情報を使用する機会を最小限に抑えるために、 は 90 日ごとにアクセスキーをローテーション AWS することをお勧めします。

アクセスキーをローテーションする

露出の検出結果で、リソースを開きます。これにより、ユーザー詳細ウィンドウが開きます。アクセスキーをローテーションするには、「IAM ユーザーガイド」の「IAM ユーザーのアクセスキーを管理する」を参照してください。

IAM ユーザーに、KMS キー復号化への無制限アクセスを許可するポリシーがある

AWS KMS を使用すると、データの保護に使用される暗号化キーを作成および管理できます。すべての KMS AWS KMS キーに対して無制限の復号アクセス許可 ( kms:Decryptや などkms:ReEncryptFrom) を許可する IAM ポリシーは、IAM ユーザーの認証情報が侵害された場合、不正なデータアクセスにつながる可能性があります。攻撃者がこれらの認証情報へのアクセス権を取得すると、機密データを含む環境内の暗号化されたデータを復号化する可能性があります。セキュリティのベストプラクティスに従って、 AWS KMS は、復号化のアクセス許可を、ユーザーが職務機能に必要な特定のキーのみに制限することで、最小特権を実装 AWS することをお勧めします。

最小特権アクセスの実装

露出の検出結果で、リソースを開きます。これにより、IAM ポリシーウィンドウが開きます。KMS で、リソース仕様が "*" の kms:Decrypt または kms:ReEncryptFrom または KMS:* を許可するアクセス許可を探します。ポリシーを更新して、 AWS KMS 復号のアクセス許可を必要な特定のキーのみに制限します。ポリシーを変更して、"*"リソースを必要な AWS KMS キーの特定の ARNs に置き換えます。

安全な設定に関する考慮事項

条件を追加して、これらのアクセス許可を使用できるタイミングをさらに制限することを検討してください。例えば、復号オペレーションを特定の VPC エンドポイントまたはソース IP 範囲に制限できます。特定の KMS キーを使用できるユーザーをさらに制限するようにキーポリシーを設定することもできます。