

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

# の Security Hub CSPM コントロールAWS Identity and Access Management
<a name="iam-controls"></a>

これらのAWS Security Hub CSPMコントロールは、 AWS Identity and Access Management(IAM) サービスとリソースを評価します。コントロールは一部の で使用できない場合がありますAWS リージョン。詳細については、「[リージョン別のコントロールの可用性](securityhub-regions.md#securityhub-regions-control-support)」を参照してください。

## [IAM.1] IAM ポリシーでは、完全な「\*」管理者権限を許可しないでください
<a name="iam-1"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.22、CIS AWSFoundations Benchmark v1.4.0/1.16、NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6 AC-6(10)、NIST.800-53.r5 AC-6(2) NIST.800-53.r5 AC-6

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 高

**リソースタイプ :** `AWS::IAM::Policy`

**AWS Config ルール :** [`iam-policy-no-statements-with-admin-access`](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-admin-access.html)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**
+ `excludePermissionBoundaryPolicy: true` (カスタマイズ不可)

このコントロールは、IAM ポリシー (カスタマー管理ポリシーとも呼ばれます) のデフォルトバージョンに、`"Action": "*"` が `"Resource": "*"` に対して規定された `"Effect": "Allow"` ステートメントを持つ管理者アクセス権があるかどうかをチェックします。このようなステートメントを含む IAM ポリシーがある場合、コントロールは失敗します。

コントロールは、作成したカスタマーマネージドポリシーのみをチェックします。インラインポリシーとAWS管理ポリシーはチェックされません。

IAM ポリシーは、ユーザー、グループ、またはロールに付与される権限のセットを定義します。標準のセキュリティアドバイスに従って、 AWSは最小権限を付与することをお勧めします。これは、タスクの実行に必要なアクセス許可のみを付与することを意味します。ユーザーが必要とする最小限の許可セットではなく、完全な管理者権限を提供すると、リソースが不要なアクションにさらされる可能性があります。

完全な管理者権限を許可するのではなく、ユーザーが何をする必要があるのかを決定し、ユーザーが、それらのタスクのみを実行できるポリシーを作成します。最小限の許可セットから開始し、必要に応じて追加許可を付与する方がより安全です。あまりにも寛大な許可から始めて、後でそれらを強化しようとしないでください。

`"Effect": "Allow" ` および `"Action": "*"` が `"Resource": "*"` に対して規定されたステートメントを持つ IAM ポリシーは削除する必要があります。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-1-remediation"></a>

IAM ポリシーを変更して、完全な「\*」管理者権限を許可しないようにする方法については、「*IAM ユーザーガイド*」の「[IAM ポリシーの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)」を参照してください。

## [IAM.2] IAM ユーザーには IAM ポリシーを添付しないでください
<a name="iam-2"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.14、CIS AWSFoundations Benchmark v3.0.0/1.15、CIS AWSFoundations Benchmark v1.2.0/1.16、NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-63.NIST.800-53.r5 AC-6800-17r2

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 低

**リソースタイプ :** `AWS::IAM::User`

**AWS Config ルール :** [`iam-user-no-policies-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-no-policies-check.html)

**スケジュールタイプ:** 変更がトリガーされた場合

**パラメータ :** なし

このコントロールは、IAM ユーザーにポリシーが添付済みかどうかをチェックします。IAM ユーザーにポリシーが添付されている場合、コントロールは失敗します。代わりに、IAM ユーザーは、IAM グループまたはロールから許可を継承するか、ロールを引き受ける必要があります。

デフォルトでは、IAM ユーザー、グループ、ロールは AWSリソースにアクセスできません。IAM ポリシーで、ユーザー、グループ、またはロールに権限を付与します。IAM ポリシーはグループとロールには直接適用しますが、ユーザーには直接適用しないことを推奨します。グループレベルまたはロールレベルで権限を割り当てると、ユーザー数が増えるにつれてアクセス管理の複雑さが軽減されます。アクセス管理の複雑さを軽減することで、プリンシパルが誤って過剰な権限を受け取ったり保持する機会を減らすことができます。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-2-remediation"></a>

この問題を解決するには、[IAM グループを作成し](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_create.html)、ポリシーをこのグループにアタッチします。続いて、[ユーザーをこのグループに追加します](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups_manage_add-remove-users.html)。ポリシーは、グループ内の各ユーザーに適用されます。ユーザーに直接添付されているポリシーを削除するには、「*IAM ユーザーガイド*」の「[IAM ID のアクセス許可の追加および削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## [IAM.3] IAM ユーザーのアクセスキーは 90 日以内にローテーションする必要があります
<a name="iam-3"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.13、CIS AWSFoundations Benchmark v3.0.0/1.14、CIS AWSFoundations Benchmark v1.4.0/1.14、CIS AWSFoundations Benchmark v1.2.0/1.4、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、NIST.800-53.r5 AC-3(15)、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.6.3

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中 

**リソースタイプ :** `AWS::IAM::User`

**AWS Config ルール :** [`access-keys-rotated`](https://docs.aws.amazon.com/config/latest/developerguide/access-keys-rotated.html)

**スケジュールタイプ :** 定期的

**パラメータ :**
+ `maxAccessKeyAge`: `90` (カスタマイズ不可)

このコントロールは、アクティブなアクセスキーが 90 日以内にローテーションされているかどうかをチェックします。

アカウントのすべてのアクセスキーを生成したり削除したりしないことを強く推奨します。代わりに、1 つ以上の IAM ロールを作成するか、[フェデレーション](https://aws.amazon.com/identity/federation/)を使用することをお勧めしますAWS IAM アイデンティティセンター。これらの方法を使用して、 AWS マネジメントコンソールおよび へのアクセスをユーザーに許可できますAWS CLI。

各アプローチにはそれぞれのユースケースがあります。フェデレーションは、既存の中央ディレクトリを保有する企業や、現在の制限 IAM ユーザーよりも多くを必要とする予定の企業にとって一般的に適しています。AWS環境外で実行されるアプリケーションには、 AWSリソースへのプログラムによるアクセスのためのアクセスキーが必要です。

ただし、プログラムによるアクセスを必要とするリソースが内部で実行されている場合AWS、ベストプラクティスは IAM ロールを使用することです。ロールを使用すると、アクセスキー ID とシークレットアクセスキーを設定にハードコーディングすることなく、リソースへのアクセスを許可できます。

アクセスキーとアカウントの保護の詳細については、の[AWS「アクセスキーを管理するためのベストプラクティス](https://docs.aws.amazon.com/general/latest/gr/aws-access-keys-best-practices.html)」を参照してください*AWS 全般のリファレンス*。また、ブログ記事[「プログラムによるアクセスの使用AWS アカウント中に を保護するためのガイドライン」も参照してください](https://aws.amazon.com/blogs/security/guidelines-for-protecting-your-aws-account-while-using-programmatic-access/)。

アクセスキーがすでにある場合、Security Hub CSPM では、アクセスキーを 90 日ごとにローテーションすることをお勧めします。アクセスキーをローテーションすることにより、侵害されたアカウントや終了したアカウントに関連付けられているアクセスキーが使用される可能性が低くなります。また、紛失した、クラックされた、盗まれた古いキーでデータにアクセスできないようにします。アクセスキーをローテーションしたら、必ずアプリケーションを更新してください。

アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成されます。これは AWS へのプログラムによるリクエストの署名に使用されます。ユーザーは、、Tools for Windows PowerShellAWS CLI、AWSSDKs、または個々の API オペレーションを使用した直接 HTTP 呼び出しAWSからプログラムで を呼び出すために、独自のアクセスキーが必要ですAWS のサービス。

組織が AWS IAM アイデンティティセンター(IAM Identity Center) を使用している場合、ユーザーは Active Directory、組み込みの IAM Identity Center ディレクトリ、または [IAM Identity Center に接続された別の ID プロバイダー (IdP) に](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-idp.html)サインインできます。その後、アクセスキーを必要とせずにAWS CLIコマンドを実行したり AWSAPI オペレーションを呼び出すことができる IAM ロールにマッピングできます。詳細については、「 *AWS Command Line Interfaceユーザーガイド*[」の「 を使用するAWS CLIように AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)を設定する」を参照してください。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-3-remediation"></a>

90 日以上経過したアクセスキーをローテーションするには、「*IAM ユーザーガイド*」の「[アクセスキーのローテーション](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey)」を参照してください。**[アクセスキーの有効期間]** が 90 日を超えるすべてのユーザーに対する指示に従ってください。

## [IAM.4] IAM ルートユーザーアクセスキーが存在してはいけません
<a name="iam-4"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.3、CIS AWSFoundations Benchmark v3.0.0/1.4、CIS AWSFoundations Benchmark v1.4.0/1.4、CIS AWSFoundations Benchmark v1.2.0/1.12、PCI DSS v3.2.1/2.1、PCI DSS v3.2.1/2.2、PCI DSS v3.2.1/7.2.1、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)NIST.800-53.r5 AC-6 -

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 非常事態 

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-root-access-key-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-root-access-key-check.html)

**スケジュールタイプ :** 定期的

**パラメータ:** なし

このコントロールは、ルートユーザーアクセスキーが存在するかどうかをチェックします。

ルートユーザーは、 の最も特権のあるユーザーですAWS アカウント。AWSアクセスキーは、特定のアカウントへのプログラムによるアクセスを提供します。

Security Hub CSPM では、ルートユーザーに関連付けられているすべてのアクセスキーを削除することをお勧めします。これにより、お使いのアカウントの侵害に使用できるベクトルが制限されます。また、最小特権のロールベースのアカウントの作成と使用が促進されます。

### 修正
<a name="iam-4-remediation"></a>

ルートユーザーアクセスキーを削除するには、「*IAM ユーザーガイド*」の「[ルートユーザーのアクセスキーの削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#id_root-user_manage_delete-key)」を参照してください。の からルートユーザーアクセスキーを削除するにはAWS GovCloud (US)、AWS アカウント*AWS GovCloud (US)「 ユーザーガイド*[」のAWS GovCloud (US)「アカウントルートユーザーアクセスキーの削除](https://docs.aws.amazon.com/govcloud-us/latest/UserGuide/govcloud-account-root-user.html#delete-govcloud-root-access-key)」を参照してください。

## [IAM.5] コンソールパスワードを使用するすべての IAM ユーザーに対して MFA を有効にする必要があります
<a name="iam-5"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.9、CIS AWSFoundations Benchmark v3.0.0/1.10、CIS AWSFoundations Benchmark v1.4.0/1.10、CIS AWSFoundations Benchmark v1.2.0/1.2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8 IA-2)

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::IAM::User`

**AWS Config ルール :** [`mfa-enabled-for-iam-console-access`](https://docs.aws.amazon.com/config/latest/developerguide/mfa-enabled-for-iam-console-access.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールは、コンソールパスワードを使用するすべての IAM ユーザーに対してAWS多要素認証 (MFA) が有効になっているかどうかを確認します。

多要素認証 (MFA) は、ユーザー名とパスワードに更なる保護手段を追加します。MFA を有効にすると、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワードの入力を求められます。さらに、AWSMFA デバイスから認証コードの入力を求められます。

コンソールパスワードを使用するすべてのアカウントにおいて、MFA を有効にすることを推奨します。MFA は、コンソールアクセスのセキュリティを強化するために設計されています。認証プリンシパルは、時間的制約のあるキーを発行するデバイスを所有し、認証情報に関する知識がある必要があります。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-5-remediation"></a>

IAM ユーザーに MFA を追加するには、「*IAM ユーザーガイド*」の「[Using multi-factor authentication (MFA) in AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)」を参照してください。

## [IAM.6] ルートユーザーに対してハードウェア MFA を有効にする必要があります
<a name="iam-6"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.5、CIS AWSFoundations Benchmark v3.0.0/1.6、CIS AWSFoundations Benchmark v1.4.0/1.6、CIS AWSFoundations Benchmark v1.2.0/1.14、PCI DSS v3.2.1/8.3.1、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2-2(2)、NIST.800- IA-2

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 非常事態

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`root-account-hardware-mfa-enabled`](https://docs.aws.amazon.com/config/latest/developerguide/root-account-hardware-mfa-enabled.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールAWS アカウントは、 がハードウェア多要素認証 (MFA) デバイスを使用してルートユーザー認証情報でサインインできるかどうかを確認します。ハードウェア MFA が有効になっていない場合や、仮想 MFA デバイスにルートユーザー認証情報によるサインインが許可されている場合、コントロールは失敗します。

仮想 MFA はハードウェア MFA デバイスと同じレベルのセキュリティを提供しない可能性があります。ハードウェアの購入承認の待機中、またはハードウェアの到着を待つ間にのみ、仮想 MFA デバイスの使用を推奨します。詳細については、*IAM ユーザーガイド*[の「仮想 MFA デバイスの割り当て (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable_virtual.html)」を参照してください。

**注記**  
Security Hub CSPM は、 内のルートユーザー認証情報 (ログインプロファイル) の存在に基づいてこのコントロールを評価しますAWS アカウント。コントロールは、次の場合に `PASSED` 検出結果を生成します。  
ルートユーザーの認証情報がアカウントに存在し、ルートユーザーのハードウェア MFA が有効になっている。
ルートユーザーの認証情報がアカウントに存在しない。
このコントロールは、ルートユーザーの認証情報がアカウントに存在し、ルートユーザーのハードウェア MFA が有効になっていない場合、`FAILED` 検出結果を生成します。

### 修正
<a name="iam-6-remediation"></a>

ルートユーザーのハードウェア MFA を有効にする方法については、「*IAM ユーザーガイド*」の「[AWS アカウントのルートユーザー の多要素認証](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-mfa-for-root.html)」を参照してください。

## [IAM.7] IAM ユーザーのパスワードポリシーには強力な設定が必要です
<a name="iam-7"></a>

**関連する要件:** NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-5(1)、NIST.800-171.r2 3.5.2、NIST.800-171.r2 3.5.7、NIST.800-171.r2 3.5.8、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.3.7、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.3.10.1、PCI DSS v4.0.1/8.6.3

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :**


| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 | 
| --- | --- | --- | --- | --- | 
| `RequireUppercaseCharacters` | パスワードには少なくとも 1 つの大文字が必要です | ブール値 | `true` 、、または `false` | `true` | 
| `RequireLowercaseCharacters` | パスワードには少なくとも 1 つの小文字が必要です | ブール値 | `true` 、、または `false` | `true` | 
| `RequireSymbols` | パスワードには少なくとも 1 つの記号が必要です | ブール値 | `true` 、、または `false` | `true` | 
| `RequireNumbers` | パスワードには少なくとも 1 つの数字が必要です | ブール値 | `true` 、、または `false` | `true` | 
| `MinimumPasswordLength` | パスワードに含まれる文字の最小数 | 整数 | `8`～`128` | `8` | 
| `PasswordReusePrevention` | 古いパスワードを再使用できるようになるまでのパスワードローテーション回数 | 整数 | `12`～`24` | デフォルト値なし | 
| `MaxPasswordAge` | パスワードが有効期限切れになるまでの日数 | 整数 | `1`～`90` | デフォルト値なし | 

このコントロールは、IAM ユーザーのアカウントパスワードポリシーが強力な設定を使用しているかどうかをチェックします。パスワードポリシーが強力な設定を使用していない場合、コントロールは失敗します。カスタムパラメータ値を指定しない限り、Security Hub CSPM は前の表で説明したデフォルト値を使用します。`PasswordReusePrevention` および `MaxPasswordAge`パラメータにはデフォルト値がないため、これらのパラメータを除外すると、Security Hub CSPM はこのコントロールを評価するときにパスワードのローテーション数とパスワード経過時間を無視します。

にアクセスするにはAWS マネジメントコンソール、IAM ユーザーにパスワードが必要です。ベストプラクティスとして、Security Hub CSPM では、IAM ユーザーを作成する代わりにフェデレーションを使用することを強くお勧めします。フェデレーションでは、ユーザーは既存の企業認証情報を使用して、AWS マネジメントコンソール にログインできます。AWS IAM アイデンティティセンター(IAM Identity Center) を使用してユーザーを作成またはフェデレーションし、アカウントに IAM ロールを引き受けます。

アイデンティティプロバイダーとフェデレーションの詳細については、「IAM ユーザーガイド」の「[アイデンティティプロバイダーとフェデレーション](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)」を参照してください。IAM Identity Center の詳細については、「[*AWS IAM アイデンティティセンター ユーザーガイド*](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html)」を参照してください。

 IAM ユーザーを使用する必要がある場合、Security Hub CSPM では、強力なユーザーパスワードの作成を強制することをお勧めします。でパスワードポリシーを設定AWS アカウントして、パスワードの複雑さの要件と必須のローテーション期間を指定できます。パスワードポリシーを作成または変更する場合、パスワードポリシーの設定の多くは、ユーザーが次回パスワードを変更するときに適用されます。ただし、一部の設定は即座に適用されます。

### 修正
<a name="iam-7-remediation"></a>

パスワードポリシーの更新については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。

## [IAM.8] 未使用の IAM ユーザー認証情報は削除する必要があります
<a name="iam-8"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.3、NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-2(3)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-6、NIST.800-171.r2 3.1.2、PCI DSS v3.2.1/8.1.4、PCI DSS v4.0.1/8.2.

**カテゴリ:** 保護 > セキュアなアクセス管理 

**重要度:** 中 

**リソースタイプ :** `AWS::IAM::User`

**AWS Config ルール :** [`iam-user-unused-credentials-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html)

**スケジュールタイプ :** 定期的

**パラメータ :**
+ `maxCredentialUsageAge`: `90` (カスタマイズ不可)

このコントロールは、IAM ユーザーが 90 日間使用されていないパスワードまたはアクティブなアクセスキーを持っているかどうかをチェックします。

IAM ユーザーは、パスワードやアクセスキーなど、さまざまなタイプの認証情報を使用してAWSリソースにアクセスできます。

Security Hub CSPM では、90 日以上使用されていないすべての認証情報を削除または非アクティブ化することをお勧めします。不要な認証情報を無効化または削除することにより、侵害または放棄されたアカウントに関連付けられている認証情報が使用される可能性が少なくなります。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-8-remediation"></a>

IAM コンソールでユーザー情報を表示すると、**[アクセスキーの有効期間]**、**[パスワードの有効期間]**、**[最終アクティビティ]** の列が表示されます。これらの列の値のいずれかが 90 日より大きい場合は、それらのユーザーの認証情報を非アクティブにします。

[認証情報レポート](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html#getting-credential-reports-console)を使用してユーザーアカウントをモニタリングし、90 日以上アクティビティのないアカウントを特定することもできます。IAM コンソールから認証情報レポートを `.csv` 形式でダウンロードできます。

非アクティブなアカウント、または未使用の認証情報を特定したら、それらを非アクティブ化します。手順については、「*IAM ユーザーガイド*」の「[IAM ユーザーパスワードの作成、変更、削除 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html#id_credentials_passwords_admin-change-user_console)」を参照してください。

## [IAM.9] ルートユーザーに対して MFA を有効にする必要があります
<a name="iam-9"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.4、PCI DSS v3.2.1/8.3.1、PCI DSS v4.0.1/8.4.2、CIS AWSFoundations Benchmark v3.0.0/1.5、CIS AWSFoundations Benchmark v1.4.0/1.5、CIS AWSFoundations Benchmark v1.2.0/1.13、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800IA-2-53.r5 IA-2(2)、NIST.800-5 IA-2

**カテゴリ:** 保護 > セキュアなアクセス管理 

**重要度:** 非常事態

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`root-account-mfa-enabled`](https://docs.aws.amazon.com/config/latest/developerguide/root-account-mfa-enabled.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールは、 の IAM ルートユーザーが にサインインAWS アカウントするために多要素認証 (MFA) が有効になっているかどうかを確認しますAWS マネジメントコンソール。アカウントのルートユーザーに対して MFA が有効になっていない場合、コントロールは失敗します。

の IAM ルートユーザーはAWS アカウント、アカウント内のすべてのサービスとリソースに完全にアクセスできます。MFA が有効になっている場合、 にサインインするには、ユーザーは AWSMFA デバイスからユーザー名、パスワード、および認証コードを入力する必要がありますAWS マネジメントコンソール。MFA は、ユーザー名とパスワードに更なる保護手段を追加します。

このコントロールは、次の場合に `PASSED` 検出結果を生成します。
+ ルートユーザーの認証情報がアカウントに存在し、ルートユーザーの MFA が有効になっている。
+ ルートユーザーの認証情報がアカウントに存在しない。

このコントロールは、ルートユーザーの認証情報がアカウントに存在し、ルートユーザーに対して MFA が有効になっていない場合、`FAILED` 検出結果を生成します。

### 修正
<a name="iam-9-remediation"></a>

のルートユーザーの MFA を有効にする方法についてはAWS アカウント、*AWS Identity and Access Management「 ユーザーガイド*」の[「 の多要素認証AWS アカウントのルートユーザー](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-mfa-for-root.html)」を参照してください。

## [IAM.10] IAM ユーザーのパスワードポリシーには強力な設定が必要です
<a name="iam-10"></a>

**関連する要件:** NIST.800-171.r2 3.5.2、NIST.800-171.r2 3.5.7、NIST.800-171.r2 3.5.8、PCI DSS v3.2.1/8.1.4、PCI DSS v3.2.1/8.2.3、PCI DSS v3.2.1/8.2.4、PCI DSS v3.2.1/8.2.5

**カテゴリ:** 保護 > セキュアなアクセス管理 

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ:** なし

このコントロールは、IAM ユーザーのアカウントパスワードポリシーが次の最低限の PCI DSS 設定を使用しているかどうかをチェックします。
+ `RequireUppercaseCharacters` - パスワードには少なくとも 1 つの大文字が必要。(デフォルト = `true`)
+ `RequireLowercaseCharacters` - パスワードには少なくとも 1 つの小文字が必要。(デフォルト = `true`)
+ `RequireNumbers` - パスワードには少なくとも 1 つの数字が必要。(デフォルト = `true`)
+ `MinimumPasswordLength` - パスワードの最小文字数。(デフォルト = 7 以上)
+ `PasswordReusePrevention` - パスワードの再利用を許可するまでのパスワードの数。(デフォルト = 4)
+ `MaxPasswordAge` – パスワードが有効期限切れになるまでの日数。(デフォルト = 90)

**注記**  
2025 年 5 月 30 日、Security Hub CSPM は PCI DSS v4.0.1 標準からこのコントロールを削除しました。PCI DSS v4.0.1 では、8 文字以上のパスワードが必要です。このコントロールは、異なるパスワード要件を持つ PCI DSS v3.2.1 標準に引き続き適用されます。  
PCI DSS v4.0.1 の要件に照らしてアカウントのパスワードポリシーを評価するには、[IAM.7 コントロール](#iam-7)を使用できます。このコントロールでは、8 文字以上のパスワードが必要です。また、パスワードの長さやその他のパラメータのカスタム値もサポートしています。IAM.7 コントロールは、Security Hub CSPM における PCI DSS v4.0.1 標準の一部です。

### 修正
<a name="iam-10-remediation"></a>

推奨される設定を使用するようにパスワードポリシーを更新するには、「*IAM ユーザーガイド*」の「[IAM ユーザー用のアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。

## [IAM.11] IAM パスワードポリシーで少なくとも 1 文字の大文字が要求されていることを確認します
<a name="iam-11"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.5、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

**カテゴリ:** 保護 > セキュアなアクセス管理 

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の大文字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-11-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの強度]** で、**[ラテンアルファベット (A–Z) の少なくとも 1 つの大文字が必要]** を選択します。

## [IAM.12] IAM パスワードポリシーで少なくとも 1 文字の小文字が要求されていることを確認します
<a name="iam-12"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.6、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

**カテゴリ:** 保護 > セキュアなアクセス管理 

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。CIS では、パスワードポリシーで少なくとも 1 文字の小文字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-12-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの強度]** で、**[ラテンアルファベット (A–Z) の少なくとも 1 つの小文字が必要]** を選択します。

## [IAM.13] IAM パスワードポリシーで少なくとも 1 文字の記号が要求されていることを確認します
<a name="iam-13"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.7、NIST.800-171.r2 3.5.7

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の記号を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-13-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの強度]** で、**[少なくとも 1 つの英数字以外の文字が必要]** を選択します。

## [IAM.14] IAM パスワードポリシーで少なくとも 1 文字の数字が要求されていることを確認します
<a name="iam-14"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.8、NIST.800-171.r2 3.5.7、PCI DSS v4.0.1/8.3.6、PCI DSS v4.0.1/8.6.3

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードで異なる文字セットを使用するようにします。

CIS では、パスワードポリシーで少なくとも 1 文字の数字を要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-14-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの強度]** で、**[少なくとも 1 つの数字が必要]** を選択します。

## [IAM.15] IAM パスワードポリシーで 14 文字以上の長さが要求されていることを確認します
<a name="iam-15"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.7、CIS AWSFoundations Benchmark v3.0.0/1.8、CIS AWSFoundations Benchmark v1.4.0/1.8、CIS AWSFoundations Benchmark v1.2.0/1.9、NIST.800-171.r2 3.5.7

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

パスワードポリシーは、パスワードの複雑さの要件をある程度強制します。IAM パスワードポリシーを使用して、パスワードが指定された長さ以上になるようにします。

CIS では、パスワードポリシーで 14 文字以上の長さを要求することを推奨しています。パスワードの複雑さに関するポリシーを設定すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-15-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの最小文字数]** で、**14** またはそれ以上の数字を入力します。

## [IAM.16] IAM パスワードポリシーはパスワードの再使用を禁止しています
<a name="iam-16"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.8、CIS AWSFoundations Benchmark v3.0.0/1.9、CIS AWSFoundations Benchmark v1.4.0/1.9、CIS AWSFoundations Benchmark v1.2.0/1.10、NIST.800-171.r2 3.5.8、PCI DSS v4.0.1/8.3.7

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 低

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールは、記憶するパスワードの数が 24 に設定されているかどうかをチェックします。値が 24 でない場合、コントロールは失敗します。

IAM パスワードポリシーにより、同じユーザーによる特定のパスワードの再使用を防ぐことができます。

CIS では、パスワードポリシーでパスワードの再使用を禁止することを推奨しています。パスワードの再使用を禁止すると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。

### 修正
<a name="iam-16-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの再利用を禁止]** で、**24** と入力します。

## [IAM.17] IAM パスワードポリシーでパスワードが 90 日以内に有効期限切れとなることを確認します
<a name="iam-17"></a>

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.11、PCI DSS v4.0.1/8.3.9、PCI DSS v4.0.1/8.3.10.1

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 低

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-password-policy`](https://docs.aws.amazon.com/config/latest/developerguide/iam-password-policy.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

IAM パスワードポリシーでは、指定された日数後にパスワードをローテーションするか、または有効期限切れにすることを要求できます。

CIS では、パスワードポリシーでパスワードを 90 日以内に有効期限切れにすることを推奨しています。パスワードの有効期間を短くすると、ブルートフォースのログイン試行に対するアカウントの耐障害性が高まります。定期的なパスワード変更の要求は、以下のシナリオでも役立ちます。
+ パスワードはユーザーが知らない間に、盗まれたり漏洩したりする可能性があります。これは、システムの侵害、ソフトウェアの脆弱性、または内部の脅威によって起こりえます。
+ 特定の企業や政府のウェブフィルターまたはプロキシサーバーは、暗号化されている場合でもトラフィックを傍受し記録できます。
+ 多くの人々が仕事、E メール、個人用など多くのシステムで同じパスワードを使用しています。
+ 侵害されたエンドユーザーのワークステーションに、キーストロークロガーが設置されている可能性があります。

### 修正
<a name="iam-17-remediation"></a>

パスワードポリシーの変更については、「*IAM ユーザーガイド*」の「[IAM ユーザーのアカウントパスワードポリシーの設定](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_account-policy.html)」を参照してください。**[パスワードの有効期間をオンにする]** で、**90** またはそれより小さい数字を入力します。

## [IAM.18] でインシデントを管理するためのサポートロールが作成されていることを確認しますAWS サポート
<a name="iam-18"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.16、CIS AWSFoundations Benchmark v3.0.0/1.17、CIS AWSFoundations Benchmark v1.4.0/1.17、CIS AWSFoundations Benchmark v1.2.0/1.20、NIST.800-171.r2 3.1.2、PCI DSS v4.0.1/12.10.3

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 低

**リソースタイプ :** `AWS::::Account`

**AWS Config ルール :** [`iam-policy-in-use`](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-in-use.html)

**スケジュールタイプ :** 定期的

**パラメータ :**
+ `policyARN`: `arn:{{partition}}:iam::aws:policy/AWSSupportAccess` (カスタマイズ不可)
+ `policyUsageType`: `ANY` (カスタマイズ不可)

AWSは、インシデントの通知と対応、テクニカルサポート、カスタマーサービスに使用できるサポートセンターを提供します。

IAM ロールを作成して、認可済みのユーザーが AWS サポートでインシデントを管理できるようにします。アクセスコントロールの最小権限を実装することで、IAM ロールには、インシデントを管理するためにサポートセンターへのアクセスを許可する適切な IAM ポリシーが必要ですサポート。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-18-remediation"></a>

この問題を修正するには、認可済みのユーザーに サポート インシデントの管理を許可するロールを作成します。

**サポートアクセスに使用するロールを作成するには**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. IAM ナビゲーションペインで **[Roles]** (ロール) を選択し、続いて **[Create role]** (ロールの作成) を選択します。

1. **[Role type]** (ロールタイプ) で、**[Another AWS アカウント]** を選択します。

1. **アカウント ID** には、リソースへのアクセスを許可する AWS アカウントの AWS アカウントID を入力します。

   このロールを引き受けるユーザーまたはグループが同じアカウントに属している場合は、ローカルアカウント番号を入力します。
**注記**  
指定したアカウントの管理者は、そのアカウントのすべての ユーザーに、このロールを引き受けるアクセス許可を付与できます。そのためには、管理者から `sts:AssumeRole` アクションの許可を付与するユーザーまたはグループにポリシーを添付します。そのポリシーで、リソースはロール ARN である必要があります。

1. **[Next: Permissions]** (次へ: 許可) を選択します。

1. マネージドポリシー `AWSSupportAccess` を検索します。

1. `AWSSupportAccess` マネージドポリシーのチェックボックスを選択します。

1. **[Next: Tags]** (次へ: タグ) を選択します。

1. (オプション) ロールにメタデータを追加するには、キーバリューのペアとしてタグをアタッチします。

   IAM でのタグの使用の詳細については、「*IAM ユーザーガイド*」の「[IAM ユーザーとロールのタグ付け](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

1. **[Next: Review]** (次へ: レビュー) を選択します。

1. **[Role name]** (ロール名) に、ロールの名前を入力します。

   ロール名は 内で一意である必要がありますAWS アカウント。大文字と小文字は区別されません。

1. (オプション) **[Role description]** (ロールの説明) に、新しいロールの説明を入力します。

1. ロールを確認し、**[Create role]** (ロールの作成) を選択します。

## [IAM.19] すべての IAM ユーザーに対して MFA を有効にする必要があります
<a name="iam-19"></a>

**関連する要件:** NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 IA-2(1)、NIST.800-53.r5 IA-2(2)、NIST.800-53.r5 IA-2(6)、NIST.800-53.r5 IA-2(8)、NIST.800-171.r2 3.3.8、NIST.800-171.r2 3.5.3、NIST.800-171.r2 3.5.4、NIST.800-171.r2 3.7.5、PCI DSS v3.2.1/8.3.1、PCI DSS v4.0.1/8.4.2 

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::IAM::User`

**AWS Config ルール :** [`iam-user-mfa-enabled`](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-mfa-enabled.html)

**スケジュールタイプ :** 定期的

**パラメータ:** なし

このコントロールは、IAM ユーザーが多要素認証 (MFA) を有効にしているかどうかを確認します。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-19-remediation"></a>

IAM ユーザーに MFA を追加するには、「*IAM ユーザーガイド*」の「[Enabling MFA devices for users in AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_enable.html)」を参照してください。

## [IAM.20] ルートユーザーの使用を避けます
<a name="iam-20"></a>

**重要**  
Security Hub CSPM は、2024 年 4 月にこのコントロールを廃止しました。詳細については、「[Security Hub CSPM コントロールの変更ログ](controls-change-log.md)」を参照してください。

**関連する要件:** CIS AWSFoundations Benchmark v1.2.0/1.1

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 低

**リソースタイプ :** `AWS::IAM::User`

**AWS Configrule:** `use-of-root-account-test` (カスタム Security Hub CSPM ルール)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールAWS アカウントは、 にルートユーザーの使用に制限があるかどうかをチェックします。このコントロールは、以下のリソースを評価します。
+ Amazon Simple Notification Service (Amazon SNS)のトピック
+ AWS CloudTrail証跡
+ CloudTrail トレイルに関連するメトリックスフィルター
+ フィルターに基づく Amazon CloudWatch アラーム

チェックの結果、以下の記述の 1 つ以上が真であれば `FAILED` と判定されます:
+ アカウントには CloudTrail トレイルは存在しません。
+ CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります
+ CloudTrail トレイルは有効になっていますが、CloudWatch Logs ロググループには関連付けられていません。
+ Center for Internet Security (CIS) が規定する正確なメトリックフィルターが使用されていません。規定のメトリックフィルターは `'{$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}'` です。
+ メトリックスフィルターに基づく CloudWatch アラームがアカウントに存在しません。
+ 関連する SNS トピックに通知を送信するように設定された CloudWatch アラームは、アラーム条件に基づいてトリガーされません。
+ SNS トピックが、[SNS トピックにメッセージを送信するための制約](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)に準拠していません。
+ SNS トピックに 1 人以上のサブスクライバーが存在しません。

チェックの結果、以下の条件の 1 つ以上に当てはまれば、`NO_DATA` コントロールステータスになります:
+ マルチリージョンの追跡が別のリージョンに基づいています。Security Hub CSPM は、証跡が基づいているリージョンでのみ結果を生成できます。
+ マルチリージョンの追跡が別のアカウントに属しています。Security Hub CSPM は、証跡を所有するアカウントの結果のみを生成できます。

チェックの結果、以下の条件の 1 つ以上に当てはまれば、`WARNING` コントロールステータスになります:
+ 現在のアカウントは、CloudWatch アラームで参照されている SNS トピックを所有していません。
+ `ListSubscriptionsByTopic` SNS API を呼び出しても、現在のアカウントは SNS トピックにアクセスできません。

**注記**  
組織内の多数のアカウントからのイベントを記録するには、組織の証跡を使用することをお勧めします。組織の証跡はデフォルトではマルチリージョンの証跡であり、AWS Organizations管理アカウントまたは CloudTrail 委任管理者アカウントによってのみ管理できます。組織の証跡を使用すると、組織のメンバーアカウントで評価されたコントロールの管理ステータスは NO\_DATA になります。メンバーアカウントでは、Security Hub CSPM はメンバー所有のリソースの結果のみを生成します。組織の証跡に関する検出結果は、リソース所有者のアカウントで生成されます。これらの検出結果は、クロスリージョン集約を使用して、Security Hub CSPM 委任管理者アカウントで確認できます。

ベストプラクティスは、[アカウントおよびサービスの管理タスクを実行する](https://docs.aws.amazon.com/general/latest/gr/aws_tasks-that-require-root.html)ときに必要となる場合のみ、ルートユーザー認証情報を使用することです。IAM ポリシーは直接ユーザーに適用するのではなく、グループとロールに適用します。毎日使用するために管理者を設定する手順については、IAM *ユーザーガイド*の[「最初の IAM 管理者ユーザーとグループの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started_create-admin-group.html)」を参照してください。

### 修正
<a name="iam-20-remediation"></a>

この問題を修正するためのステップには、Amazon SNS トピック、CloudTrail 追跡、メトリクスフィルター、およびメトリクスフィルターのアラームの設定が含まれます。

**Amazon SNS トピックを作成するには**

1. Amazon SNS コンソール ([https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home)) を開きます。

1. すべての CIS アラームを受信する Amazon SNS トピックを作成します。

   トピックに少なくとも 1 人の受信者を作成します。詳細については、「Amazon Simple Notification Service 開発者ガイド」の「[Amazon SNS の開始方法](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#CreateTopic)」を参照してください。

次に、すべてのリージョンに適用されるアクティブな CloudTrail を設定します。これを行うには、[[CloudTrail.1] CloudTrail を有効にして、少なくとも 1 つのマルチリージョンの追跡で、読み取りと書き込みの管理イベントを含めた設定をする必要があります。](cloudtrail-controls.md#cloudtrail-1) の修正ステップに従います。

CloudTrail 追跡に関連付ける CloudWatch Logs ロググループの名前を書き留めます。そのロググループに対してメトリクスフィルターを作成します。

最後に、メトリクスフィルターとアラームを作成します。

**メトリクスフィルターとアラームを作成するには**

1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインで、**[Log groups]** (ロググループ) を選択します。

1. 作成した CloudTrail 追跡に関連付けられている CloudWatch Logs ロググループのチェックボックスを選択します。

1. **[Actions]** (アクション) から、**[Create Metric Filter]** (メトリクスフィルターの作成) を選択します。

1. **[Define pattern]** (パターンを定義) で、以下の操作を行います。

   1. 次のパターンをコピーして、**[Filter Pattern]** (フィルターパターン) フィールドに貼り付けます。

      ```
      {$.userIdentity.type="Root" && $.userIdentity.invokedBy NOT EXISTS && $.eventType !="AwsServiceEvent"}
      ```

   1. **[Next]** (次へ) を選択します。

1. **[Assign Metric]** (メトリクスの割り当て) で、以下の操作を行います。

   1. **[Filter name]** (フィルター名) に、メトリクスフィルターの名前を入力します。

   1. **[Metric namespace]** (メトリクス名前空間) に **LogMetrics** と入力します。

      すべての CIS ログメトリクスフィルターに同じ名前空間を使用した場合、すべての CIS Benchmark メトリクスがグループ化されます。

   1. **[Metric Name]** (メトリクス名) に、メトリクスの名前を入力します。メトリクスの名前を忘れないでください。アラームの作成時にメトリクスを選択する必要があります。

   1. **[Metric value]** (メトリクス値) に **1** と入力します。

   1. **[Next]** (次へ) を選択します。

1. **[Review and create]** (確認して作成) で、新しいメトリクスフィルター用に入力した情報を確認します。その後、**[Create metric filter]** (メトリクスフィルターの作成) を選択します。

1. ナビゲーションペインで **[Log groups]** (ロググループ)を選択し、**[Metric filters]** (メトリクスフィルター) で作成したフィルターを選択します。

1. フィルターのチェックボックスをオンにします。[**アラームの作成**] を選択します。

1. **[Specify metric and conditions]** (メトリクスと条件の指定) で、以下の操作を行います。

   1. **[Conditions]** (条件) の **[Threshold]** (しきい値) で、**[Static]** (静的) を選択します。

   1. **[Define the alarm condition]** (アラーム条件を定義) で、**[Greater/Equal]** (より大きい/等しい) を選択します。

   1. **[Define the threshold value]** (しきい値の定義) で、**1** を入力します。

   1. **[Next]** (次へ) を選択します。

1. **[Configure actions]** (アクションの設定) で、次の作業を行います。

   1. **[Alarm state trigger]** (アラーム状態トリガー) で、**[In alarm]** (アラーム状態) を選択します。

   1. **[Select an SNS topic]** (SNS トピックの選択) で、**[Select an existing SNS topic]** (既存の SNS トピックの選択) を選択します。

   1. **[Send a notification to]** (通知の送信先) で、前の手順で作成した SNS トピックの名前を入力します。

   1. **[Next]** (次へ) を選択します。

1. **[Add name and description]** (名前と説明を追加) に、アラームの **[Name]** (名前)と **[Description]** (説明)を **CIS-1.1-RootAccountUsage** のように入力します。続いて、**[Next]** (次へ) を選択します。

1. **[Preview and create]** (プレビューと作成) で、アラームの設定を確認します。次に **[Create alarm]** (アラームの作成) を選択します。

## [IAM.21] 作成する IAM カスタマーマネージドポリシーにはサービスのワイルドカードアクションを許可してはいけません
<a name="iam-21"></a>

**関連する要件:** NIST.800-53.r5 AC-2、NIST.800-53.r5 AC-2(1)、NIST.800-53.r5 AC-3、NIST.800-53.r5 AC-3(15)、NIST.800-53.r5 AC-3(7)、NIST.800-53.r5 AC-5、NIST.800-53.r5 AC-6、NIST.800-53.r5 AC-6(10)、NIST.800-53.r5 AC-6(2)、NIST.800-53.r5 AC-6(3)、NIST.800-171.r2 3.1.1、NIST.800-171.r2 3.1.2、NIST.800-171.r2 3.1.5、NIST.800-171.r2 3.1.7、NIST.800-171.r2 3.3.8、NIST.800-171.r2 3.3.9、NIST.800-171.r2 3.13.3、NIST.800-171.r2 3.13.4

**カテゴリ:** 検出 > セキュアなアクセス管理 

**重要度:** 低

**リソースタイプ :** `AWS::IAM::Policy`

**AWS Config ルール :** [`iam-policy-no-statements-with-full-access`](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-no-statements-with-full-access.html)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**
+ `excludePermissionBoundaryPolicy`: `True` (カスタマイズ不可)

このコントロールは、作成した IAM アイデンティティベースのポリシーに、ワイルドカード (\*) を使用して、任意のサービスに対してすべてのアクションに許可を付与する許可ステートメントがあるかどうかをチェックします。ポリシーステートメントに、`"Effect": "Allow"` と `"Action": "Service:*"` が含まれている場合、コントロールは失敗します。

例えば、ポリシーに次のような記述があると、結果は失敗となります。

```
"Statement": [
{
  "Sid": "EC2-Wildcard",
  "Effect": "Allow",
  "Action": "ec2:*",
  "Resource": "*"
}
```

`"Effect": "Allow"` と `"NotAction": "{{service}}:*"` を使用する場合も、コントロールは失敗します。この場合、 `NotAction`要素は、 で指定されたアクションを除きAWS のサービス、 のすべてのアクションへのアクセスを提供します`NotAction`。

このコントロールは、カスタマー管理 IAM ポリシーにのみ適用されます。AWS によって管理される IAM ポリシーには適用されません。

アクセス許可を割り当てるときはAWS のサービス、IAM ポリシーで許可される IAM アクションの範囲を設定することが重要です。IAM アクションは、必要なアクションのみに制限する必要があります。これは、最小特権の許可のプロビジョンに役立ちます。ポリシーが許可を必要としない IAM プリンシパルに添付済みの場合、過度に許可されたポリシーは特権エスカレーションにつながる可能性があります。

場合によっては、`DescribeFlowLogs` や `DescribeAvailabilityZones` のような類似のプレフィックスを持つ IAM アクションを許可する必要があります。これらの承認済みのケースでは、共通プレフィクスにサフィックス付きワイルドカードを追加することができます。例えば、`ec2:Describe*`。

プレフィクスが付いた IAM アクションとサフィックス付きワイルドカードを使用する場合、このコントロールは成功します。例えば、ポリシー内の次のステートメントでは、結果が成功になります。

```
"Statement": [
{
  "Sid": "EC2-Wildcard",
  "Effect": "Allow",
  "Action": "ec2:Describe*",
  "Resource": "*"
}
```

この方法で関連する IAM アクションをグループ化することで、IAM ポリシーのサイズ制限を超えないようにすることもできます。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-21-remediation"></a>

この問題を修正するには、IAM ポリシーを更新して、完全な「\*」管理者権限を許可しないようにします。IAM ポリシーを編集する方法の詳細は、「*IAM ユーザーガイド*」の「[IAM ポリシーの編集](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html)」を参照してください。

## [IAM.22] 45 日間未使用の IAM ユーザー認証情報は削除する必要があります
<a name="iam-22"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.11、CIS AWSFoundations Benchmark v3.0.0/1.12、CIS AWSFoundations Benchmark v1.4.0/1.12、NIST.800-171.r2 3.1.2

**カテゴリ:** 保護 > セキュアなアクセス管理

**重要度:** 中

**リソースタイプ :** `AWS::IAM::User`

**AWS Configルール: **[`iam-user-unused-credentials-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-user-unused-credentials-check.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールは、IAM ユーザーが 45 日以上使用されていないパスワードまたはアクティブなアクセスキーを持っていないかどうかをチェックします。これを行うには、AWS Configルールの `maxCredentialUsageAge`パラメータが 45 以上であるかどうかをチェックします。

ユーザーは、パスワードやアクセスキーなど、さまざまなタイプの認証情報を使用してAWSリソースにアクセスできます。

CIS では、45 日以上使用されていないすべての認証情報を削除または非アクティブ化することが推奨されています。不要な認証情報を無効化または削除することにより、侵害または放棄されたアカウントに関連付けられている認証情報が使用される可能性が少なくなります。

このコントロールのAWS Configルールは、4 時間ごとにのみ更新される [`GetCredentialReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetCredentialReport.html)および [`GenerateCredentialReport`](https://docs.aws.amazon.com/IAM/latest/APIReference/API_GenerateCredentialReport.html) API オペレーションを使用します。IAM ユーザーへの変更がこのコントロールから確認できるようになるまでに、最大 4 時間かかる場合があります。

**注記**  
AWS ConfigSecurity Hub CSPM を使用するすべてのリージョンで を有効にする必要があります。ただし、グローバルリソースの記録は 1 つのリージョンで有効にすることができます。グローバルリソースを 1 つのリージョンにのみ記録する場合は、グローバルリソースを記録するリージョン以外のすべてのリージョンでこのコントロールを無効にすることができます。

### 修正
<a name="iam-22-remediation"></a>

IAM コンソールでユーザー情報を表示すると、**[アクセスキーの有効期間]**、**[パスワードの有効期間]**、**[最終アクティビティ]** の列が表示されます。これらの列の値のいずれかが 45 日より大きい場合は、それらのユーザーの認証情報を非アクティブにします。

[認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html#getting-credential-reports-console)レポートを使用してユーザーアカウントをモニタリングし、45 日以上アクティビティのないアカウントを特定することもできます。IAM コンソールから認証情報レポートを `.csv` 形式でダウンロードできます。

非アクティブなアカウント、または未使用の認証情報を特定したら、それらを非アクティブ化します。手順については、「*IAM ユーザーガイド*」の「[IAM ユーザーパスワードの作成、変更、削除 (コンソール)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_passwords_admin-change-user.html#id_credentials_passwords_admin-change-user_console)」を参照してください。

## [IAM.23] IAM Access Analyzer アナライザーにはタグを付ける必要があります
<a name="iam-23"></a>

**カテゴリ:** 識別 > インベントリ > タグ付け

**重要度:** 低

**リソースタイプ :** `AWS::AccessAnalyzer::Analyzer`

**AWS Configrule: ** `tagged-accessanalyzer-analyzer` (カスタム Security Hub CSPM ルール)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**


| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目)  | [AWS 要件を満たす](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) 1～6 個のタグキー。 |  No default value  | 

このコントロールは、 AWS Identity and Access Management Access Analyzer(IAM Access Analyzer) によって管理されるアナライザーに、パラメータ で定義された特定のキーを持つタグがあるかどうかをチェックします`requiredTagKeys`。アナライザーにタグキーがない場合、またはパラメータ `requiredTagKeys` で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ `requiredTagKeys` が指定されていない場合、コントロールはタグキーの存在のみをチェックし、アナライザーにキーがタグ付けされていない場合は失敗します。自動的に適用され、`aws:` で始まるシステムタグは無視されます。

タグは、 AWSリソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWSリソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、[「ABAC とは」を参照してくださいAWS。](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) *「IAM ユーザーガイド*」の「」を参照してください。

**注記**  
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグにはAWS のサービス、 を含む多くのユーザーがアクセスできますAWS Billing。タグ付けのベストプラクティスの詳細については、の[AWS「リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)」を参照してください*AWS 全般のリファレンス*。

### 修正
<a name="iam-23-remediation"></a>

アナライザーにタグを追加するには、「*AWS IAM Access Analyzer API リファレンス*」の「[TagResource](https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_TagResource.html)」を参照してください。

## [IAM.24] IAM ロールにはタグを付ける必要があります
<a name="iam-24"></a>

**カテゴリ:** 識別 > インベントリ > タグ付け

**重要度:** 低

**リソースタイプ :** `AWS::IAM::Role`

**AWS Configrule: ** `tagged-iam-role` (カスタム Security Hub CSPM ルール)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**


| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目)  | [AWS 要件を満たす](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) 1～6 個のタグキー。 |  No default value  | 

このコントロールは、 AWS Identity and Access Management(IAM) ロールにパラメータ で定義された特定のキーを持つタグがあるかどうかをチェックします`requiredTagKeys`。ロールにタグキーがない場合、またはパラメータ `requiredTagKeys` で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ `requiredTagKeys` が指定されていない場合、コントロールはタグキーの存在のみをチェックし、ロールにキーがタグ付けされていない場合は失敗します。自動的に適用され、`aws:` で始まるシステムタグは無視されます。

タグは、 AWSリソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWSリソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、[「ABAC とは」を参照してくださいAWS。](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) *「IAM ユーザーガイド*」の「」を参照してください。

**注記**  
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグにはAWS のサービス、 を含む多くのユーザーがアクセスできますAWS Billing。タグ付けのベストプラクティスの詳細については、の[AWS「リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)」を参照してください*AWS 全般のリファレンス*。

### 修正
<a name="iam-24-remediation"></a>

IAM ロールにタグを追加するには、「*IAM ユーザーガイド*」の「[IAM リソースのタグ付け](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

## [IAM.25] IAM ユーザーにはタグを付ける必要があります
<a name="iam-25"></a>

**カテゴリ:** 識別 > インベントリ > タグ付け

**重要度:** 低

**リソースタイプ :** `AWS::IAM::User`

**AWS Configrule: ** `tagged-iam-user` (カスタム Security Hub CSPM ルール)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**


| パラメータ | 説明 | タイプ | 許可されているカスタム値 | Security Hub CSPM のデフォルト値 | 
| --- | --- | --- | --- | --- | 
|  requiredTagKeys  | 評価されたリソースに含める必要があるシステム以外のタグキーのリスト。タグキーでは大文字と小文字が区別されます。 | StringList (最大 6 項目)  | [AWS 要件を満たす](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-conventions) 1～6 個のタグキー。 |  No default value  | 

このコントロールは、 AWS Identity and Access Management(IAM) ユーザーにパラメータ で定義された特定のキーを持つタグがあるかどうかをチェックします`requiredTagKeys`。ユーザーにタグキーがない場合、またはパラメータ `requiredTagKeys` で指定されたすべてのキーがない場合、コントロールは失敗します。パラメータ `requiredTagKeys` が指定されていない場合、コントロールはタグキーの存在のみをチェックし、ユーザーがキーでタグ付けされていない場合は失敗します。自動的に適用され、`aws:` で始まるシステムタグは無視されます。

タグは、 AWSリソースに割り当てるラベルで、キーとオプションの値で構成されます。タグを作成して、リソースを目的、所有者、環境、またはその他の基準別に分類できます。タグは、リソースの識別、整理、検索、フィルタリングに役立ちます。タグ付けは、アクションと通知の説明責任のあるリソース所有者を追跡するのに役立ちます。タグ付けを使用する場合、タグに基づいてアクセス許可を定義する認証戦略として属性ベースのアクセス制御 (ABAC) を実装できます。タグは、IAM エンティティ (ユーザーまたはロール) および AWSリソースにアタッチできます。IAM プリンシパルに対して、単一の ABAC ポリシー、または個別のポリシーセットを作成できます。これらの ABAC ポリシーを、プリンシパルのタグがリソースタグと一致するときに操作を許可するように設計することができます。詳細については、[「ABAC とは」を参照してくださいAWS。](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) *「IAM ユーザーガイド*」の「」を参照してください。

**注記**  
タグには、個人を特定できる情報 (PII) や、機密情報あるいは秘匿性の高い情報は追加しないでください。タグにはAWS のサービス、 を含む多くのユーザーがアクセスできますAWS Billing。タグ付けのベストプラクティスの詳細については、の[AWS「リソースのタグ付け](https://docs.aws.amazon.com/tag-editor/latest/userguide/tagging.html#tag-best-practices)」を参照してください*AWS 全般のリファレンス*。

### 修正
<a name="iam-25-remediation"></a>

IAM ユーザーにタグを追加するには、「*IAM ユーザーガイド*」の「[IAM リソースのタグ付け](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html)」を参照してください。

## [IAM.26] IAM で管理されている期限切れの SSL/TLS 証明書は削除する必要があります
<a name="iam-26"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.18、CIS AWSFoundations Benchmark v3.0.0/1.19

**カテゴリ：** 識別 > コンプライアンス

**重要度:** 中

**リソースタイプ :** `AWS::IAM::ServerCertificate`

**AWS Configルール: **[`iam-server-certificate-expiration-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-server-certificate-expiration-check.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールは、IAM で管理されているアクティブな SSL/TLS サーバー証明書の有効期限が切れているかどうかを確認します。期限切れの SSL/TLS サーバー証明書が削除されない場合、コントロールは失敗します。

でウェブサイトまたはアプリケーションへの HTTPS 接続を有効にするにはAWS、SSL/TLS サーバー証明書が必要です。IAM または AWS Certificate Manager(ACM) を使用して、サーバー証明書を保存およびデプロイできます。ACM でサポートされていない で HTTPS 接続をサポートする必要がある場合にのみ、IAM AWS リージョンを証明書マネージャーとして使用します。IAM はプライベートキーを安全に暗号化し、暗号化されたバージョンを IAM SSL 証明書ストレージに保存します。IAM はすべての リージョンでのサーバー証明書のデプロイをサポートしていますが、 で使用するには外部プロバイダーから証明書を取得する必要がありますAWS。ACM 証明書を IAM にアップロードすることはできません。また、IAM コンソールから証明書を管理することはできません。期限切れの SSL/TLS 証明書を削除すると、基盤となるアプリケーションやウェブサイトの信頼性を損うような、無効な証明書が誤ってリソースにデプロイされるといったリスクがなくなります。

### 修正
<a name="iam-26-remediation"></a>

IAM からサーバー証明書を削除するには、「*IAM ユーザーガイド*」の「[IAM でのサーバー証明書の管理](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_server-certs.html)」を参照してください。

## [IAM.27] IAM ID に AWSCloudShellFullAccess ポリシーをアタッチしないでください
<a name="iam-27"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.21、CIS AWSFoundations Benchmark v3.0.0/1.22

**カテゴリ:** 保護 > セキュアなアクセス管理 > セキュアな IAM ポリシー

**重要度:** 中

**リソースタイプ:** `AWS::IAM::Role`、`AWS::IAM::User`、`AWS::IAM::Group`

**AWS Configルール: **[`iam-policy-blacklisted-check`](https://docs.aws.amazon.com/config/latest/developerguide/iam-policy-blacklisted-check.html)

**スケジュールタイプ :** 変更がトリガーされた場合

**パラメータ :**
+ "policyArns": "arn:aws:iam::aws:policy/AWSCloudShellFullAccess,arn:aws-cn:iam::aws:policy/AWSCloudShellFullAccess, arn:aws-us-gov:iam::aws:policy/AWSCloudShellFullAccess"

このコントロールは、IAM ID (ユーザー、ロール、またはグループ) に AWS管理ポリシーが`AWSCloudShellFullAccess`アタッチされているかどうかを確認します。IAM ID に `AWSCloudShellFullAccess` ポリシーがアタッチされている場合、コントロールは失敗します。

AWS CloudShellは、 CLI コマンドを実行するのに便利な方法を提供しますAWS のサービス。AWSマネージドポリシー`AWSCloudShellFullAccess`は CloudShell へのフルアクセスを提供します。これにより、ユーザーのローカルシステムと CloudShell 環境間のファイルのアップロードおよびダウンロード機能が可能になります。CloudShell 環境内では、ユーザーは sudo アクセス許可を持ち、インターネットにアクセスできます。その結果、このマネージドポリシーを IAM ID にアタッチすることで、ファイル転送ソフトウェアをインストールし、データを CloudShell から外部のインターネットサーバーに移動できます。最小特権の原則に従い、IAM ID に狭いアクセス許可をアタッチすることをお勧めします。

### 修正
<a name="iam-27-remediation"></a>

IAM ID から `AWSCloudShellFullAccess` ポリシーをデタッチするには、「*IAM ユーザーガイド*」の「[IAM ID アクセス許可の追加と削除](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)」を参照してください。

## [IAM.28] IAM Access Analyzer 外部アクセスアナライザーを有効にする必要があります
<a name="iam-28"></a>

**関連する要件:** CIS AWSFoundations Benchmark v5.0.0/1.19、CIS AWSFoundations Benchmark v3.0.0/1.20

**カテゴリ:** 検出 > 検出サービス > 特権使用状況モニタリング monitoring

**重要度:** 高

**リソースタイプ :** `AWS::AccessAnalyzer::Analyzer`

**AWS Configルール: **[`iam-external-access-analyzer-enabled`](https://docs.aws.amazon.com/config/latest/developerguide/iam-external-access-analyzer-enabled.html)

**スケジュールタイプ :** 定期的

**パラメータ :** なし

このコントロールAWS アカウントは、 で IAM Access Analyzer 外部アクセスアナライザーが有効になっているかどうかを確認します。現在選択されている AWS リージョン で外部アクセスアナライザーが有効になっていない場合、コントロールは失敗します。

IAM Access Analyzer 外部アクセスアナライザーは、外部エンティティと共有されている Amazon Simple Storage Service (Amazon S3) バケットや IAM ロールなどのリソースを識別するのに役立ちます。これは、リソースやデータへの意図しないアクセスを回避するのに役立ちます。IAM Access Analyzer はリージョン別であり、各リージョンで有効にする必要があります。外部プリンシパルと共有されているリソースを識別するために、アクセスアナライザーはロジックベースの推論を使用してAWS環境内のリソースベースのポリシーを分析します。外部アクセスアナライザー作成するときに、組織全体または個々のアカウントに対してアナライザーを作成して有効にすることができます。

**注記**  
アカウントが の組織の一部である場合AWS Organizations、このコントロールでは、組織を信頼ゾーンとして指定し、現在のリージョンの組織に対して有効になっている外部アクセスアナライザーは考慮されません。組織がこのタイプの設定を使用している場合は、リージョンの組織内の個々のメンバーアカウントに対してこのコントロールを無効にすることを検討してください。

### 修正
<a name="iam-28-remediation"></a>

特定のリージョンで外部アクセスアナライザーを有効にする方法については、「*IAM ユーザーガイド*」の「[IAM Access Analyzer の開始方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html)」を参照してください。アナライザーは、リソースへのアクセスをモニタリングするリージョンごとに有効にする必要があります。