| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| IAMUserにインラインポリシーが添付されていないことを確認してください。 | IAMユーザーには、インラインポリシーを関連付けてはいけません。 |
IAM |
IAMUser はポリシーを持つべきではありません。インライン長さ() > 0 |
| IAMUserにはアクティブなAPIキーが1つ以下であることを確認してください。 | IAMユーザーは複数のアクティブなAPIキーを持つべきではありません |
IAM |
IAMUser は [ Active eq true] のすべての AccessKey を持つべきではありません |
| 単一のIAMユーザーに対して、アクティブなアクセスキーが1つだけ存在するようにしてください。 | アクセス キーは、IAM ユーザーまたは AWS アカウントの「root」ユーザーの長期クレデンシャルです。 は AWS CLI または AWS API へのプログラムによるリクエストに署名するためのアクセスキーを使用できます (直接または AWS SDK を使用) |
IAM |
IAMUser は [ Active eq true] かつ AccessKey len() gt 1 のすべての AccessKey を持つべきではない |
| EC2Instance の未使用ロールが存在しないことを確認してください。 | EC2インスタンスに紐付けられていないIAMロールは存在すべきではありません。 |
IAM |
IAMRole には [ InstanceCount eq 0 ] の InstanceProfile があってはなりません |
| IAMの顧客管理ポリシーでは、すべてのKMSキーに対する復号化および再暗号化アクションを許可すべきではありません。 | IAM 顧客管理ポリシーのデフォルトバージョンで、プリンシパルがすべてのリソースで AWS KMS 復号化アクションを使用できるかどうかを確認します |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" ] であるステートメント ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| IAM リソース「*」を持つiam:PassRole権限がIAMエンティティにアタッチされています | iam:PassRole とリソース '*' を含む IAM ポリシーが、どの IAM エンティティ (ユーザー、ロール、グループ) にも関連付けられていないことを確認してください。このルールは、脆弱なポリシーがIAMエンティティに添付されていることを必須条件とすることで、通常のIAMコンプライアンスチェックから優先度の高い検出結果を明らかにする目的でNetskopeによって作成されました。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "iam:PassRole"] およびリソース [値が "*" ] ] および ( AttachedEntities ) を含むステートメント。グループの長さ ( ) > 0 または AttachedEntities。ロールの長さ()> 0 または AttachedEntities。ユーザー数()> 0) |
| IAMプリンシパルは、すべてのKMS鍵に対して復号および再暗号化操作を許可するIAM Groupのインラインポリシーを持つべきではありません | IAMグループに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMGroup には GroupPolicy があってはなりません。[ PolicyDocument を含む InlinePolicies 。[ Effect eq "Allow" and Action with [ value in ("kms:Decrypt", "kms:ReEncryptFrom") ] and Resource with [ value eq "*" ] ] ] というステートメント |
| IAMプリンシパルは、すべてのKMSキーに対する復号化および再暗号化アクションを許可するIAMロールインラインポリシーを持つべきではありません。 | IAMロールに組み込まれているインラインポリシーが、すべてのKMSキーに対するAWS KMS復号化および再暗号化アクションを許可しているかどうかを確認します。 |
IAM |
IAMRoleにはポリシーがあってはなりません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| IAMプリンシパルは、すべてのKMSキーに対して復号化および再暗号化アクションを許可するIAMユーザーインラインポリシーを持つべきではありません。 | IAMユーザーに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMUser はポリシーを持つべきではありません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| アクセス制御システムを確立する:Allow および NotActions を使用した IAM ポリシー | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMPolicy には権限があってはなりません。[ Effect eq "Allow" and ( NotAction len ( ) gt 0 or Action with [ value eq "*" ] ) ] および ( AttachedEntities ) を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| AdministratorAccess ポリシーを持っているユーザーがいないことを確認する | ユーザーが過剰な権限を持つ AdministratorAccess IAM ポリシーに紐付けられていないことを確認してください。 |
IAM |
IAMUser はポリシーを持つべきではありません。[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] ] またはポリシー。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] のステートメント |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションを「sts:AssumeRole」としてCrossAccountArnを設定する | IAM AssumeRole 用のアクセス制御システムを確立する クロスアカウント ARN を持ち、「sts:ExternalId」を指定する条件を持つ |
IAM |
AssumeRolePolicy が設定されている IAMRole。CrossAccountArn eq True には AssumeRolePolicy が必要です。ステートメント [ 条件 [ 条件が "StringEquals" かつ 名前が "sts:ExternalId" かつ 値 len() gt 0 ]] |
| あなたが作成したIAMの顧客管理ポリシーは、サービスに対してワイルドカードアクションを許可してはいけません | このコントロールは、IAM ID ベースの 作成する Allow ステートメントが ワイルドカード * を使用して、すべてのサービス上のすべてのアクションに対するアクセス許可を付与するかどうかを確認します。 |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" and ( NotAction with [ value like "\:\*$" ] or Action with [ value like "\:\*$" ] ) ] を含むステートメント |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| GuardDutyを有効にする必要があります | このコントロールは、お客様の GuardDuty アカウントおよびリージョンで Amazon GuardDuty が有効になっているかどうかを確認します。 |
GuardDuty |
GuardDutyDetector のステータスは「ENABLED」である必要があります |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| Lambda実行ロールにCloudWatchへのログ記録権限が付与されていることを確認してください。 | Lambda実行ロールにCloudWatchへのログ記録権限が付与されていることを確認してください。 |
Lambda |
LambdaにはIAMRoleが必要です。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogGroup" ] ] and PolicyDocument を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogStream" ] ] and PolicyDocument を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:PutLogEvents" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogGroup" ] ] and Permissions を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogStream" ] ] and Permissions を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:PutLogEvents" ] ] を含むステートメント |
| EBSスナップショットは暗号化されていることを確認してください。 | EBSスナップショットが暗号化されていることを確認してください。 |
EC2Instance |
スナップショットには暗号化が必要です |
| 未接続のEBSボリュームが削除されていることを確認してください。 | 未接続のEBSボリュームが削除されていることを確認してください。 |
EC2Instance |
ボリュームには添付ファイルの長さ()が0であってはなりません |
| EBSのデフォルト暗号化を有効にする必要があります | このコントロールは、Amazon Elastic Block Store(Amazon EBS)でアカウントレベルの暗号化がデフォルトで有効かどうかをチェックします |
EC2 |
ボリュームには EbsEncryptionByDefault が必要です |
| EC2インスタンスはAWS Systems Managerで管理する必要があります | このコントロールは、アカウント内の停止状態および実行状態のEC2インスタンスがAWS Systems Managerによって管理されているかどうかを確認します。Systems Manager は、AWS インフラストラクチャを表示および制御できる AWS サービスです。 |
EC2 |
EC2Instance は SSMInformation len() が 0 より大きい必要があります |
| Ensure Image Vulnerability Scanning 使う Amazon ECR 画像スキャンまたは第三者プロバイダーに依頼してください。 | Amazon EKSにデプロイされるイメージに脆弱性がないかスキャンする。 |
ECRRepository |
ECRRepository には ImageScanningConfiguration.ScanOnPush が必要です。 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| Lambda関数に管理者レベルの実行権限が付与されていないことを確認してください。 | Lambda関数に管理者レベルの実行権限がないことを確認してください。 |
Lambda |
Lambda には AdminPrivileges eq True があってはなりません |
| Lambda実行ロールにIAM管理者権限がないことを確認してください。 | Lambda実行ロールにIAM管理者権限がないことを確認してください。 |
Lambda |
Lambda には IAMRole を持たせるべきではありません。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "iam:*" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "iam:*" ] ] のステートメント |
| Lambda関数のポリシーでは、パブリックアクセスを禁止する必要があります。 | このコントロールは、Lambda 関数のリソースベースポリシーがアカウント外からのパブリックアクセスを禁止しているかどうかを確認します。 |
Lambda |
Lambda には ResourceBasedIAMPolicy を設定すべきではありません。[ Effect eq "Allow" かつ Principal with [ value eq "*"] ] を含むステートメント |
| 転送中のデータは保護されています: 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 | 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 |
Lambda |
Lambda where ( Environment len() > 0 ) should have KMSKey 。有効 |
| Lambda実行ロールに完全な管理者権限が付与されていないことを確認してください。 | Lambda実行ロールに完全な管理者権限が付与されていないことを確認してください。 |
Lambda |
Lambda には IAMRole を持たせるべきではありません。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] のステートメント |
| 接続されたEBSボリュームは、静止時には暗号化されるべきです | この制御は、接続状態にあるEBSボリュームが暗号化されているかどうかを確認します |
EC2 |
添付ファイル len () gt 0 が暗号化されているべきボリューム |
| EC2インスタンスはIMDSv2を使うべきです | このコントロールは、EC2インスタンスのメタデータバージョンがインスタンスメタデータサービスバージョン2(IMDSv2)で構成されているかどうかを確認します。 |
EC2 |
EC2Instance は MetadataOptions.HttpTokens が "required" である必要があります |
| ラムダ関数s3の呼び出しポリシーは、パブリックアクセスを禁止すべきです | このコントロールは、Lambda関数のリソースベースのs3呼出ポリシーがアカウント外への公開アクセスを禁止しているかどうかを確認します。また、Amazon S3からラムダ関数を呼び出し、ポリシーにAWS:SourceAccountの条件が含まれていない場合も制御が失敗します |
Lambda |
ResourceBasedIAMPolicy の Lambda 。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"]] は ResourceBasedIAMPolicy を持つ必要があります。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"] および条件 [ 名前が "AWS:SourceAccount" と等しく、値の長さが 0 より大きい ]] |
| EKSクラスターでログ記録が有効になっていることを確認してください。 | EKSクラスターでログ記録が有効になっていることを確認してください。 |
EKSCluster |
EKSClusterにはログ機能が必要です。ClusterLogging (タイプに「api」、「audit」、「authenticator」、「controllerManager」、「scheduler」があり、Enabledがtrueの場合) |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| インポートされたACM証明書は、指定された期間後に更新する必要があります。 | このチェック機能は、アカウント内のACM証明書が30日以内に有効期限切れとなるように設定されているかどうかを確認します。インポートされた証明書と、AWS Certificate Managerによって提供された証明書の両方をチェックします。 |
ACM |
ACMにはNotAfter isLaterThan(30, "日")という機能が必要です。 |
| SNSトピックに、すべてのプリンシパルに対するAddPermissionアクションを含むポリシーが含まれていないことを確認してください。 | SNSトピックには、すべてのプリンシパルに対して権限追加アクションのポリシーが許可されているべきではありません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:AddPermission" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| API Gateway REST APIのキャッシュデータは保存時に暗号化されるべきである | キャッシュが有効になっているAPI Gateway REST APIステージ内のすべてのメソッドが暗号化されているかどうかを確認します。API Gateway REST APIステージ内のいずれかのメソッドがキャッシュするように設定されており、かつそのキャッシュが暗号化されていない場合、制御は失敗します。 |
APIGateway |
APIGatewayには[MethodValueを含むMethodSettings]を持つStagesが必要です。CacheDataEncrypted ] ] |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| SQSキューポリシーにおいて、メッセージ削除アクションがすべてのプリンシパルに許可されていないことを確認してください。 | SQSキューポリシーは、すべてのプリンシパルに対してDeleteMessageアクションを許可してはいけません |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ (アクション [ 値が "(?i)SQS:DeleteMessage" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ Principal 値が "*" ] かつ条件の長さ ( ) が 0 ] ] |
| SNSトピックにすべてのプリンシパルに対して「トピック削除アクション」を含むポリシーが存在しないことを確認してください | SNSトピックには、すべてのプリンシパルに対して「トピック削除アクション」のポリシーが許可されているべきではありません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:DeleteTopic" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| 保存データは保護されています: DynamoDB テーブルが保存時に暗号化されていることを確認してください | DynamoDBテーブルが保存時に暗号化されていることを確認してください。 |
Dynamo |
DynamoDBTable には SSEDescription が必要です。ステータスが「有効」 |
| Elasticsearchドメインは、静止時暗号化を有効にするべきです | このコントロールは、Elasticsearchドメインで保存時の暗号化設定が有効になっているかどうかを確認します。保存時の暗号化が有効になっていない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomainにはEncryptionAtRestOptionsが必要です。有効 |
| Elasticsearchドメインへの接続は暗号化 使う TLS 1.2 | この制御は使う TLS 1.2 に Elasticsearch ドメインへの接続が必要かどうかをチェックします。 ElasticsearchドメインTLSSecurityPolicyがポリシー-Min-TLS-1-2-2-2019-07でない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomain には DomainEndpointOptions が必要です。TLSSecurityPolicy eq "ポリシー-Min-TLS-1-2-2-2019-07" |
| AWS KMSキーは意図せず削除されてはならない。 | この制御機能は、KMSキーが削除予定になっているかどうかを確認します。KMSキーは一度削除すると復元できません。KMSキーで暗号化されたデータは、KMSキーが削除された場合、永久に復元できなくなります。意味のあるデータが削除予定の KMS キーで暗号化されている場合は、意図的に暗号化消去を実行する場合を除き、データを復号化するか、新しい KMS キーでデータを再暗号化することを検討してください。 |
KMS |
KMSKey のステータスが「PendingDeletion」であってはなりません |
| RDSクラスターでは削除保護を有効にする必要があります | この制御機能は、RDSクラスターで削除保護が有効になっているかどうかを確認します。 |
RDSCluster |
RDSクラスターには削除保護が必要です |
| データアットレストは保護されています:RDS暗号化が有効であることを確認しましょう | RDS暗号化が有効であることを確認しましょう。 |
RDS |
RDSInstance は StorageEncrypted eq true である必要があります |
| RDS DBインスタンスでは削除保護を有効にする必要があります | このコントロールは、RDS DB インスタンスが リストされているデータベース エンジンのいずれかで削除保護が有効になっているかどうかを確認します。 |
RDS |
RDSInstanceには削除保護が必要です |
| RDS クラスターはデータベース エンジンのデフォルト ポートを使用すべきではありません | この制御は、RDSクラスターがデータベースエンジンのデフォルトポート以外のポートを持つかどうかを確認します |
RDS |
RDSCluster のポートは 3306 であってはなりません |
| 保存データは保護されています。RDSインスタンスのスナップショットが暗号化されていることを確認してください。 | RDSインスタンスのスナップショットは暗号化されていることを確認してください。 |
RDS |
RDSInstanceは、[ 暗号化 eq true] のスナップショットをすべて保持しているはずです |
| Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 | Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 |
RedShift |
RedShiftCluster の AutomatedSnapshotRetentionPeriod は 0 より大きい値である必要があります |
| SNS トピックは保存時に暗号化する必要がある AWS KMS を使用する | このコントロールは、SNS トピックが保存時に暗号化されているかどうかをチェックします。 AWS KMS |
SNS |
SNSTopic の KmsMasterKeyId の長さ () は 0 より大きい必要があります |
| Amazon SQSキューは静止時に暗号化されるべきです | このコントロールは、Amazon SQS キューが保存時に暗号化されているかどうかを確認します。 |
SQS |
SQSQueue には ( KmsMasterKeyId len ( ) gt 0 または SqsManagedSseEnabled ) が必要です |
| 脆弱性管理計画:Redshift Clusterで「バージョンアップグレードを許可する」が「はい」に設定されていることを確認してください。 | 重要なセキュリティアップデートを見逃さないように、Redshiftクラスターではバージョンアップグレードを有効にしておく必要があります。 |
Redshift |
RedShiftClusterにはAllowVersionUpgradeが必要です |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| CloudTrailのログがS3Bucketにエラーなく送信されることを確認してください。 | 指定されたS3バケットへのログ記録中にCloudTrailがエラーを検出した場合にアラートを発します。 |
S3 CloudTrail |
CloudTrail の LatestDeliveryError は "None" であるべきです |
| アクセス権限と承認: Redshift クラスターが一般公開されていないことを確認してください | Redshiftクラスターは一般公開されるべきではありません。 |
Redshift |
RedShiftCluster は Access が "Public" であってはなりません |
| CodeBuild プロジェクトの環境変数にはクリア テキストを含めないでください。 | このコントロールは、プロジェクトの環境変数にクリア テキストのクレデンシャルが含まれているかどうかをチェックします。 |
CodeBuild |
CodeBuild には Environment があってはなりません。[Type eq "PLAINTEXT" ] の環境変数 |
| S3バケットポリシーで削除アクションがすべてのプリンシパルに許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して削除アクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:Delete" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| AWS Database Migration Serviceのレプリケーションインスタンスは公開すべきではありません。 | このコントロールは、AWS DMSレプリケーションインスタンスがパブリックであるかどうかを確認します。 |
DMS |
DMSReplicationInstance には PubliclyAccessible があってはなりません |
| Elasticsearchドメインでは監査ログを有効にする必要があります | このコントロールは、Elasticsearchドメインで監査ログが有効になっているかどうかを確認します。Elasticsearchドメインで監査ログが有効になっていない場合、この制御は失敗します。 |
ElasticSearch |
ElasticSearchDomain には [ Name eq "AUDIT_LOGS" かつ Enabled および CloudWatchLogsLogGroup の LogPublishingOptions が必要です。id len( ) gt 0 ] |
| CloudTrailのログが保存されるS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。アクセス権限は「公開」に相当します。 |
| S3バケットポリシーですべてのプリンシパルにGet Actionが許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して「取得」アクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:GetObject" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| S3バケットポリシーでは、すべてのプリンシパルにリストアクションが許可されていないことを保証してください | S3バケットポリシーでは、すべてのプリンシパルにリストアクションが許可されているべきではありません |
S3 |
S3Bucket には、BucketPolicy が [ Statement with [ ( Action with [ value like "(?i)s3:ListBucket" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] であってはならない。 |
| S3バケットポリシーですべてのプリンシパルにManage Actionが許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して「管理」アクションの権限を付与すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ (Action with [ value like "(?i)s3:Put" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| CloudTrailのログバケットで多要素認証(MFA)が有効になっていることを確認してください。 | AWS CloudTrail のログバケットが 多要素認証 (MFA) の削除機能を有効にして、バージョン管理されたログファイルの削除を防止してください。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。バケットバージョン管理。MFADelete eq "Enabled" |
| Ensure Put Actionがすべてのプリンシパルに許可されていないことをS3バケットポリシーで確認してください | S3バケットポリシーでは、すべてのプリンシパルに対してPutアクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:PutObject" or value like "(?i)S3:\*" ]) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| RDSクラスターにはIAM認証を設定する必要があります。 | この制御機能は、RDS DB クラスターで IAM データベース認証が有効になっているかどうかを確認します。 |
RDSCluster |
RDSCluster には IAMDatabaseAuthenticationEnabled が必要です |
| RDSインスタンスにはIAM認証を設定する必要があります。 | このコントロールは、RDS DBインスタンスでIAMデータベース認証が有効になっているかどうかを確認します。 |
RDS |
RDSInstance には IAMDatabaseAuthenticationEnabled が必要です |
| データベースのログ記録を有効にする必要があります | このコントロールは、Amazon RDS のログが有効になっており、CloudWatch Logs に送信されているかどうかを確認します。 |
RDS |
RDSInstance には EnabledCloudwatchLogsExports len () gt 0 が必要です |
| RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 | RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 |
RDS |
RDSInstance の MonitoringInterval は 0 であってはなりません |
| 通信および制御ネットワークの保護:RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 | RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 |
RDS |
RDSInstance のアクセス権限は「Public」であってはなりません。 |
| アクセス権限と承認: RDSインスタンスに公開アクセス可能なスナップショットが存在しないことを確認してください。 | RDSインスタンスは、一般にアクセス可能なスナップショットを持つべきではありません。 |
RDS |
RDSInstance には [ PubliclyAccessible ] のスナップショットがあってはなりません |
| Amazon Redshiftクラスターが使うポート5439(デフォルトポート)でないか確認してください。 | Amazon Redshiftクラスターが使うポート5439(デフォルトポート)でないか確認してください。 |
RedShift |
RedShiftCluster のポート番号が 5439 であってはなりません |
| S3バケットが一般公開されていないことを確認してください。 | S3バケットが一般公開されていないことを確認してください。 |
S3 |
S3Bucket のアクセス権限は「公開」であってはなりません |
| S3バケットでMFA削除が有効になっていることを確認してください。 | 機密性の高いS3バケットでMFA削除が有効になると、ユーザーは2種類の認証方法が必要になります。 |
S3 |
S3BucketにはBucketVersioningが必要です。ステータスが「有効」かつ BucketVersioning です。MFADelete eq "Enabled" |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:S3バケットへのアクセスに関するログ記録の欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 |
S3BucketにはLoggingEnabledが必要です |
| SageMakerノートブックインスタンスは、インターネットに直接アクセスしてはいけません。 | このコントロールは、SageMakerノートブックインスタンスのインターネットへの直接アクセスが無効になっているかどうかを確認します。 |
Compute |
SageMakerNotebookInstance の DirectInternetAccess は "Disabled" である必要があります。 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| EC2インスタンスにAHSPポートが開いていないことを確認してください。 | EC2インスタンスのAhspポート4333は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 4333 and ToPort gte 4333) ) ] ] |
| アプリケーションロードバランサーは、すべてのHTTPリクエストをHTTPSにリダイレクトするように構成する必要があります。 | このコントロールは、アプリケーションロードバランサーのすべてのHTTPリスナーでHTTPからHTTPSへのリダイレクトが構成されているかどうかを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer where (Type eq "application" and Listeners with [ Protocol eq "HTTP" ]) should have Listeners with [ Protocol eq "HTTP" and DefaultActions with [ Type eq "redirect" and RedirectConfig .プロトコルが「HTTPS」で、RedirectConfig が該当します。ポートeq 443 ] ] |
| EC2インスタンスに代替HTTPポートが開いていないことを確認してください。 | EC2インスタンスの代替HTTPポート8888は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8888 and ToPort gte 8888) ) ] ] |
| APIゲートウェイはAWS WAF Web ACLと関連付けるべきです | API Gateway ステージが AWS WAF ウェブのアクセス制御リスト (ACL) を使用するかどうかを確認します。 コントロールがREST APIゲートウェイのステージに接続されていない場合、コントロールは失敗します。 |
APIGateway |
APIGatewayには、[WebAclArn len() gt 0] のステージが必要です |
| API Gateway REST APIステージは、バックエンド認証のために使う SSL 証明書を設定するように設定すべきです | このコントロールは、Amazon API Gateway REST API ステージに SSL 証明書が設定されているかどうかを確認します。バックエンドシステム これらの証明書を使用して、受信リクエストがAPIゲートウェイからのものであることを認証します。 |
APIGateway |
APIGatewayには[ ClientCertificateId len() gt 0 ]のステージが必要です |
| EC2インスタンスにCIFSポートが開いていないことを確認してください。 | EC2インスタンスのCIFSポート445は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 445 and ToPort gte 445) ) ] ] |
| EC2インスタンスにオープンなDNSポートがないことを確認してください。 | EC2インスタンスのDNSポート53は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "udp") and ( FromPort lte 53 and ToPort gte 53 ) ] ] |
| ドメイン転送ロックが有効になっていることを確認してください | ドメインをロックして、他のレジストラへの不正な移転を防止する。 |
Route53 |
Route53DomainにはTransferLockが必要です |
| EC2 インスタンスは複数の ENI を使用すべきではありません | このコントロールは、EC2インスタンスが 複数のElastic Network Interface(ENI)を持っているかどうかを確認します。 |
EC2 |
EC2Instance には NetworkInterfaces len ( ) lte 1 が必要です |
| EC2インスタンスでfcp-addr-srvr1ポートが開いていないことを確認してください。 | EC2インスタンスのfcp-addr-srvr1ポート5500は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5500 and ToPort gte 5500) ) ] ] |
| EC2インスタンスにFTPポートが開いていないことを確認してください。 | EC2インスタンスのFTPポート20と21は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 20 and ToPort gte 21) ) ] ] |
| EC2インスタンスでIMAPポートが開いていないことを確認してください。 | EC2インスタンスのIMAPポート143は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 143 and ToPort gte 143) ) ] ] |
| EC2インスタンスにレガシーHTTPポートが開いていないことを確認してください。 | EC2インスタンスのレガシーHTTPポート8088は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8088 and ToPort gte 8088) ) ] ] |
| EC2インスタンスでOpenSearch Dashboardsポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchダッシュボードのポート5601は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5601 and ToPort gte 5601) ) ] ] |
| EC2インスタンスでOpenSearchポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchポート9200または9300は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 9200 and ToPort gte 9200) or (FromPort lte 9300 and ToPort gte 9300) ) ] ] |
| EC2インスタンスでPOP3ポートが開いていないことを確認してください。 | EC2インスタンスのPOP3ポート110は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 110 and ToPort gte 110) ) ] ] |
| EC2インスタンスにプロキシポートが開いていないことを確認してください。 | EC2インスタンスのプロキシポート8080は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8080 and ToPort gte 8080) ) ] ] |
| EC2インスタンスにRPCポートが開いていないことを確認してください。 | EC2インスタンスのRPCポート135は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 135 and ToPort gte 135) ) ] ] |
| EC2インスタンスでSMTPポートが開いていないことを確認してください。 | EC2インスタンスのSMTPポート25は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 25 and ToPort gte 25) ) ] ] |
| EC2インスタンスにUDPポートが開いていないことを確認してください。 | EC2インスタンスのUDPポート22、80、443、1433、1521、3306、3389、5432、27017、27018、27019は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、次のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "udp") and ( ( FromPort lte 22 and ToPort gte 22) or ( FromPort lte 80 and ToPort gte 80) or ( FromPort lte 443 and ToPort gte 443) or ( FromPort lte 1433 and ToPort gte 1433) or ( FromPort lte 1521 and ToPort gte 1521) or ( FromPort lte 3306 and ToPort gte 3306) or ( FromPort lte 3389 and ToPort gte 3389) or ( FromPort lte 5432 and ToPort gte 5432) or ( FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| VPCフローログのレコードがCloudWatchロググループまたはAmazon S3バケットに正常に公開されていることを確認してください。 | VPCフローログのレコードがCloudWatchロググループまたはAmazon S3バケットに正常に公開されていることを確認してください。 |
EC2 |
Statusが「ACTIVE」のVPCFlowでは、DeliverLogsStatusが「SUCCESS」である必要があります。 |
| 使用されていないネットワークアクセス制御リストは削除する必要があります | この制御機能は、未使用のネットワークアクセス制御リスト(ACL)が存在するかどうかを確認します。 |
EC2 |
NetworkACL にはサブネット len() gt 0 が必要です |
| EC2インスタンスにOpenPython web開発フレームワークポートがないことを確認してください | Python ウェブ開発フレームワーク EC2 インスタンスのポート 5000 は公開しないでください。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5000 and ToPort gte 5000) ) ] ] |
| EC2インスタンスにOpenのGo、Node.js、Rubyのウェブ開発フレームワークポートがないことを確認してください | Go、Node.js、そしてRuby Web開発フレームワークのポート3000は、EC2インスタンスの公開されていません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 3000 and ToPort gte 3000) ) ] ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| API Gateway RESTおよびWebSocket APIのログ記録を有効にする必要があります。 | このコントロールは、Amazon API Gateway の REST API または WebSocket API のすべてのステージでログ記録が有効になっているかどうかを確認します。ステージのすべてのメソッドでログ記録が有効になっていない場合、またはloggingLevelがERRORでもINFOでもない場合、制御は失敗します。 |
APIGateway |
APIGateway where Stages len() gt 0 には、[ MethodSettings with [ MethodValue ] を持つ Stages が必要です。LoggingLevel in ("INFO", "ERROR") ] ] |
| 通信および制御ネットワークの保護: デフォルトのネットワーク ACL で、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。 |
EC2 |
NetworkACL は IsDefault eq true および Rules が [ RuleAction eq "allow" and Protocol eq "-1" and Egress eq False and CidrBlock eq 0.0.0.0/0 ] であってはなりません。 |
| EC2インスタンスに接続された、受信インターネットトラフィックが許可されたネットワークインターフェース | EC2インスタンスに、インターネットへの完全なパブリックアクセスが可能なネットワークインターフェースが接続されていないことを確認してください。このルールは、脆弱なインターフェースがインスタンスに接続されていることを要求することで、通常のネットワークインターフェースのコンプライアンスチェックから優先度の高い検出結果を明らかにする目的で、Netskopeによって作成されました。 |
EC2 |
NetworkInterface には、[ InboundRules with [ IPv6Ranges with [ IPv6 isPublic ( ) ] または IPRanges with [ IP isPublic ( ) ] ] ] および Attachment を含む SecurityGroups があってはなりません。インスタンスID |
| EKSクラスターは、プライベートエンドポイントを有効にし、パブリックアクセスを無効にして作成してください。 | 必要ない場合は、ノードネットワーク外部からのKubernetes APIへのアクセスを無効にしてください。 |
EKSCluster |
EKSClusterにはEndPointPrivateAccessが必要であり、EndPointPublicAccessは不要である。 |
| コントロールプレーンエンドポイントへのアクセスを制限する | Private Accessを有効にして、クラスターのコントロール プレーンへのアクセスを許可された IP の許可リストのみに制限します。 |
EKSCluster |
EKSCluster の EndPointPublicAccess には、[ CidrBlock eq 0.0.0.0/0] の PublicAccessCidrs があってはなりません。 |
| EC2インスタンスでMongoDBポートが開いていないことを確認してください。 | EC2インスタンスのMongoDBポート27017、27018、27019は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| EC2インスタンスでMySQLポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート3306は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 3306 and ToPort gte 3306) ) ] ] |
| EC2インスタンスでSQL Serverのポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート1433は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 1433 and ToPort gte 1434) ) ] ] |
| EC2インスタンスにNFSポートが開いていないことを確認してください。 | EC2インスタンスのNFSポート2049、111は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","udp","tcp") and ( (FromPort lte 2049 and ToPort gte 2049) or (FromPort lte 111 and ToPort gte 111)) ] ] |
| EC2インスタンスのデフォルトセキュリティグループにルールが含まれていることを確認してください。 | デフォルトのセキュリティグループに対して、空でないルールセットが存在してはならない。 |
EC2 |
[ Name eq "default" ] の SecurityGroups には [ InboundRules len ( ) neq 0 または OutboundRules len ( ) neq 0 ] の SecurityGroups があってはならない EC2Instance |
| EC2インスタンスでOracleDBポートが開いていないことを確認してください。 | EC2インスタンスのOracleDbポート1521は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 1521 and ToPort gte 1521) ) ] ] |
| EC2インスタンスでPostgreSQLポートが開いていないことを確認してください。 | EC2インスタンスのPostgreSQLポート5432は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5432 and ToPort gte 5432) ) ] ] |
| EC2インスタンスにRDPポートが開いていないことを確認してください。 | EC2インスタンスのRDPポート3389は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","udp","tcp") and ( (FromPort lte 3389 and ToPort gte 3389) ) ] ] |
| EC2 にアタッチされているセキュリティ グループが、0.0.0.0/0 からリモート サーバーの管理ポートへのイングレスを許可していないことを確認してください。 | セキュリティグループが、0.0.0.0/0 からリモートサーバー管理ポートおよび ec2 インスタンスへのイングレスを許可していないことを確認してください。このルールはNetskopeによって作成され、脆弱性のあるセキュリティグループをインスタンスに紐付けることを義務付けることで、通常のインバウンド接続コンプライアンスチェックからより高い優先度の発見を明らかにすることを目的としています。 |
ネットワーク |
セキュリティグループには、EC2インスタンスと、[ IP範囲が[ IP eq 0.0.0.0/0 ]かつ( (FromPort lte 22 and ToPort gte 22)または(FromPort lte 3389 and ToPort gte 3389) )] のインバウンドルールがあってはなりません。 |
| セキュリティグループが 0.0.0.0/0 からのイングレスを許可し、EC2 インスタンスにアタッチされています。 | 0.0.0.0/0 からのイングレスを許可するセキュリティグループが ec2 インスタンスにアタッチされていないことを確認してください。このルールはNetskopeによって作成され、脆弱性のあるセキュリティグループをインスタンスに紐付けることを義務付けることで、通常のインバウンド接続コンプライアンスチェックからより高い優先度の発見を明らかにすることを目的としています。 |
ネットワーク |
セキュリティグループには、EC2インスタンスと[IP範囲[IP eq 0.0.0.0/0]]を持つインバウンドルールがあってはなりません。 |
| EC2インスタンスでSSHポートが開いていないことを確認してください。 | EC2インスタンスのSSHポート22は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 22 and ToPort gte 22) ) ] ] |
| EC2サブネットはパブリックIPアドレスを自動的に割り当てるべきではない | このコントロールは、Amazon Virtual Private Cloud (Amazon VPC) サブネットにおけるパブリック IP の割り当てにおいて、MapPublicIpOnLaunch が FALSE に設定されているかどうかを確認します。フラグがFALSEに設定されている場合、制御は通過します。 |
EC2 |
サブネットには MapPublicIpOnLaunch を設定すべきではない |
| 通信および制御ネットワークの保護:サブネットに関連付けられたネットワークACLに、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。サブネットおよびVPCに関連付けられたネットワークACLは、すべての受信トラフィックを許可すべきではありません。 |
EC2 |
サブネットの長さが 0 を超える NetworkACL には、[ Egress eq False and RuleAction eq "allow" and Protocol eq "-1" and CidrBlock eq 0.0.0.0/0 ] のルールがあってはならない。 |
| EC2インスタンスに開いているTCPポートがないことを確認してください。 | EC2インスタンスのTCPポート22、80、443、1433、1521、3306、3389、5432、27017、27018、27019は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( ( FromPort lte 22 and ToPort gte 22) or ( FromPort lte 80 and ToPort gte 80) or ( FromPort lte 443 and ToPort gte 443) or ( FromPort lte 1433 and ToPort gte 1433) or ( FromPort lte 1521 and ToPort gte 1521) or ( FromPort lte 3306 and ToPort gte 3306) or ( FromPort lte 3389 and ToPort gte 3389) or ( FromPort lte 5432 and ToPort gte 5432) or ( FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| EC2インスタンスにTelnetポートが開いていないことを確認してください。 | EC2インスタンスのTelnetポート23は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 23 and ToPort gte 23) ) ] ] |
| AWS WAF Classic グローバル ウェブ ACL ログを有効にする必要があります | このコントロールは、AWS web Application Firewall(WAF)のクラシックグローバルウェブACLでログが有効かどうかをチェックします。 このルールは、ログが有効でない場合のグローバルWeb ACLに対してNON_COMPLIANTされます。 |
安全 |
WebACLにはLoggingConfigurationが必要です。LogDestinationConfigs len() gt 0 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| EC2インスタンスにオープンなDNSポートがないことを確認してください。 | EC2インスタンスのDNSポート53は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "udp") and ( FromPort lte 53 and ToPort gte 53 ) ] ] |
| EC2インスタンスでMongoDBポートが開いていないことを確認してください。 | EC2インスタンスのMongoDBポート27017、27018、27019は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| 通信および制御ネットワークの保護: デフォルトのネットワーク ACL で、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。 |
EC2 |
NetworkACL は IsDefault eq true および Rules が [ RuleAction eq "allow" and Protocol eq "-1" and Egress eq False and CidrBlock eq 0.0.0.0/0 ] であってはなりません。 |
| EC2インスタンスにNFSポートが開いていないことを確認してください。 | EC2インスタンスのNFSポート2049、111は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","udp","tcp") and ( (FromPort lte 2049 and ToPort gte 2049) or (FromPort lte 111 and ToPort gte 111)) ] ] |
| EC2インスタンスでSMTPポートが開いていないことを確認してください。 | EC2インスタンスのSMTPポート25は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 25 and ToPort gte 25) ) ] ] |
| 通信および制御ネットワークの保護:サブネットに関連付けられたネットワークACLに、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。サブネットおよびVPCに関連付けられたネットワークACLは、すべての受信トラフィックを許可すべきではありません。 |
EC2 |
サブネットの長さが 0 を超える NetworkACL には、[ Egress eq False and RuleAction eq "allow" and Protocol eq "-1" and CidrBlock eq 0.0.0.0/0 ] のルールがあってはならない。 |
| EC2インスタンスにUDPポートが開いていないことを確認してください。 | EC2インスタンスのUDPポート22、80、443、1433、1521、3306、3389、5432、27017、27018、27019は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、次のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "udp") and ( ( FromPort lte 22 and ToPort gte 22) or ( FromPort lte 80 and ToPort gte 80) or ( FromPort lte 443 and ToPort gte 443) or ( FromPort lte 1433 and ToPort gte 1433) or ( FromPort lte 1521 and ToPort gte 1521) or ( FromPort lte 3306 and ToPort gte 3306) or ( FromPort lte 3389 and ToPort gte 3389) or ( FromPort lte 5432 and ToPort gte 5432) or ( FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| SNSトピックに、すべてのプリンシパルに対するAddPermissionアクションを含むポリシーが含まれていないことを確認してください。 | SNSトピックには、すべてのプリンシパルに対して権限追加アクションのポリシーが許可されているべきではありません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:AddPermission" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| CloudWatchアラームに少なくとも1つのアクションがあることを確認してください。 | 各CloudWatchアラームには、少なくとも1つのアクションが必要です。 |
CloudWatch |
MetricAlarm には [SNSTopic ] を持つ AlarmActions が必要です。購読者数 len() > 0 ] |
| アクセス制御システムを確立する:Allow および NotActions を使用した IAM ポリシー | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMPolicy には権限があってはなりません。[ Effect eq "Allow" and ( NotAction len ( ) gt 0 or Action with [ value eq "*" ] ) ] および ( AttachedEntities ) を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| SQSキューポリシーですべてのプリンシパルにChangeMessageVisibilityアクションが許可されていないことを確認してください | SQSキューポリシーでは、ChangeMessageVisibilityアクションをすべてのプリンシパルに許可すべきではありません。 |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:ChangeMessageVisibility" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ プリンシパル [ 値が "*" ] かつ 条件の長さ ( ) が 0 ] ] |
| アクセス権限と承認: Redshift クラスターが一般公開されていないことを確認してください | Redshiftクラスターは一般公開されるべきではありません。 |
Redshift |
RedShiftCluster は Access が "Public" であってはなりません |
| S3バケットポリシーで削除アクションがすべてのプリンシパルに許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して削除アクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:Delete" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| SQSキューポリシーにおいて、メッセージ削除アクションがすべてのプリンシパルに許可されていないことを確認してください。 | SQSキューポリシーは、すべてのプリンシパルに対してDeleteMessageアクションを許可してはいけません |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ (アクション [ 値が "(?i)SQS:DeleteMessage" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ Principal 値が "*" ] かつ条件の長さ ( ) が 0 ] ] |
| SNSトピックにすべてのプリンシパルに対して「トピック削除アクション」を含むポリシーが存在しないことを確認してください | SNSトピックには、すべてのプリンシパルに対して「トピック削除アクション」のポリシーが許可されているべきではありません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:DeleteTopic" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| ドメインの自動更新が有効になっていることを確認してください。 | ドメインが常に稼働状態であることを保証するには、ドメインの自動更新を有効にしてください。 |
Route53 |
Route53Domain には AutoRenew が必要です |
| ドメイン転送ロックが有効になっていることを確認してください | ドメインをロックして、他のレジストラへの不正な移転を防止する。 |
Route53 |
Route53DomainにはTransferLockが必要です |
| S3バケットポリシーですべてのプリンシパルにGet Actionが許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して「取得」アクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:GetObject" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| SQSキューポリシーにおいて、すべてのプリンシパルに対して「キュー属性の取得」アクションが許可されていないことを確認してください。 | SQSキューポリシーはすべてのプリンシパルに対してGetQueueAttributeアクションを許可してはいけません |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:GetQueueAttributes" または値が "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ プリンシパル [ 値が "*" ] かつ 条件の長さ ( ) が 0 ] ] |
| SQSキューポリシーですべてのプリンシパルに「Get Queue URL Action」が許可されていないことを確認してください | SQSキューポリシーは、すべてのプリンシパルに対してGetQueueURLアクションを許可すべきではありません |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:GetQueueUrl" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" であり、プリンシパルが [ 値が "*" ] かつ 条件の長さ ( ) が 0 ] ] |
| Elastic Load Balancerで削除保護が有効になっていることを確認してください。 | ロードバランサーで削除保護を有効にすることで、誤削除のリスクを軽減できます。 |
ElasticLoadBalancer |
ElasticLoadBalancerには削除保護機能が必要です |
| S3バケットポリシーでは、すべてのプリンシパルにリストアクションが許可されていないことを保証してください | S3バケットポリシーでは、すべてのプリンシパルにリストアクションが許可されているべきではありません |
S3 |
S3Bucket には、BucketPolicy が [ Statement with [ ( Action with [ value like "(?i)s3:ListBucket" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] であってはならない。 |
| S3バケットポリシーですべてのプリンシパルにManage Actionが許可されていないことを確認してください | S3バケットポリシーでは、すべてのプリンシパルに対して「管理」アクションの権限を付与すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ (Action with [ value like "(?i)s3:Put" or value like "(?i)S3:\*" ] ) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| EC2インスタンスのデフォルトセキュリティグループにルールが含まれていることを確認してください。 | デフォルトのセキュリティグループに対して、空でないルールセットが存在してはならない。 |
EC2 |
[ Name eq "default" ] の SecurityGroups には [ InboundRules len ( ) neq 0 または OutboundRules len ( ) neq 0 ] の SecurityGroups があってはならない EC2Instance |
| 転送中のデータは保護されます: 古い SSL/TLS ポリシーが Elastic Load Balancer で使用されないようにします | 古い SSL/TLS ポリシーを Elastic Load Balancer セキュリティ ポリシーと一緒に使用しないでください。 |
ElasticLoadBalancer |
ElasticLoadBalancer には、( "ELBSecurityPolicy-2016-08", "ELBSecurityPolicy-TLS-1-2-2017-01", "ELBSecurityPolicy-TLS-1-1-2017-01" ) の SslPolicy が含まれている必要があります。 |
| アクセス権限と承認: RDSインスタンスに公開アクセス可能なスナップショットが存在しないことを確認してください。 | RDSインスタンスは、一般にアクセス可能なスナップショットを持つべきではありません。 |
RDS |
RDSInstance には [ PubliclyAccessible ] のスナップショットがあってはなりません |
| SNSトピックに、すべてのプリンシパルへの公開アクションを含むポリシーが設定されていないことを確認してください。 | SNSトピックには、すべてのプリンシパルに公開アクションが承認されたポリシーを設定すべきではありません。 |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:Publish" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| SQSキューポリシーでパージキューアクションがすべてのプリンシパルに許可されていないことを確認してください | SQSキューはすべてのプリンシパルに対してパージキューアクション付きのポリシーを許可してはいけません |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:PurgeQueue" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ プリンシパル [ 値が "*" ] かつ 条件の長さ ( ) が 0 ] ] |
| Ensure Put Actionがすべてのプリンシパルに許可されていないことをS3バケットポリシーで確認してください | S3バケットポリシーでは、すべてのプリンシパルに対してPutアクションを許可すべきではありません。 |
S3 |
S3Bucket には、BucketPolicy に [ Statement with [ ( Action with [ value like "(?i)s3:PutObject" or value like "(?i)S3:\*" ]) and Effect eq "Allow" and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] ] が付与されていてはならない。 |
| SNSトピックに、すべてのプリンシパルに対してアクションを受け取るポリシーが含まれていないことを確認してください。 | SNSトピックはすべてのプリンシパルに対して「Receive Action」ポリシーを許可してはいけません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:Receive" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| SQSキューポリシーにおいて、すべてのプリンシパルに対してReceiveMessageアクションが許可されていないことを確認してください。 | SQSキューポリシーでは、すべてのプリンシパルに対してReceiveMessageアクションを許可すべきではありません。 |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:ReceiveMessage" または "(?i)SQS:\*" ] ) で、効果が "Allow" で、プリンシパルが [ 値が "*" ] で、条件の長さ ( ) が 0 ] ] |
| SNSトピックに、すべてのプリンシパルに対する「アクセス許可の削除」アクションを含むポリシーが設定されていないことを確認してください。 | SNSトピックには、すべてのプリンシパルに権限削除アクションのポリシーを許可してはいけません |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:RemovePermission" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| ロールがCloudFormationスタックに渡されないようにしてください。 | CloudFormationスタックにロールを渡すと、CloudFormationスコープ内で権限を持つIAMユーザーがスタックのロールの権限を暗黙的に継承するため、権限昇格が発生する可能性があります。 |
CloudFormation |
ステータスが「CREATE_COMPLETE」、「UPDATE_COMPLETE」であるCloudFormationでは、StackRoleを持つべきではありません。ID |
| SES の SendEmail アクションがすべてのプリンシパルに許可されていないことを確認してください すべてのプリンシパルに許可されていないことを確認してください | SESはすべてのプリンシパルに権限を持つSendEmailのようなアクションポリシーを持たないべきです |
SES |
SESIdentity には、ポリシー [ ステートメント [ Effect eq "Allow" かつ ( Action ( value like "(?i)ses:SendEmail" or value like "(?i)ses:SendRawEmail" or value like "(?i)ses:\*" ] ) および Principal [ value eq "*" ] および Conditions len ( ) eq 0 ] ] が含まれてはいけません。 |
| SQSキューポリシーですべてのプリンシパルにSendMessageアクションが許可されていないことを確認してください | SQSキューポリシーでは、SendMessageアクションをすべてのプリンシパルに許可すべきではありません。 |
SQS |
SQSQueue には、次の SQSPolicy があってはなりません。[ ステートメント [ ( アクション [ 値が "(?i)SQS:SendMessage" または "(?i)SQS:\*" ] ) かつ 効果が "Allow" かつ プリンシパル [ 値が "*" ] かつ 条件の長さ ( ) が 0 ] ] |
| SNSトピックにすべてのプリンシパルに対してSet Topic Attribute Actionを含むポリシーが存在しないことを確認してください | SNSトピックには、すべてのプリンシパルに対して「トピック属性アクションの設定」権限が付与されたポリシーを設定すべきではありません。 |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:SetTopicAttributes" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| 情報のバックアップ:バックアップ保持期間が30日以上であることを確認してください。 | RDSインスタンスのバックアップ保持期間を30日以上の値に設定することで、データの安全性が確保されます。 |
RDS |
RDSInstance の BackupRetentionPeriod は 30 未満であってはなりません |
| SNSトピックにすべてのプリンシパルに「サブスクライブアクション」を含むポリシーがないことを確認してください | SNSトピックには、すべてのプリンシパルに購読アクションが許可されているポリシーを設定すべきではありません。 |
SNS |
SNSTopicはポリシーを持たないべきではありません。[ Effect eq "Allow" and ( Action with [ value like "(?i)SNS:Subscribe" or value like "(?i)SNS:\*" ] ) and Principal with [ value eq "*" ] and Conditions len ( ) eq 0 ] という条件を含むステートメント |
| EC2Instance の未使用ロールが存在しないことを確認してください。 | EC2インスタンスに紐付けられていないIAMロールは存在すべきではありません。 |
IAM |
IAMRole には [ InstanceCount eq 0 ] の InstanceProfile があってはなりません |
| IAMUserにインラインポリシーが添付されていないことを確認してください。 | IAMユーザーには、インラインポリシーを関連付けてはいけません。 |
IAM |
IAMUser はポリシーを持つべきではありません。インライン長さ() > 0 |
| IAMUserにはアクティブなAPIキーが1つ以下であることを確認してください。 | IAMユーザーは複数のアクティブなAPIキーを持つべきではありません |
IAM |
IAMUser は [ Active eq true] のすべての AccessKey を持つべきではありません |
| 脆弱性管理計画:Redshift Clusterで「バージョンアップグレードを許可する」が「はい」に設定されていることを確認してください。 | 重要なセキュリティアップデートを見逃さないように、Redshiftクラスターではバージョンアップグレードを有効にしておく必要があります。 |
Redshift |
RedShiftClusterにはAllowVersionUpgradeが必要です |
| EC2インスタンスでMySQLポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート3306は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 3306 and ToPort gte 3306) ) ] ] |
| EC2インスタンスでSQL Serverのポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート1433は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 1433 and ToPort gte 1434) ) ] ] |
| EC2インスタンスでOracleDBポートが開いていないことを確認してください。 | EC2インスタンスのOracleDbポート1521は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 1521 and ToPort gte 1521) ) ] ] |
| EC2インスタンスでPostgreSQLポートが開いていないことを確認してください。 | EC2インスタンスのPostgreSQLポート5432は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5432 and ToPort gte 5432) ) ] ] |
| EC2インスタンスにRDPポートが開いていないことを確認してください。 | EC2インスタンスのRDPポート3389は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","udp","tcp") and ( (FromPort lte 3389 and ToPort gte 3389) ) ] ] |
| EC2インスタンスでSSHポートが開いていないことを確認してください。 | EC2インスタンスのSSHポート22は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 22 and ToPort gte 22) ) ] ] |
| データアットレストは保護されています:RDS暗号化が有効であることを確認しましょう | RDS暗号化が有効であることを確認しましょう。 |
RDS |
RDSInstance は StorageEncrypted eq true である必要があります |
| 通信および制御ネットワークの保護:RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 | RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 |
RDS |
RDSInstance のアクセス権限は「Public」であってはなりません。 |
| RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 | RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 |
RDS |
RDSInstance の MonitoringInterval は 0 であってはなりません |
| 保存データは保護されています。RDSインスタンスのスナップショットが暗号化されていることを確認してください。 | RDSインスタンスのスナップショットは暗号化されていることを確認してください。 |
RDS |
RDSInstanceは、[ 暗号化 eq true] のスナップショットをすべて保持しているはずです |
| 情報のバックアップ:DynamoDBテーブルのバックアップを確実に行う | DynamoDBテーブルのバックアップが確実に行われていることを確認してください。 |
Dynamo |
DynamoDBTable には BackedUp が true である必要があります |
| 情報のバックアップ:DynamoDB テーブルで特定時点への復元が有効になっていることを確認してください。 | DynamoDBテーブルで特定時点への復旧が有効になっていることを確認してください。 |
Dynamo |
DynamoDBTable には PointInTimeRecovery が "ENABLED" である必要があります |
| 保存データは保護されています: DynamoDB テーブルが保存時に暗号化されていることを確認してください | DynamoDBテーブルが保存時に暗号化されていることを確認してください。 |
Dynamo |
DynamoDBTable には SSEDescription が必要です。ステータスが「有効」 |
| Amazon Redshiftクラスターが仮想プライベートクラウド(VPC)内で起動されていることを確認してください。 | Amazon Redshiftクラスターが仮想プライベートクラウド(VPC)内で起動されていることを確認してください。 |
RedShift |
RedShiftCluster の VPC の長さ ( ) は 0 より大きい必要があります |
| Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 | Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 |
RedShift |
RedShiftCluster の AutomatedSnapshotRetentionPeriod は 0 より大きい値である必要があります |
| Amazon Redshiftクラスターが使うポート5439(デフォルトポート)でないか確認してください。 | Amazon Redshiftクラスターが使うポート5439(デフォルトポート)でないか確認してください。 |
RedShift |
RedShiftCluster のポート番号が 5439 であってはなりません |
| 転送中のデータは保護されています: 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 | 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 |
Lambda |
Lambda where ( Environment len() > 0 ) should have KMSKey 。有効 |
| Lambda関数に管理者レベルの実行権限が付与されていないことを確認してください。 | Lambda関数に管理者レベルの実行権限がないことを確認してください。 |
Lambda |
Lambda には AdminPrivileges eq True があってはなりません |
| EKSクラスターでログ記録が有効になっていることを確認してください。 | EKSクラスターでログ記録が有効になっていることを確認してください。 |
EKSCluster |
EKSClusterにはログ機能が必要です。ClusterLogging (タイプに「api」、「audit」、「authenticator」、「controllerManager」、「scheduler」があり、Enabledがtrueの場合) |
| 未接続のEBSボリュームが削除されていることを確認してください。 | 未接続のEBSボリュームが削除されていることを確認してください。 |
EC2Instance |
ボリュームには添付ファイルの長さ()が0であってはなりません |
| EBSスナップショットは暗号化されていることを確認してください。 | EBSスナップショットが暗号化されていることを確認してください。 |
EC2Instance |
スナップショットには暗号化が必要です |
| Lambda関数には必ず関連付けられたタグが付いていることを確認してください。 | Lambda関数には必ず関連付けられたタグが付いていることを確認してください。 |
Lambda |
ラムダにはタグ len() eq 0 があってはなりません |
| Lambda実行ロールにCloudWatchへのログ記録権限が付与されていることを確認してください。 | Lambda実行ロールにCloudWatchへのログ記録権限が付与されていることを確認してください。 |
Lambda |
LambdaにはIAMRoleが必要です。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogGroup" ] ] and PolicyDocument を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogStream" ] ] and PolicyDocument を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:PutLogEvents" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogGroup" ] ] and Permissions を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:CreateLogStream" ] ] and Permissions を含むステートメント。[ Effect eq "Allow" and Resource len ( ) gt 0 and Action with [ value eq "logs:PutLogEvents" ] ] を含むステートメント |
| Lambda実行ロールにIAM管理者権限がないことを確認してください。 | Lambda実行ロールにIAM管理者権限がないことを確認してください。 |
Lambda |
Lambda には IAMRole を持たせるべきではありません。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "iam:*" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "iam:*" ] ] のステートメント |
| Lambda実行ロールに完全な管理者権限が付与されていないことを確認してください。 | Lambda実行ロールに完全な管理者権限が付与されていないことを確認してください。 |
Lambda |
Lambda には IAMRole を持たせるべきではありません。ポリシー .[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] ] または IAMRole を含むステートメント。ポリシー .[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] のステートメント |
| CloudTrailのログがS3Bucketにエラーなく送信されることを確認してください。 | 指定されたS3バケットへのログ記録中にCloudTrailがエラーを検出した場合にアラートを発します。 |
S3 CloudTrail |
CloudTrail の LatestDeliveryError は "None" であるべきです |
| CloudTrailがSNS通知をエラーなく送信することを確認してください。 | CloudTrailがSNS通知の送信を試みた際にエラーが発生した場合は、アラートを発信します。 |
SNS CloudTrail |
CloudTrail の LatestNotificationError は "None" であるべきです |
| CloudTrailのログバケットで多要素認証(MFA)が有効になっていることを確認してください。 | AWS CloudTrail のログバケットが 多要素認証 (MFA) の削除機能を有効にして、バージョン管理されたログファイルの削除を防止してください。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。バケットバージョン管理。MFADelete eq "Enabled" |
| VPCフローログのレコードがCloudWatchロググループまたはAmazon S3バケットに正常に公開されていることを確認してください。 | VPCフローログのレコードがCloudWatchロググループまたはAmazon S3バケットに正常に公開されていることを確認してください。 |
EC2 |
Statusが「ACTIVE」のVPCFlowでは、DeliverLogsStatusが「SUCCESS」である必要があります。 |
| S3バケットが一般公開されていないことを確認してください。 | S3バケットが一般公開されていないことを確認してください。 |
S3 |
S3Bucket のアクセス権限は「公開」であってはなりません |
| AdministratorAccess ポリシーを持っているユーザーがいないことを確認する | ユーザーが過剰な権限を持つ AdministratorAccess IAM ポリシーに紐付けられていないことを確認してください。 |
IAM |
IAMUser はポリシーを持つべきではありません。[権限で管理されています。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] ] またはポリシー。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Resource が [ value eq "*" ] かつ Action が [ value eq "*" ] ] のステートメント |
| EC2インスタンスに開いているTCPポートがないことを確認してください。 | EC2インスタンスのTCPポート22、80、443、1433、1521、3306、3389、5432、27017、27018、27019は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( ( FromPort lte 22 and ToPort gte 22) or ( FromPort lte 80 and ToPort gte 80) or ( FromPort lte 443 and ToPort gte 443) or ( FromPort lte 1433 and ToPort gte 1433) or ( FromPort lte 1521 and ToPort gte 1521) or ( FromPort lte 3306 and ToPort gte 3306) or ( FromPort lte 3389 and ToPort gte 3389) or ( FromPort lte 5432 and ToPort gte 5432) or ( FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションを「sts:AssumeRole」としてCrossAccountArnを設定する | IAM AssumeRole 用のアクセス制御システムを確立する クロスアカウント ARN を持ち、「sts:ExternalId」を指定する条件を持つ |
IAM |
AssumeRolePolicy が設定されている IAMRole。CrossAccountArn eq True には AssumeRolePolicy が必要です。ステートメント [ 条件 [ 条件が "StringEquals" かつ 名前が "sts:ExternalId" かつ 値 len() gt 0 ]] |
| Ensure Image Vulnerability Scanning 使う Amazon ECR 画像スキャンまたは第三者プロバイダーに依頼してください。 | Amazon EKSにデプロイされるイメージに脆弱性がないかスキャンする。 |
ECRRepository |
ECRRepository には ImageScanningConfiguration.ScanOnPush が必要です。 |
| Kubernetes シークレットが暗号化され、AWS KMS で管理されるカスタマー マスター キー (CMK) であることを確認します。 | etcd に保存されている Kubernetes シークレットの暗号化は、Amazon EKS クラスターの作成中にシークレット暗号化機能を使用します。 |
EKSCluster |
EKSCluster の EncryptionConfig len() は 0 より大きい必要があります |
| コントロールプレーンエンドポイントへのアクセスを制限する | Private Accessを有効にして、クラスターのコントロール プレーンへのアクセスを許可された IP の許可リストのみに制限します。 |
EKSCluster |
EKSCluster の EndPointPublicAccess には、[ CidrBlock eq 0.0.0.0/0] の PublicAccessCidrs があってはなりません。 |
| EKSクラスターは、プライベートエンドポイントを有効にし、パブリックアクセスを無効にして作成してください。 | 必要ない場合は、ノードネットワーク外部からのKubernetes APIへのアクセスを無効にしてください。 |
EKSCluster |
EKSClusterにはEndPointPrivateAccessが必要であり、EndPointPublicAccessは不要である。 |
| 信頼できないワークロードを実行する場合は、Fargateを検討してください。 | マルチテナント環境で実行する場合、信頼できないワークロードを制限または隔離することがベストプラクティスです。 |
EKSCluster |
EKSCluster の FargateProfileNames len() が 0 であってはならない |
| Amazon Redshift クラスターは拡張 VPC ルーティングを使用する必要があります | このコントロールは、Amazon Redshift クラスターで EnhancedVpcRouting が有効になっているかどうかを確認します。 |
RedShift |
RedShiftClusterにはEnhancedVpcRoutingが必要です |
| Amazon EBSのスナップショットは公開すべきではない。これは、誰でも復元できるかどうかによって決まる。 | この制御機能は、Amazon Elastic Block Store のスナップショットが誰でも復元できる状態ではないことを確認します。EBSスナップショットは 特定の時点のEBSボリューム上のデータをAmazon S3にバックアップするためのものです。 スナップショットを使用して、EBSボリュームの以前の状態を復元できます。 写真を一般公開することは、めったに許容されない。通常、スナップショットを公に共有するという決定は、誤って行われたか、あるいはその影響を十分に理解しないまま行われた。このチェックは、そのような情報共有がすべて完全に計画され、意図的なものであったことを確認するのに役立ちます。 |
EC2 |
スナップショットには「公開」以外のアクセス権限が必要です |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 接続されたEBSボリュームは、静止時には暗号化されるべきです | この制御は、接続状態にあるEBSボリュームが暗号化されているかどうかを確認します |
EC2 |
添付ファイル len () gt 0 が暗号化されているべきボリューム |
| 停止したEC2インスタンスは、指定された期間後に削除する必要があります。 | この制御機能は、EC2インスタンスが許容日数を超えて停止されていないかどうかを確認します。EC2インスタンスは、デフォルトで最大許容期間である30日を超えて停止されている場合、このチェックに失敗します。 |
EC2 |
Statusが「stopped」であるEC2Instanceは、StateTransitionTimeが-30日後である必要がある。 |
| EBSのデフォルト暗号化を有効にする必要があります | このコントロールは、Amazon Elastic Block Store(Amazon EBS)でアカウントレベルの暗号化がデフォルトで有効かどうかをチェックします |
EC2 |
ボリュームには EbsEncryptionByDefault が必要です |
| EC2インスタンスはIMDSv2を使うべきです | このコントロールは、EC2インスタンスのメタデータバージョンがインスタンスメタデータサービスバージョン2(IMDSv2)で構成されているかどうかを確認します。 |
EC2 |
EC2Instance は MetadataOptions.HttpTokens が "required" である必要があります |
| EC2インスタンスにはパブリックIPアドレスを割り当てるべきではありません。 | このルールは、EC2インスタンスにパブリックIPアドレスが割り当てられているかどうかを確認します。EC2インスタンスの設定項目にpublicIpフィールドが存在する場合、このルールは失敗します。このルールはIPv4アドレスにのみ適用されます。 |
EC2 |
EC2Instance の PublicIPv4 len() は 0 を超えてはならない |
| Amazon EC2は、Amazon EC2サービス用に作成された使うVPC エンドポイントを設定するべきです | このコントロールは、各VPCに対してAmazon EC2のサービスエンドポイントが作成されているかどうかを確認します。 |
EC2 |
VPCには[ServiceNameは"\.ec2$"のような]EndpointRefが必要です |
| EC2サブネットはパブリックIPアドレスを自動的に割り当てるべきではない | このコントロールは、Amazon Virtual Private Cloud (Amazon VPC) サブネットにおけるパブリック IP の割り当てにおいて、MapPublicIpOnLaunch が FALSE に設定されているかどうかを確認します。フラグがFALSEに設定されている場合、制御は通過します。 |
EC2 |
サブネットには MapPublicIpOnLaunch を設定すべきではない |
| 使用されていないネットワークアクセス制御リストは削除する必要があります | この制御機能は、未使用のネットワークアクセス制御リスト(ACL)が存在するかどうかを確認します。 |
EC2 |
NetworkACL にはサブネット len() gt 0 が必要です |
| EC2 インスタンスは複数の ENI を使用すべきではありません | このコントロールは、EC2インスタンスが 複数のElastic Network Interface(ENI)を持っているかどうかを確認します。 |
EC2 |
EC2Instance には NetworkInterfaces len ( ) lte 1 が必要です |
| RDS DBインスタンスでは削除保護を有効にする必要があります | このコントロールは、RDS DB インスタンスが リストされているデータベース エンジンのいずれかで削除保護が有効になっているかどうかを確認します。 |
RDS |
RDSInstanceには削除保護が必要です |
| データベースのログ記録を有効にする必要があります | このコントロールは、Amazon RDS のログが有効になっており、CloudWatch Logs に送信されているかどうかを確認します。 |
RDS |
RDSInstance には EnabledCloudwatchLogsExports len () gt 0 が必要です |
| RDSインスタンスにはIAM認証を設定する必要があります。 | このコントロールは、RDS DBインスタンスでIAMデータベース認証が有効になっているかどうかを確認します。 |
RDS |
RDSInstance には IAMDatabaseAuthenticationEnabled が必要です |
| 重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。RDSインスタンスのマイナーバージョン自動アップグレードは無効になっています | 該当するAWS RDSInstanceのセキュリティパッチをインストールすることにより、すべてのシステムコンポーネントとソフトウェアが既知の脆弱性から保護されていることを確認してください。重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。 |
RDS |
RDSInstance は AutoMinorVersionUpgrade eq true である必要があります |
| Amazon Auroraクラスターではバックトラッキングを有効にする必要があります | このコントロールは、Amazon Aurora クラスターでバックトラッキングが有効になっているかどうかを確認します。 |
RDS |
Engineが「aurora-mysql」であるRDSClusterは、BacktrackWindowが0より大きい値を持つべきである。 |
| RDS DB クラスターは、タグをスナップショットにコピーするように構成する必要があります。 | このコントロールは、RDS DB クラスターがスナップショット作成時にすべてのタグをスナップショットにコピーするように構成されているかどうかを確認します。 |
RDS |
RDSClusterにはCopyTagsToSnapshotが必要です |
| RDS DBインスタンスは、タグをスナップショットにコピーするように構成する必要があります。 | このコントロールは、スナップショット作成時にすべてのタグをスナップショットにコピーするようにRDS DBインスタンスが構成されているかどうかを確認します。 |
RDS |
RDSInstance には CopyTagsToSnapshot が必要です |
| 重要なクラスタイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、メンテナンス、障害イベントカテゴリを持つDBClusterソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-cluster" and (EventCategoriesList has ("maintenance") and EventCategoriesList has ("failure")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースインスタンスイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、メンテナンス、構成変更、障害イベントカテゴリを持つDBInstanceソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-instance" and (EventCategoriesList has ("maintenance") and EventCategoriesList has ("failure") and EventCategoriesList has("configuration change")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースパラメータグループイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、構成変更イベントカテゴリを持つDBParameterGroupソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-parameter-group" and EventCategoriesList has("configuration change") and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースセキュリティグループイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、構成変更失敗イベントカテゴリを持つDBSecurityGroupソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-security-group" and (EventCategoriesList has ("failure") and EventCategoriesList has("configuration change")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| RDS クラスターはデータベース エンジンのデフォルト ポートを使用すべきではありません | この制御は、RDSクラスターがデータベースエンジンのデフォルトポート以外のポートを持つかどうかを確認します |
RDS |
RDSCluster のポートは 3306 であってはなりません |
| クラシックロードバランサーのリスナーは、HTTPSまたはTLS終端で構成する必要があります。 | このコントロールは、クラシックロードバランサーのリスナーが、フロントエンド(クライアントからロードバランサー)接続にHTTPSまたはTLSプロトコルを使用するように構成されているかどうかを確認します。 |
ElasticLoadBalancer |
ClassicLoadBalancer where ( ListenerDescriptions len () gt 0 ) には [ Listener . の ListenerDescriptions が必要です。プロトコル("HTTPS", "SSL") ] |
| アプリケーションロードバランサーは、HTTPヘッダーを破棄するように設定する必要があります。 | この制御機能は、AWSアプリケーションロードバランサーを評価し、無効なHTTPヘッダーを破棄するように設定されていることを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer のタイプが "application" の場合、RoutingHttpDropInvalidHeaderFieldsEnabled が True である必要があります。 |
| アプリケーションロードバランサーのログ記録を有効にする必要があります | このコントロールは、アプリケーションロードバランサーでログ記録が有効になっているかどうかを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer のタイプが "application" の場合、AccessLogsEnabled が True である必要があります。 |
| クラシックロードバランサーのログ記録を有効にする必要があります | このルールは、クラシックロードバランサーでログ記録が有効になっているかどうかを確認します。 |
ElasticLoadBalancer |
ClassicLoadBalancer には属性が必要です。アクセスログ。有効 |
| 従来のロードバランサーでは、接続ドレインを有効にする必要があります。 | このルールは、クラシックロードバランサーで接続ドレインが有効になっているかどうかを確認します。クラシックロードバランサーでコネクションドレインを有効にすると、ロードバランサーは登録解除中のインスタンスや異常な状態のインスタンスへのリクエスト送信を停止します。既存の接続を維持します。これは、オートスケーリンググループ内のインスタンスにおいて、接続が突然切断されないようにするために特に役立ちます。 |
ElasticLoadBalancer |
ClassicLoadBalancer には属性が必要です。接続を切断しています。有効 |
| アプリケーションロードバランサーは、すべてのHTTPリクエストをHTTPSにリダイレクトするように構成する必要があります。 | このコントロールは、アプリケーションロードバランサーのすべてのHTTPリスナーでHTTPからHTTPSへのリダイレクトが構成されているかどうかを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer where (Type eq "application" and Listeners with [ Protocol eq "HTTP" ]) should have Listeners with [ Protocol eq "HTTP" and DefaultActions with [ Type eq "redirect" and RedirectConfig .プロトコルが「HTTPS」で、RedirectConfig が該当します。ポートeq 443 ] ] |
| CodeBuild GitHub または Bitbucket ソース リポジトリ URL は OAuth を使用する必要があります | このコントロールは、GitHubまたはBitbucketのソースリポジトリのURLに個人アクセストークンまたはユーザー名とパスワードが含まれているかどうかを確認します。 |
CodeBuild |
SourceCredential の AuthType は "OAUTH" である必要があります |
| CodeBuild プロジェクトの環境変数にはクリア テキストを含めないでください。 | このコントロールは、プロジェクトの環境変数にクリア テキストのクレデンシャルが含まれているかどうかをチェックします。 |
CodeBuild |
CodeBuild には Environment があってはなりません。[Type eq "PLAINTEXT" ] の環境変数 |
| AWS Database Migration Serviceのレプリケーションインスタンスは公開すべきではありません。 | このコントロールは、AWS DMSレプリケーションインスタンスがパブリックであるかどうかを確認します。 |
DMS |
DMSReplicationInstance には PubliclyAccessible があってはなりません |
| あなたが作成したIAMの顧客管理ポリシーは、サービスに対してワイルドカードアクションを許可してはいけません | このコントロールは、IAM ID ベースの 作成する Allow ステートメントが ワイルドカード * を使用して、すべてのサービス上のすべてのアクションに対するアクセス許可を付与するかどうかを確認します。 |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" and ( NotAction with [ value like "\:\*$" ] or Action with [ value like "\:\*$" ] ) ] を含むステートメント |
| IAMの顧客管理ポリシーでは、すべてのKMSキーに対する復号化および再暗号化アクションを許可すべきではありません。 | IAM 顧客管理ポリシーのデフォルトバージョンで、プリンシパルがすべてのリソースで AWS KMS 復号化アクションを使用できるかどうかを確認します |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" ] であるステートメント ] |
| AWS KMSキーは意図せず削除されてはならない。 | この制御機能は、KMSキーが削除予定になっているかどうかを確認します。KMSキーは一度削除すると復元できません。KMSキーで暗号化されたデータは、KMSキーが削除された場合、永久に復元できなくなります。意味のあるデータが削除予定の KMS キーで暗号化されている場合は、意図的に暗号化消去を実行する場合を除き、データを復号化するか、新しい KMS キーでデータを再暗号化することを検討してください。 |
KMS |
KMSKey のステータスが「PendingDeletion」であってはなりません |
| IAMプリンシパルは、すべてのKMS鍵に対して復号および再暗号化操作を許可するIAM Groupのインラインポリシーを持つべきではありません | IAMグループに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMGroup には GroupPolicy があってはなりません。[ PolicyDocument を含む InlinePolicies 。[ Effect eq "Allow" and Action with [ value in ("kms:Decrypt", "kms:ReEncryptFrom") ] and Resource with [ value eq "*" ] ] ] というステートメント |
| IAMプリンシパルは、すべてのKMSキーに対する復号化および再暗号化アクションを許可するIAMロールインラインポリシーを持つべきではありません。 | IAMロールに組み込まれているインラインポリシーが、すべてのKMSキーに対するAWS KMS復号化および再暗号化アクションを許可しているかどうかを確認します。 |
IAM |
IAMRoleにはポリシーがあってはなりません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| IAMプリンシパルは、すべてのKMSキーに対して復号化および再暗号化アクションを許可するIAMユーザーインラインポリシーを持つべきではありません。 | IAMユーザーに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMUser はポリシーを持つべきではありません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| Lambda関数のポリシーでは、パブリックアクセスを禁止する必要があります。 | このコントロールは、Lambda 関数のリソースベースポリシーがアカウント外からのパブリックアクセスを禁止しているかどうかを確認します。 |
Lambda |
Lambda には ResourceBasedIAMPolicy を設定すべきではありません。[ Effect eq "Allow" かつ Principal with [ value eq "*"] ] を含むステートメント |
| ラムダ関数s3の呼び出しポリシーは、パブリックアクセスを禁止すべきです | このコントロールは、Lambda関数のリソースベースのs3呼出ポリシーがアカウント外への公開アクセスを禁止しているかどうかを確認します。また、Amazon S3からラムダ関数を呼び出し、ポリシーにAWS:SourceAccountの条件が含まれていない場合も制御が失敗します |
Lambda |
ResourceBasedIAMPolicy の Lambda 。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"]] は ResourceBasedIAMPolicy を持つ必要があります。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"] および条件 [ 名前が "AWS:SourceAccount" と等しく、値の長さが 0 より大きい ]] |
| Lambda 関数はサポートされているランタイムを使用する必要があります | このコントロールは、ランタイムのラムダ関数設定が、各言語でサポートされているランタイムに設定されている期待値と一致しているかどうかを確認します。 |
Lambda |
PackageType が "Image" と等しくない Lambda は、Runtime が ("nodejs14.x",「nodejs12.x」「python3.9」「python3.8」「python3.7」「python3.6」「ruby2.7」「java11」、「java8」、「java8.al2」「go1.x」「dotnetcore3.1」 |
| Amazon ECSのタスク定義には、セキュアなネットワークモードとユーザー定義が必要です。 | この制御機能は、ホストネットワークモードを持つアクティブなAmazon ECSタスク定義に、特権コンテナ定義またはユーザーコンテナ定義が含まれているかどうかを確認します。ホスト ネットワーク モードを持つタスク定義と、privileged=false または空で、user=root または空であるコンテナ定義に対して、制御が失敗します。 |
ECS |
NetworkModeが「host」であるECSTaskDefinitionには、[ Privileged かつ User len () gt 0 かつ User neq "root" ] のContainerDefinitionが含まれている必要があります。 |
| Amazon ECSサービスには、パブリックIPアドレスが自動的に割り当てられるべきではありません。 | このコントロールは、Amazon ECSサービスがパブリックIPアドレスを自動的に割り当てるように設定されているかどうかを確認します。パブリックIPアドレスとは、インターネットからアクセス可能なIPアドレスのことです。Amazon ECSインスタンスをパブリックIPアドレスで起動すると、インターネットからAmazon ECSインスタンスにアクセスできるようになります。Amazon ECSサービスは、コンテナアプリケーションサーバーへの意図しないアクセスを許してしまう可能性があるため、一般公開すべきではありません。 |
ECS |
ECSCluster には [ TaskDefinition ] を持つサービスがあります。NetworkMode eq "awsvpc"] には [ TaskDefinition を持つサービスが必要です。NetworkMode eq "awsvpc" かつ AwsVPCConfiguration 。AssignPublicIp neq "ENABLED" ] |
| SNS トピックは保存時に暗号化する必要がある AWS KMS を使用する | このコントロールは、SNS トピックが保存時に暗号化されているかどうかをチェックします。 AWS KMS |
SNS |
SNSTopic の KmsMasterKeyId の長さ () は 0 より大きい必要があります |
| Amazon SQSキューは静止時に暗号化されるべきです | このコントロールは、Amazon SQS キューが保存時に暗号化されているかどうかを確認します。 |
SQS |
SQSQueue には ( KmsMasterKeyId len ( ) gt 0 または SqsManagedSseEnabled ) が必要です |
| インポートされたACM証明書は、指定された期間後に更新する必要があります。 | このチェック機能は、アカウント内のACM証明書が30日以内に有効期限切れとなるように設定されているかどうかを確認します。インポートされた証明書と、AWS Certificate Managerによって提供された証明書の両方をチェックします。 |
ACM |
ACMにはNotAfter isLaterThan(30, "日")という機能が必要です。 |
| API Gateway RESTおよびWebSocket APIのログ記録を有効にする必要があります。 | このコントロールは、Amazon API Gateway の REST API または WebSocket API のすべてのステージでログ記録が有効になっているかどうかを確認します。ステージのすべてのメソッドでログ記録が有効になっていない場合、またはloggingLevelがERRORでもINFOでもない場合、制御は失敗します。 |
APIGateway |
APIGateway where Stages len() gt 0 には、[ MethodSettings with [ MethodValue ] を持つ Stages が必要です。LoggingLevel in ("INFO", "ERROR") ] ] |
| API Gateway REST APIステージは、バックエンド認証のために使う SSL 証明書を設定するように設定すべきです | このコントロールは、Amazon API Gateway REST API ステージに SSL 証明書が設定されているかどうかを確認します。バックエンドシステム これらの証明書を使用して、受信リクエストがAPIゲートウェイからのものであることを認証します。 |
APIGateway |
APIGatewayには[ ClientCertificateId len() gt 0 ]のステージが必要です |
| API Gateway REST APIステージではAWS X-Rayトレーシングを有効にする必要があります | このコントロールは、Amazon API Gateway REST API ステージで AWS X-Ray アクティブ トレーシングが有効になっているかどうかを確認します。 |
カテゴリ |
APIGatewayには[TracingEnabled]のステージが必要です |
| APIゲートウェイはAWS WAF Web ACLと関連付けるべきです | API Gateway ステージが AWS WAF ウェブのアクセス制御リスト (ACL) を使用するかどうかを確認します。 コントロールがREST APIゲートウェイのステージに接続されていない場合、コントロールは失敗します。 |
APIGateway |
APIGatewayには、[WebAclArn len() gt 0] のステージが必要です |
| API Gateway REST APIのキャッシュデータは保存時に暗号化されるべきである | キャッシュが有効になっているAPI Gateway REST APIステージ内のすべてのメソッドが暗号化されているかどうかを確認します。API Gateway REST APIステージ内のいずれかのメソッドがキャッシュするように設定されており、かつそのキャッシュが暗号化されていない場合、制御は失敗します。 |
APIGateway |
APIGatewayには[MethodValueを含むMethodSettings]を持つStagesが必要です。CacheDataEncrypted ] ] |
| ロードバランサーに関連付けられたオートスケーリンググループは、ロードバランサーの健康チェックを使うべきです | このコントロールは、ロードバランサーに関連付けられているオートスケーリンググループが Elastic Load Balancing のヘルスチェックを行っているかどうかを確認します。 |
AutoScalingGroup |
LoadBalancerNames len( ) gt 0 の AutoScalingGroup は HealthCheckType eq "ELB" を持つべきである |
| CloudFrontディストリビューションには、デフォルトのルートオブジェクトが設定されている必要があります。 | このコントロールは、Amazon CloudFront ディストリビューションが、デフォルトのルートオブジェクトである特定のオブジェクトを返すように設定されているかどうかを確認します。CloudFrontディストリビューションにデフォルトのルートオブジェクトが設定されていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には DefaultRootObject len() gt 0 が必要です |
| CloudFront ディストリビューションでは、オリジン アクセス ID を有効にする必要があります。 | このコントロールは、Amazon S3 オリジンタイプの Amazon CloudFront ディストリビューションにオリジン アクセス アイデンティティ (OAI) が設定されているかどうかを確認します。OAIが設定されていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には Origins が必要です。[S3OriginConfig を持つアイテム。OriginAccessIdentity len() gt 0 ] |
| CloudFrontの配信は転送中に暗号化を必要とするべきである。 | このコントロールは、Amazon CloudFrontの配信が視聴者に直接使うHTTPSを要求するか、使うリダイレクトを要求するかをチェックします。 デフォルトのCacheBehaviorまたはcacheBehaviorsに対してViewerProtocolPolicyがallow-allに設定されている場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には DefaultCacheBehavior を設定すべきではありません。ViewerProtocolPolicy eq "allow-all" |
| CloudFrontディストリビューションには、オリジンフェイルオーバーが設定されている必要があります。 | このコントロールは、Amazon CloudFrontディストリビューションに、2つ以上のオリジンを持つオリジングループが設定されているかどうかを確認します。 |
CloudFront |
CloudfrontDistribution には OriginGroups が必要です。数量が 0 より大きい場合、および OriginGroups 。アイテムの長さ()が0より大きい場合 |
| CloudFrontディストリビューションではログ記録を有効にする必要があります。 | このコントロールは、CloudFrontディストリビューションでサーバーアクセスログが有効になっているかどうかを確認します。配布物に対してアクセスログが有効になっていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には Logging が必要です。有効 |
| CloudFront ディストリビューションでは、AWS WAF を有効にする必要があります。 | このコントロールは、CloudFront ディストリビューションが AWS WAF または AWS WAFv2 ウェブ ACL に関連付けられているかどうかを確認します。 配信がウェブACLに関連付けられていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution の WebACLId の長さは 0 より大きい必要があります |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| DynamoDBテーブルは需要に応じて容量を自動的に拡張する必要があります | このコントロールは、Amazon DynamoDBテーブルが読むや書き込み容量を必要に応じてスケーリングできるかどうかをチェックします。 この制御は、テーブル使うがオンデマンド容量モードか自動スケーリング付きのプロビジョニングモードのいずれかに移行します。 |
DynamoDB |
DynamoDBTable の ScalableTargets の len() は 0 より大きい必要があります |
| DynamoDBアクセラレータ(DAX)クラスターは静止時に暗号化されるべきです | この制御は、DAXクラスターが静止時に暗号化されているかどうかをチェックします。 |
DynamoDB |
DAXにはSSEDescriptionが必要です。ステータスが「有効」 |
| Amazon EFSは暗号化ファイルデータ at rest(使う AWS KMS)に設定すべきです | このコントロールは、Amazon Elastic File Systemがファイルデータ 使う AWS KMS を暗号化するよう設定されているかどうかをチェックします。 |
EFS |
ElasticFileSystem には暗号化と KMSKey が必要です。 有効 |
| Elastic Beanstalk環境では、強化されたヘルスレポート機能を有効にする必要があります。 | このコントロールは、AWS Elastic Beanstalk 環境で拡張ヘルスレポートが有効になっているかどうかを確認します。 |
ElasticBeanstalk |
ElasticBeanstalkには、ConfigurationSettingsに[OptionSettingsに[OptionName eq "EnhancedHealthAuthEnabled" and Value eq "true"]]が含まれている必要があります。 |
| Elastic Beanstalkのマネージドプラットフォームアップデートは有効にすべきです | このコントロールは、Elastic Beanstalk環境で管理されたプラットフォームの更新が有効になっているかどうかを確認します。 |
ElasticBeanstalk |
ElasticBeanstalkには、ConfigurationSettingsに[OptionSettingsに[OptionName eq "ManagedActionsEnabled" and Value eq "true"]]が含まれている必要があります。 |
| Amazon EMRクラスターのマスターノードにはパブリックIPアドレスを割り当てるべきではありません。 | この制御機能は、Amazon EMRクラスター上のマスターノードがパブリックIPアドレスを持っているかどうかを確認します。 |
EMR |
EMRCluster には [ PublicIpAddress isPublic() ] のインスタンスがあってはなりません |
| Elasticsearchドメインは、静止時暗号化を有効にするべきです | このコントロールは、Elasticsearchドメインで保存時の暗号化設定が有効になっているかどうかを確認します。保存時の暗号化が有効になっていない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomainにはEncryptionAtRestOptionsが必要です。有効 |
| ElasticsearchドメインはVPC内に配置する必要があります。 | このコントロールは、ElasticsearchドメインがVPC内にあるかどうかを確認します。Elasticsearchドメインがパブリックサブネットに接続されないようにする必要があります。 |
ElasticSearch |
ElasticSearchDomain には VPCOptions が必要です。VPC 。ステータスは「利用可能」です |
| Elasticsearchドメインは、ノード間で送信されるデータを暗号化する必要があります。 | この制御は、Elasticsearchドメインがノード間暗号化が有効かどうかを確認します。 |
ElasticSearch |
ElasticSearchDomainにはNodeToNodeEncryptionOptionsが必要です。有効 |
| ElasticsearchドメインのエラーログをCloudWatch Logsに記録する機能を有効にする必要があります。 | このコントロールは、ElasticsearchドメインがエラーログをCloudWatch Logsに送信するように設定されているかどうかを確認します。 |
ElasticSearch |
ElasticSearchDomain には [ Name eq "ES_APPLICATION_LOGS" かつ Enabled および CloudWatchLogsLogGroup の LogPublishingOptions が必要です。id len( ) gt 0 ] |
| Elasticsearchドメインでは監査ログを有効にする必要があります | このコントロールは、Elasticsearchドメインで監査ログが有効になっているかどうかを確認します。Elasticsearchドメインで監査ログが有効になっていない場合、この制御は失敗します。 |
ElasticSearch |
ElasticSearchDomain には [ Name eq "AUDIT_LOGS" かつ Enabled および CloudWatchLogsLogGroup の LogPublishingOptions が必要です。id len( ) gt 0 ] |
| Elasticsearchドメインには少なくとも3つのデータノードが必要です。 | このコントロールは、Elasticsearchドメインが少なくとも3つのデータノードで構成されているか、zoneAwarenessEnabledが正しいかを確認します。 |
ElasticSearch |
ElasticSearchDomain には ElasticsearchClusterConfig が必要です。ZoneAwarenessEnabled と ElasticsearchClusterConfig 。ZoneAwarenessConfig 。可用性ゾーン数 gte 3 |
| Elasticsearchドメインは、少なくとも3つの専用マスターノードで構成する必要があります。 | この制御機能は、Elasticsearchドメインに少なくとも3つの専用マスターノードが設定されているかどうかを確認します。ドメインに 専用のマスターノードがない場合、この制御は失敗します。 |
ElasticSearch |
ElasticSearchDomain には ElasticsearchClusterConfig が必要です。DedicatedMasterEnabled と ElasticsearchClusterConfig 。専用マスター数 gte 3 |
| Elasticsearchドメインへの接続は暗号化 使う TLS 1.2 | この制御は使う TLS 1.2 に Elasticsearch ドメインへの接続が必要かどうかをチェックします。 ElasticsearchドメインTLSSecurityPolicyがポリシー-Min-TLS-1-2-2-2019-07でない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomain には DomainEndpointOptions が必要です。TLSSecurityPolicy eq "ポリシー-Min-TLS-1-2-2-2019-07" |
| GuardDutyを有効にする必要があります | このコントロールは、お客様の GuardDuty アカウントおよびリージョンで Amazon GuardDuty が有効になっているかどうかを確認します。 |
GuardDuty |
GuardDutyDetector のステータスは「ENABLED」である必要があります |
| RDSクラスターにはIAM認証を設定する必要があります。 | この制御機能は、RDS DB クラスターで IAM データベース認証が有効になっているかどうかを確認します。 |
RDSCluster |
RDSCluster には IAMDatabaseAuthenticationEnabled が必要です |
| RDS DBクラスターは、複数の可用性ゾーンに対応するように構成する必要があります。 | このコントロールは、RDS DB クラスターで高可用性が有効になっているかどうかを確認します。 |
RDSCluster |
RDSCluster は MultiAZ eq true かつ AvailabilityZones len ( ) gt 0 である必要があります |
| RDSクラスターでは削除保護を有効にする必要があります | この制御機能は、RDSクラスターで削除保護が有効になっているかどうかを確認します。 |
RDSCluster |
RDSクラスターには削除保護が必要です |
| SageMakerノートブックインスタンスは、インターネットに直接アクセスしてはいけません。 | このコントロールは、SageMakerノートブックインスタンスのインターネットへの直接アクセスが無効になっているかどうかを確認します。 |
Compute |
SageMakerNotebookInstance の DirectInternetAccess は "Disabled" である必要があります。 |
| Secrets Manager のシークレットは自動ローテーションが有効になっている必要があります | このコントロールは、AWS Secrets Managerに保存されているシークレットが自動ローテーションで設定されているかどうかを確認します。 |
安全 |
シークレットにはRotationEnabledが必要です |
| 自動ローテーションが設定されたシークレットマネージャーのシークレットは正常にローテーションされるはずです | このコントロールは、AWS Secrets Manager のシークレットがローテーション スケジュールに基づいて正常にローテーションされたかどうかを確認します。この制御機能は、ローテーションが設定されていないシークレットを評価しません。 |
安全 |
RotationEnabled に RotationOccurringAsScheduled が含まれているべきシークレット |
| 使用されていないシークレットマネージャーのシークレットを削除します。 | この制御機能は、指定された日数以内に秘密情報にアクセスされたかどうかを確認します。秘密情報が90日以内にアクセスされなかった場合、この制御は失敗します。 |
安全 |
Secret には LastAccessedDate isLaterThan(-90, "日) が必要です |
| Secrets Managerのシークレットは、指定された日数以内にローテーションする必要があります。 | このチェック機能は、シークレットが90日以内に少なくとも1回ローテーションされているかどうかを確認します。シークレットをローテーションすることで、AWSアカウント内のシークレットが不正に使うされるリスクを減らすのに役立ちます。 例としては、データベースクレデンシャル、パスワード、サードパーティAPIキー、さらには任意のテキストなどがあります。 長期間秘密情報を変更しないと、秘密情報が漏洩する可能性が高くなります。 |
安全 |
Secret には LastRotatedDate isLaterThan(-90, "日) が含まれている必要があります |
| AWS WAF Classic グローバル ウェブ ACL ログを有効にする必要があります | このコントロールは、AWS web Application Firewall(WAF)のクラシックグローバルウェブACLでログが有効かどうかをチェックします。 このルールは、ログが有効でない場合のグローバルWeb ACLに対してNON_COMPLIANTされます。 |
安全 |
WebACLにはLoggingConfigurationが必要です。LogDestinationConfigs len() gt 0 |
| EC2インスタンスはAWS Systems Managerで管理する必要があります | このコントロールは、アカウント内の停止状態および実行状態のEC2インスタンスがAWS Systems Managerによって管理されているかどうかを確認します。Systems Manager は、AWS インフラストラクチャを表示および制御できる AWS サービスです。 |
EC2 |
EC2Instance は SSMInformation len() が 0 より大きい必要があります |
| Systems Managerによって管理されるすべてのEC2インスタンスは、パッチ適用要件に準拠している必要があります。 | このコントロールは、インスタンスへのパッチインストール後に、Amazon EC2 Systems ManagerのパッチコンプライアンスのコンプライアンスステータスがCOMPLIANTかNON_COMPLIANTかをチェックします。これは、Systems Manager Patch Managerによって管理されているインスタンスのみをチェックします。 |
EC2 |
SSMInformation len() gt 0 かつ ComplianceSummaryItems の [ ComplianceType eq "Patch" ] には ComplianceSummaryItems と [ ComplianceType eq "Patch" および NonCompliantSummary が必要です。NonCompliantCount eq 0 ] |
| Systems Managerによって管理されるインスタンスは、関連付けコンプライアンスステータスがCOMPLIANTである必要があります。 | このコントロールは、インスタンス上で関連付けが実行された後、AWS Systems Manager関連付けのコンプライアンス状態がCOMPLIANTかNON_COMPLIANTかをチェックします。関連付けのコンプライアンス状況が「準拠」であれば、制御は合格となります。 |
EC2 |
SSMInformation len() gt 0 かつ ComplianceSummaryItems の [ ComplianceType eq "Association" ] には ComplianceSummaryItems の [ ComplianceType eq "Association" および NonCompliantSummary ] が含まれている必要があります。NonCompliantCount eq 0 ] |
| EC2インスタンスにAHSPポートが開いていないことを確認してください。 | EC2インスタンスのAhspポート4333は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 4333 and ToPort gte 4333) ) ] ] |
| EC2インスタンスに代替HTTPポートが開いていないことを確認してください。 | EC2インスタンスの代替HTTPポート8888は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8888 and ToPort gte 8888) ) ] ] |
| EC2インスタンスにCIFSポートが開いていないことを確認してください。 | EC2インスタンスのCIFSポート445は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 445 and ToPort gte 445) ) ] ] |
| EC2インスタンスでfcp-addr-srvr1ポートが開いていないことを確認してください。 | EC2インスタンスのfcp-addr-srvr1ポート5500は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5500 and ToPort gte 5500) ) ] ] |
| EC2インスタンスにFTPポートが開いていないことを確認してください。 | EC2インスタンスのFTPポート20と21は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 20 and ToPort gte 21) ) ] ] |
| EC2インスタンスでIMAPポートが開いていないことを確認してください。 | EC2インスタンスのIMAPポート143は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 143 and ToPort gte 143) ) ] ] |
| EC2インスタンスにレガシーHTTPポートが開いていないことを確認してください。 | EC2インスタンスのレガシーHTTPポート8088は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8088 and ToPort gte 8088) ) ] ] |
| EC2インスタンスでOpenSearch Dashboardsポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchダッシュボードのポート5601は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5601 and ToPort gte 5601) ) ] ] |
| EC2インスタンスでOpenSearchポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchポート9200または9300は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 9200 and ToPort gte 9200) or (FromPort lte 9300 and ToPort gte 9300) ) ] ] |
| EC2インスタンスでPOP3ポートが開いていないことを確認してください。 | EC2インスタンスのPOP3ポート110は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 110 and ToPort gte 110) ) ] ] |
| EC2インスタンスにプロキシポートが開いていないことを確認してください。 | EC2インスタンスのプロキシポート8080は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8080 and ToPort gte 8080) ) ] ] |
| EC2インスタンスにRPCポートが開いていないことを確認してください。 | EC2インスタンスのRPCポート135は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 135 and ToPort gte 135) ) ] ] |
| EC2インスタンスにTelnetポートが開いていないことを確認してください。 | EC2インスタンスのTelnetポート23は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 23 and ToPort gte 23) ) ] ] |
| EC2インスタンスにOpenPython web開発フレームワークポートがないことを確認してください | Python ウェブ開発フレームワーク EC2 インスタンスのポート 5000 は公開しないでください。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5000 and ToPort gte 5000) ) ] ] |
| EC2インスタンスにOpenのGo、Node.js、Rubyのウェブ開発フレームワークポートがないことを確認してください | Go、Node.js、そしてRuby Web開発フレームワークのポート3000は、EC2インスタンスの公開されていません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 3000 and ToPort gte 3000) ) ] ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| CloudTrailのログが保存されるS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。アクセス権限は「公開」に相当します。 |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アイデンティティとクレデンシャル:管理や日常業務のために「ルート」ユーザーの使うを排除する | AWSアカウントを作成すると、「ルートユーザー」が作成されますが、このルートユーザーは無効化または削除することはできません。そのユーザーは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権と制御権を有します。このアカウントの使うは日常的な作業には避けることを強くお勧めします。 |
IAM |
RootUser eq True の IAMUser には ( ( AccessKey with [ Active and LastUsedTime isLaterThan ( -1, "days" ) ] ) または ( Password ) があってはいけません。有効化とパスワード。LastUsedTime isLaterThan ( -1, "日" ) ) ) |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| CloudTrailのログが保存されるS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。アクセス権限は「公開」に相当します。 |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| データアットレストは保護されています:RDS暗号化が有効であることを確認しましょう | RDS暗号化が有効であることを確認しましょう。 |
RDS |
RDSInstance は StorageEncrypted eq true である必要があります |
| S3バケットでMFA削除が有効になっていることを確認してください。 | 機密性の高いS3バケットでMFA削除が有効になると、ユーザーは2種類の認証方法が必要になります。 |
S3 |
S3BucketにはBucketVersioningが必要です。ステータスが「有効」かつ BucketVersioning です。MFADelete eq "Enabled" |
| S3バケットポリシーがHTTPリクエストを拒否するように設定されていることを確認してください | Amazon S3バケットレベルでは、バケットポリシーを使用してアクセス許可を設定し、オブジェクトへのアクセスをHTTPS経由でのみ許可することができます。 |
S3 |
S3Bucketには、BucketPolicyに[Statement with [Effect eq "Deny" and Conditions with [Name eq "aws:SecureTransport" and Value has ("false") ]]]が設定されている必要があります。 |
| ネットワークの整合性:AWS 組織の変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。マスターAWSアカウントで行われたAWS組織の変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*組織\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*AcceptHandshake\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateAccount\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateOrganizationa lUnit\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeclineHandshake\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteOrganizationalUnit\)\s*\|\|\s*\(\$\.eventName\s*=\s*D eletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisablePolicyType\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnablePolicyType\)\s*\|\|\s*\(\$\.eventName\s*=\s*InviteAccountToOrganization\)\s*\|\|\s*\(\$\.eventName \s*=\s*LeaveOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*MoveAccount\)\s*\|\|\s*\(\$\.eventName\s*=\s*RemoveAccountFromOrganization\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateOrganizationalUnit\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic . 購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:セキュリティグループの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。セキュリティグループは、VPC内の受信トラフィックと送信トラフィックを制御するステートフルなパケットフィルタです。セキュリティグループの変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*AuthorizeSecurityGroupIngress\)\s*\|\|\s*\(\$\.eventName\s*=\s*AuthorizeSecurityGroupEgress\)\s*\|\|\s*\(\$\.eventName\s*=\s*RevokeSecurityGroupIngress\)\s*\|\|\s*\(\$\.eventName\s*=\s*RevokeSecurityGroupEgress\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateSecurityGroup\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteSecurityGroup\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| すべてのS3バケットが暗号化アットレストを使用していることを確認してください | Amazon S3は、保存データを保護するための、無料または低コストのさまざまな暗号化オプションを提供しています。 |
S3 |
S3Bucket の DefaultEncryption は "Disabled" に設定すべきではありません。 |
| 45 日以上使用されなかったクレデンシャルが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 45 日以上使用されていないすべてのクレデンシャルを非アクティブ化するか削除することをお勧めします。 |
IAM |
IAMUser には ( RootUser eq False かつ ( ( AccessKey with [ Active and LastUsedTime isEarlierThan ( -45, "days" ) ] ) または ( Password ) があってはいけません。有効化とパスワード。LastUsedTime isEarlierThan ( -45, "days" ) ) ) ) or ( RootUser eq False and ( ( AccessKey with [ Active and LastUsedTime eq 0 ] ) or ( Password .有効化とパスワード。LastUsedTime eq 0 ) ) かつ CreationDate isEarlierThan ( -45, "日" ) ) |
| 単一のIAMユーザーに対して、アクティブなアクセスキーが1つだけ存在するようにしてください。 | アクセス キーは、IAM ユーザーまたは AWS アカウントの「root」ユーザーの長期クレデンシャルです。 は AWS CLI または AWS API へのプログラムによるリクエストに署名するためのアクセスキーを使用できます (直接または AWS SDK を使用) |
IAM |
IAMUser は [ Active eq true] かつ AccessKey len() gt 1 のすべての AccessKey を持つべきではない |
| IAMユーザーがグループを通じてのみ権限を受け取るようにする | IAM ユーザーには、IAM ポリシーを通じてサービス、機能、データへのアクセスが許可されます。 ユーザーのポリシーを定義するには 3 つの方法があります。 1) ユーザー ポリシーを直接編集します (別名インラインまたはユーザー ポリシー)。 2) ポリシーをユーザーに直接添付します。 3) ポリシーが添付されている IAM グループにユーザーを追加します。 推奨されるのは3番目の実装方法のみです。 |
Identity |
IAMUser はポリシーを持つべきです。管理されたレン()eq 0とポリシー。インライン len() eq 0 |
| AWS IAMに保存されている期限切れのSSL/TLS証明書がすべて削除されていることを確認してください。 | AWS 上のウェブサイトまたはアプリケーションへの HTTPS 接続を有効にするには、SSL/TLS サーバー証明書が必要です。ACMまたはIAMを使用してサーバー証明書を保存および展開できます。 ACMがサポートしていない地域でHTTPS接続をサポートする必要がある場合にのみ、IAMを証明書マネージャーとして使用してください。 IAM は秘密キーを安全に暗号化し、その暗号化バージョンを IAM SSL 証明書ストレージに保存します。 IAM はすべてのリージョンでサーバー証明書のデプロイをサポートしていますが、AWS で使用するには外部プロバイダーから証明書を取得する必要があります。 AWS で。 ACM証明書をIAMにアップロードすることはできません。さらに、IAMコンソールから証明書を管理することはできません。 |
Identity |
ServerCertificate には Expiration isEarlierThan (0, "seconds") を設定すべきではありません。 |
| IAMアクセスアナライザーが有効になっていることを確認してください。 | IAM Access Analyzerは、AWS Reinvent 2019で発表されたテクノロジーです。IAMでアナライザーを有効にすると、アクセス可能なリソースを示すスキャン結果がコンソールに表示されます。スキャン結果には、KMSキーやIAMロールなど、他のアカウントやフェデレーションユーザーがアクセスできるリソースが表示されます。つまり、この結果によって、意図しないユーザーがアクセスを許可されているかどうかを判断できるため、管理者は最小権限アクセスをより容易に監視できるようになります。 |
安全 |
AccessAnalyzer のステータスは "ACTIVE" である必要があります |
| S3バケットが「パブリックアクセスをブロックする(バケット設定)」で構成されていることを確認してください。 | Amazon S3 では、Amazon S3 リソースへのパブリック アクセスを管理するために、「パブリック アクセスをブロックする (バケット設定)」と「パブリック アクセスをブロックする (アカウント設定)」という機能を提供しています。デフォルトでは、S3バケットとオブジェクトはパブリックアクセスが無効の状態で作成されます。しかし、十分なS3権限を持つIAMプリンシパルを使用すれば、バケットレベルおよび/またはオブジェクトレベルでのパブリックアクセスを有効にすることができます。「パブリックアクセスをブロックする(バケット設定)」を有効にすると、個々のバケットとその中に含まれるオブジェクトが一般公開されなくなります。同様に、「パブリックアクセスをブロック」(アカウント設定)を有効にすると、アカウント全体で、すべてのバケットおよびバケットに含まれるオブジェクトがパブリックにアクセスできなくなる。 |
ストレージ |
S3Bucket には BlockPublicAccess が必要です。BlockPublicAcls と BlockPublicAccess 。IgnorePublicAcls と BlockPublicAccess 。BlockPublicPolicy と BlockPublicAccess 。パブリックバケットを制限する |
| ネットワーク ACL が 0.0.0.0/0 からリモート サーバーの管理ポートへのイングレスを許可していないことを確認してください。 | ネットワークアクセスコントロールリスト(NACL)機能は、AWSリソースへの受信および送信ネットワークトラフィックに対してステートレスなフィルタリングを提供します。NACLでは、SSHポート22やRDPポート3389など、リモートサーバー管理ポートへの無制限の侵入アクセスを許可しないことを推奨します。 |
ネットワーク |
NetworkACLには、[ Egress eq False and RuleAction eq "allow" and CidrBlock eq 0.0.0.0/0 and ( (FromPort lte 22 and ToPort gte 22) or (FromPort lte 3389 and ToPort gte 3389) ) ] のルールがあってはなりません。 |
| セキュリティグループが、0.0.0.0/0 からリモートサーバー管理ポートへの侵入を許可していないことを確認してください。 | セキュリティグループが、0.0.0.0/0 からリモートサーバー管理ポートへの侵入を許可していないことを確認してください。 |
ネットワーク |
セキュリティグループには、[ IP 範囲が [ IP が 0.0.0.0/0 に相当 ] かつ ( (FromPort lte 22 かつ ToPort gte 22) または (FromPort lte 3389 かつ ToPort gte 3389) ) ] の受信ルールがあってはなりません。 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| インポートされたACM証明書は、指定された期間後に更新する必要があります。 | このチェック機能は、アカウント内のACM証明書が30日以内に有効期限切れとなるように設定されているかどうかを確認します。インポートされた証明書と、AWS Certificate Managerによって提供された証明書の両方をチェックします。 |
ACM |
ACMにはNotAfter isLaterThan(30, "日")という機能が必要です。 |
| API Gateway RESTおよびWebSocket APIのログ記録を有効にする必要があります。 | このコントロールは、Amazon API Gateway の REST API または WebSocket API のすべてのステージでログ記録が有効になっているかどうかを確認します。ステージのすべてのメソッドでログ記録が有効になっていない場合、またはloggingLevelがERRORでもINFOでもない場合、制御は失敗します。 |
APIGateway |
APIGateway where Stages len() gt 0 には、[ MethodSettings with [ MethodValue ] を持つ Stages が必要です。LoggingLevel in ("INFO", "ERROR") ] ] |
| API Gateway REST APIステージは、バックエンド認証のために使う SSL 証明書を設定するように設定すべきです | このコントロールは、Amazon API Gateway REST API ステージに SSL 証明書が設定されているかどうかを確認します。バックエンドシステム これらの証明書を使用して、受信リクエストがAPIゲートウェイからのものであることを認証します。 |
APIGateway |
APIGatewayには[ ClientCertificateId len() gt 0 ]のステージが必要です |
| API Gateway REST APIステージではAWS X-Rayトレーシングを有効にする必要があります | このコントロールは、Amazon API Gateway REST API ステージで AWS X-Ray アクティブ トレーシングが有効になっているかどうかを確認します。 |
カテゴリ |
APIGatewayには[TracingEnabled]のステージが必要です |
| APIゲートウェイはAWS WAF Web ACLと関連付けるべきです | API Gateway ステージが AWS WAF ウェブのアクセス制御リスト (ACL) を使用するかどうかを確認します。 コントロールがREST APIゲートウェイのステージに接続されていない場合、コントロールは失敗します。 |
APIGateway |
APIGatewayには、[WebAclArn len() gt 0] のステージが必要です |
| API Gateway REST APIのキャッシュデータは保存時に暗号化されるべきである | キャッシュが有効になっているAPI Gateway REST APIステージ内のすべてのメソッドが暗号化されているかどうかを確認します。API Gateway REST APIステージ内のいずれかのメソッドがキャッシュするように設定されており、かつそのキャッシュが暗号化されていない場合、制御は失敗します。 |
APIGateway |
APIGatewayには[MethodValueを含むMethodSettings]を持つStagesが必要です。CacheDataEncrypted ] ] |
| ロードバランサーに関連付けられたオートスケーリンググループは、ロードバランサーの健康チェックを使うべきです | このコントロールは、ロードバランサーに関連付けられているオートスケーリンググループが Elastic Load Balancing のヘルスチェックを行っているかどうかを確認します。 |
AutoScalingGroup |
LoadBalancerNames len( ) gt 0 の AutoScalingGroup は HealthCheckType eq "ELB" を持つべきである |
| CloudFrontディストリビューションには、デフォルトのルートオブジェクトが設定されている必要があります。 | このコントロールは、Amazon CloudFront ディストリビューションが、デフォルトのルートオブジェクトである特定のオブジェクトを返すように設定されているかどうかを確認します。CloudFrontディストリビューションにデフォルトのルートオブジェクトが設定されていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には DefaultRootObject len() gt 0 が必要です |
| CloudFront ディストリビューションでは、オリジン アクセス ID を有効にする必要があります。 | このコントロールは、Amazon S3 オリジンタイプの Amazon CloudFront ディストリビューションにオリジン アクセス アイデンティティ (OAI) が設定されているかどうかを確認します。OAIが設定されていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には Origins が必要です。[S3OriginConfig を持つアイテム。OriginAccessIdentity len() gt 0 ] |
| CloudFrontの配信は転送中に暗号化を必要とするべきである。 | このコントロールは、Amazon CloudFrontの配信が視聴者に直接使うHTTPSを要求するか、使うリダイレクトを要求するかをチェックします。 デフォルトのCacheBehaviorまたはcacheBehaviorsに対してViewerProtocolPolicyがallow-allに設定されている場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には DefaultCacheBehavior を設定すべきではありません。ViewerProtocolPolicy eq "allow-all" |
| CloudFrontディストリビューションには、オリジンフェイルオーバーが設定されている必要があります。 | このコントロールは、Amazon CloudFrontディストリビューションに、2つ以上のオリジンを持つオリジングループが設定されているかどうかを確認します。 |
CloudFront |
CloudfrontDistribution には OriginGroups が必要です。数量が 0 より大きい場合、および OriginGroups 。アイテムの長さ()が0より大きい場合 |
| CloudFrontディストリビューションではログ記録を有効にする必要があります。 | このコントロールは、CloudFrontディストリビューションでサーバーアクセスログが有効になっているかどうかを確認します。配布物に対してアクセスログが有効になっていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution には Logging が必要です。有効 |
| CloudFront ディストリビューションでは、AWS WAF を有効にする必要があります。 | このコントロールは、CloudFront ディストリビューションが AWS WAF または AWS WAFv2 ウェブ ACL に関連付けられているかどうかを確認します。 配信がウェブACLに関連付けられていない場合、制御は失敗します。 |
CloudFront |
CloudfrontDistribution の WebACLId の長さは 0 より大きい必要があります |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| CodeBuild GitHub または Bitbucket ソース リポジトリ URL は OAuth を使用する必要があります | このコントロールは、GitHubまたはBitbucketのソースリポジトリのURLに個人アクセストークンまたはユーザー名とパスワードが含まれているかどうかを確認します。 |
CodeBuild |
SourceCredential の AuthType は "OAUTH" である必要があります |
| CodeBuild プロジェクトの環境変数にはクリア テキストを含めないでください。 | このコントロールは、プロジェクトの環境変数にクリア テキストのクレデンシャルが含まれているかどうかをチェックします。 |
CodeBuild |
CodeBuild には Environment があってはなりません。[Type eq "PLAINTEXT" ] の環境変数 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| AWS Database Migration Serviceのレプリケーションインスタンスは公開すべきではありません。 | このコントロールは、AWS DMSレプリケーションインスタンスがパブリックであるかどうかを確認します。 |
DMS |
DMSReplicationInstance には PubliclyAccessible があってはなりません |
| DynamoDBテーブルは需要に応じて容量を自動的に拡張する必要があります | このコントロールは、Amazon DynamoDBテーブルが読むや書き込み容量を必要に応じてスケーリングできるかどうかをチェックします。 この制御は、テーブル使うがオンデマンド容量モードか自動スケーリング付きのプロビジョニングモードのいずれかに移行します。 |
DynamoDB |
DynamoDBTable の ScalableTargets の len() は 0 より大きい必要があります |
| 情報のバックアップ:DynamoDB テーブルで特定時点への復元が有効になっていることを確認してください。 | DynamoDBテーブルで特定時点への復旧が有効になっていることを確認してください。 |
Dynamo |
DynamoDBTable には PointInTimeRecovery が "ENABLED" である必要があります |
| DynamoDBアクセラレータ(DAX)クラスターは静止時に暗号化されるべきです | この制御は、DAXクラスターが静止時に暗号化されているかどうかをチェックします。 |
DynamoDB |
DAXにはSSEDescriptionが必要です。ステータスが「有効」 |
| Amazon EBSのスナップショットは公開すべきではない。これは、誰でも復元できるかどうかによって決まる。 | この制御機能は、Amazon Elastic Block Store のスナップショットが誰でも復元できる状態ではないことを確認します。EBSスナップショットは 特定の時点のEBSボリューム上のデータをAmazon S3にバックアップするためのものです。 スナップショットを使用して、EBSボリュームの以前の状態を復元できます。 写真を一般公開することは、めったに許容されない。通常、スナップショットを公に共有するという決定は、誤って行われたか、あるいはその影響を十分に理解しないまま行われた。このチェックは、そのような情報共有がすべて完全に計画され、意図的なものであったことを確認するのに役立ちます。 |
EC2 |
スナップショットには「公開」以外のアクセス権限が必要です |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 接続されたEBSボリュームは、静止時には暗号化されるべきです | この制御は、接続状態にあるEBSボリュームが暗号化されているかどうかを確認します |
EC2 |
添付ファイル len () gt 0 が暗号化されているべきボリューム |
| 停止したEC2インスタンスは、指定された期間後に削除する必要があります。 | この制御機能は、EC2インスタンスが許容日数を超えて停止されていないかどうかを確認します。EC2インスタンスは、デフォルトで最大許容期間である30日を超えて停止されている場合、このチェックに失敗します。 |
EC2 |
Statusが「stopped」であるEC2Instanceは、StateTransitionTimeが-30日後である必要がある。 |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| EBSのデフォルト暗号化を有効にする必要があります | このコントロールは、Amazon Elastic Block Store(Amazon EBS)でアカウントレベルの暗号化がデフォルトで有効かどうかをチェックします |
EC2 |
ボリュームには EbsEncryptionByDefault が必要です |
| EC2インスタンスはIMDSv2を使うべきです | このコントロールは、EC2インスタンスのメタデータバージョンがインスタンスメタデータサービスバージョン2(IMDSv2)で構成されているかどうかを確認します。 |
EC2 |
EC2Instance は MetadataOptions.HttpTokens が "required" である必要があります |
| EC2インスタンスにはパブリックIPアドレスを割り当てるべきではありません。 | このルールは、EC2インスタンスにパブリックIPアドレスが割り当てられているかどうかを確認します。EC2インスタンスの設定項目にpublicIpフィールドが存在する場合、このルールは失敗します。このルールはIPv4アドレスにのみ適用されます。 |
EC2 |
EC2Instance の PublicIPv4 len() は 0 を超えてはならない |
| Amazon EC2は、Amazon EC2サービス用に作成された使うVPC エンドポイントを設定するべきです | このコントロールは、各VPCに対してAmazon EC2のサービスエンドポイントが作成されているかどうかを確認します。 |
EC2 |
VPCには[ServiceNameは"\.ec2$"のような]EndpointRefが必要です |
| EC2サブネットはパブリックIPアドレスを自動的に割り当てるべきではない | このコントロールは、Amazon Virtual Private Cloud (Amazon VPC) サブネットにおけるパブリック IP の割り当てにおいて、MapPublicIpOnLaunch が FALSE に設定されているかどうかを確認します。フラグがFALSEに設定されている場合、制御は通過します。 |
EC2 |
サブネットには MapPublicIpOnLaunch を設定すべきではない |
| 使用されていないネットワークアクセス制御リストは削除する必要があります | この制御機能は、未使用のネットワークアクセス制御リスト(ACL)が存在するかどうかを確認します。 |
EC2 |
NetworkACL にはサブネット len() gt 0 が必要です |
| EC2 インスタンスは複数の ENI を使用すべきではありません | このコントロールは、EC2インスタンスが 複数のElastic Network Interface(ENI)を持っているかどうかを確認します。 |
EC2 |
EC2Instance には NetworkInterfaces len ( ) lte 1 が必要です |
| EC2インスタンスに開いているTCPポートがないことを確認してください。 | EC2インスタンスのTCPポート22、80、443、1433、1521、3306、3389、5432、27017、27018、27019は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( ( FromPort lte 22 and ToPort gte 22) or ( FromPort lte 80 and ToPort gte 80) or ( FromPort lte 443 and ToPort gte 443) or ( FromPort lte 1433 and ToPort gte 1433) or ( FromPort lte 1521 and ToPort gte 1521) or ( FromPort lte 3306 and ToPort gte 3306) or ( FromPort lte 3389 and ToPort gte 3389) or ( FromPort lte 5432 and ToPort gte 5432) or ( FromPort lte 27019 and ToPort gte 27017) ) ] ] |
| EC2インスタンスにAHSPポートが開いていないことを確認してください。 | EC2インスタンスのAhspポート4333は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 4333 and ToPort gte 4333) ) ] ] |
| EC2インスタンスに代替HTTPポートが開いていないことを確認してください。 | EC2インスタンスの代替HTTPポート8888は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8888 and ToPort gte 8888) ) ] ] |
| EC2インスタンスにCIFSポートが開いていないことを確認してください。 | EC2インスタンスのCIFSポート445は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 445 and ToPort gte 445) ) ] ] |
| EC2インスタンスでfcp-addr-srvr1ポートが開いていないことを確認してください。 | EC2インスタンスのfcp-addr-srvr1ポート5500は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5500 and ToPort gte 5500) ) ] ] |
| EC2インスタンスにFTPポートが開いていないことを確認してください。 | EC2インスタンスのFTPポート20と21は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 20 and ToPort gte 21) ) ] ] |
| EC2インスタンスでIMAPポートが開いていないことを確認してください。 | EC2インスタンスのIMAPポート143は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 143 and ToPort gte 143) ) ] ] |
| EC2インスタンスにレガシーHTTPポートが開いていないことを確認してください。 | EC2インスタンスのレガシーHTTPポート8088は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8088 and ToPort gte 8088) ) ] ] |
| EC2インスタンスでMySQLポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート3306は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 3306 and ToPort gte 3306) ) ] ] |
| EC2インスタンスでSQL Serverのポートが開いていないことを確認してください。 | EC2インスタンスのMySQLポート1433は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1", "tcp") and ( (FromPort lte 1433 and ToPort gte 1434) ) ] ] |
| EC2インスタンスでOpenSearch Dashboardsポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchダッシュボードのポート5601は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5601 and ToPort gte 5601) ) ] ] |
| EC2インスタンスでOpenSearchポートが開いていないことを確認してください。 | EC2インスタンスのOpenSearchポート9200または9300は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 9200 and ToPort gte 9200) or (FromPort lte 9300 and ToPort gte 9300) ) ] ] |
| EC2インスタンスでPOP3ポートが開いていないことを確認してください。 | EC2インスタンスのPOP3ポート110は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 110 and ToPort gte 110) ) ] ] |
| EC2インスタンスでPostgreSQLポートが開いていないことを確認してください。 | EC2インスタンスのPostgreSQLポート5432は、一般公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5432 and ToPort gte 5432) ) ] ] |
| EC2インスタンスにプロキシポートが開いていないことを確認してください。 | EC2インスタンスのプロキシポート8080は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 8080 and ToPort gte 8080) ) ] ] |
| EC2インスタンスにRDPポートが開いていないことを確認してください。 | EC2インスタンスのRDPポート3389は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","udp","tcp") and ( (FromPort lte 3389 and ToPort gte 3389) ) ] ] |
| EC2インスタンスにRPCポートが開いていないことを確認してください。 | EC2インスタンスのRPCポート135は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 135 and ToPort gte 135) ) ] ] |
| EC2インスタンスでSMTPポートが開いていないことを確認してください。 | EC2インスタンスのSMTPポート25は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 25 and ToPort gte 25) ) ] ] |
| EC2インスタンスでSSHポートが開いていないことを確認してください。 | EC2インスタンスのSSHポート22は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 22 and ToPort gte 22) ) ] ] |
| EC2インスタンスにTelnetポートが開いていないことを確認してください。 | EC2インスタンスのTelnetポート23は、一般に公開すべきではありません。 |
EC2 |
EC2Instance には、以下の条件を満たす SecurityGroups があってはなりません。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 23 and ToPort gte 23) ) ] ] |
| EC2インスタンスにOpenPython web開発フレームワークポートがないことを確認してください | Python ウェブ開発フレームワーク EC2 インスタンスのポート 5000 は公開しないでください。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 5000 and ToPort gte 5000) ) ] ] |
| EC2インスタンスにOpenのGo、Node.js、Rubyのウェブ開発フレームワークポートがないことを確認してください | Go、Node.js、そしてRuby Web開発フレームワークのポート3000は、EC2インスタンスの公開されていません。 |
EC2 |
EC2Instance には、以下のセキュリティグループが存在しない必要があります。[ InboundRules with [ IPRanges with [ IP isPublic () ] and Protocol in ("-1","tcp") and ( (FromPort lte 3000 and ToPort gte 3000) ) ] ] |
| Amazon ECSのタスク定義には、セキュアなネットワークモードとユーザー定義が必要です。 | この制御機能は、ホストネットワークモードを持つアクティブなAmazon ECSタスク定義に、特権コンテナ定義またはユーザーコンテナ定義が含まれているかどうかを確認します。ホスト ネットワーク モードを持つタスク定義と、privileged=false または空で、user=root または空であるコンテナ定義に対して、制御が失敗します。 |
ECS |
NetworkModeが「host」であるECSTaskDefinitionには、[ Privileged かつ User len () gt 0 かつ User neq "root" ] のContainerDefinitionが含まれている必要があります。 |
| Amazon ECSサービスには、パブリックIPアドレスが自動的に割り当てられるべきではありません。 | このコントロールは、Amazon ECSサービスがパブリックIPアドレスを自動的に割り当てるように設定されているかどうかを確認します。パブリックIPアドレスとは、インターネットからアクセス可能なIPアドレスのことです。Amazon ECSインスタンスをパブリックIPアドレスで起動すると、インターネットからAmazon ECSインスタンスにアクセスできるようになります。Amazon ECSサービスは、コンテナアプリケーションサーバーへの意図しないアクセスを許してしまう可能性があるため、一般公開すべきではありません。 |
ECS |
ECSCluster には [ TaskDefinition ] を持つサービスがあります。NetworkMode eq "awsvpc"] には [ TaskDefinition を持つサービスが必要です。NetworkMode eq "awsvpc" かつ AwsVPCConfiguration 。AssignPublicIp neq "ENABLED" ] |
| Amazon EFSは暗号化ファイルデータ at rest(使う AWS KMS)に設定すべきです | このコントロールは、Amazon Elastic File Systemがファイルデータ 使う AWS KMS を暗号化するよう設定されているかどうかをチェックします。 |
EFS |
ElasticFileSystem には暗号化と KMSKey が必要です。 有効 |
| Elastic Beanstalk環境では、強化されたヘルスレポート機能を有効にする必要があります。 | このコントロールは、AWS Elastic Beanstalk 環境で拡張ヘルスレポートが有効になっているかどうかを確認します。 |
ElasticBeanstalk |
ElasticBeanstalkには、ConfigurationSettingsに[OptionSettingsに[OptionName eq "EnhancedHealthAuthEnabled" and Value eq "true"]]が含まれている必要があります。 |
| Elastic Beanstalkのマネージドプラットフォームアップデートは有効にすべきです | このコントロールは、Elastic Beanstalk環境で管理されたプラットフォームの更新が有効になっているかどうかを確認します。 |
ElasticBeanstalk |
ElasticBeanstalkには、ConfigurationSettingsに[OptionSettingsに[OptionName eq "ManagedActionsEnabled" and Value eq "true"]]が含まれている必要があります。 |
| クラシックロードバランサーのリスナーは、HTTPSまたはTLS終端で構成する必要があります。 | このコントロールは、クラシックロードバランサーのリスナーが、フロントエンド(クライアントからロードバランサー)接続にHTTPSまたはTLSプロトコルを使用するように構成されているかどうかを確認します。 |
ElasticLoadBalancer |
ClassicLoadBalancer where ( ListenerDescriptions len () gt 0 ) には [ Listener . の ListenerDescriptions が必要です。プロトコル("HTTPS", "SSL") ] |
| アプリケーションロードバランサーは、HTTPヘッダーを破棄するように設定する必要があります。 | この制御機能は、AWSアプリケーションロードバランサーを評価し、無効なHTTPヘッダーを破棄するように設定されていることを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer のタイプが "application" の場合、RoutingHttpDropInvalidHeaderFieldsEnabled が True である必要があります。 |
| アプリケーションロードバランサーのログ記録を有効にする必要があります | このコントロールは、アプリケーションロードバランサーでログ記録が有効になっているかどうかを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer のタイプが "application" の場合、AccessLogsEnabled が True である必要があります。 |
| クラシックロードバランサーのログ記録を有効にする必要があります | このルールは、クラシックロードバランサーでログ記録が有効になっているかどうかを確認します。 |
ElasticLoadBalancer |
ClassicLoadBalancer には属性が必要です。アクセスログ。有効 |
| Elastic Load Balancerで削除保護が有効になっていることを確認してください。 | ロードバランサーで削除保護を有効にすることで、誤削除のリスクを軽減できます。 |
ElasticLoadBalancer |
ElasticLoadBalancerには削除保護機能が必要です |
| 従来のロードバランサーでは、接続ドレインを有効にする必要があります。 | このルールは、クラシックロードバランサーで接続ドレインが有効になっているかどうかを確認します。クラシックロードバランサーでコネクションドレインを有効にすると、ロードバランサーは登録解除中のインスタンスや異常な状態のインスタンスへのリクエスト送信を停止します。既存の接続を維持します。これは、オートスケーリンググループ内のインスタンスにおいて、接続が突然切断されないようにするために特に役立ちます。 |
ElasticLoadBalancer |
ClassicLoadBalancer には属性が必要です。接続を切断しています。有効 |
| アプリケーションロードバランサーは、すべてのHTTPリクエストをHTTPSにリダイレクトするように構成する必要があります。 | このコントロールは、アプリケーションロードバランサーのすべてのHTTPリスナーでHTTPからHTTPSへのリダイレクトが構成されているかどうかを確認します。 |
ElasticLoadBalancer |
ElasticLoadBalancer where (Type eq "application" and Listeners with [ Protocol eq "HTTP" ]) should have Listeners with [ Protocol eq "HTTP" and DefaultActions with [ Type eq "redirect" and RedirectConfig .プロトコルが「HTTPS」で、RedirectConfig が該当します。ポートeq 443 ] ] |
| Amazon EMRクラスターのマスターノードにはパブリックIPアドレスを割り当てるべきではありません。 | この制御機能は、Amazon EMRクラスター上のマスターノードがパブリックIPアドレスを持っているかどうかを確認します。 |
EMR |
EMRCluster には [ PublicIpAddress isPublic() ] のインスタンスがあってはなりません |
| Elasticsearchドメインは、静止時暗号化を有効にするべきです | このコントロールは、Elasticsearchドメインで保存時の暗号化設定が有効になっているかどうかを確認します。保存時の暗号化が有効になっていない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomainにはEncryptionAtRestOptionsが必要です。有効 |
| ElasticsearchドメインはVPC内に配置する必要があります。 | このコントロールは、ElasticsearchドメインがVPC内にあるかどうかを確認します。Elasticsearchドメインがパブリックサブネットに接続されないようにする必要があります。 |
ElasticSearch |
ElasticSearchDomain には VPCOptions が必要です。VPC 。ステータスは「利用可能」です |
| Elasticsearchドメインは、ノード間で送信されるデータを暗号化する必要があります。 | この制御は、Elasticsearchドメインがノード間暗号化が有効かどうかを確認します。 |
ElasticSearch |
ElasticSearchDomainにはNodeToNodeEncryptionOptionsが必要です。有効 |
| ElasticsearchドメインのエラーログをCloudWatch Logsに記録する機能を有効にする必要があります。 | このコントロールは、ElasticsearchドメインがエラーログをCloudWatch Logsに送信するように設定されているかどうかを確認します。 |
ElasticSearch |
ElasticSearchDomain には [ Name eq "ES_APPLICATION_LOGS" かつ Enabled および CloudWatchLogsLogGroup の LogPublishingOptions が必要です。id len( ) gt 0 ] |
| Elasticsearchドメインでは監査ログを有効にする必要があります | このコントロールは、Elasticsearchドメインで監査ログが有効になっているかどうかを確認します。Elasticsearchドメインで監査ログが有効になっていない場合、この制御は失敗します。 |
ElasticSearch |
ElasticSearchDomain には [ Name eq "AUDIT_LOGS" かつ Enabled および CloudWatchLogsLogGroup の LogPublishingOptions が必要です。id len( ) gt 0 ] |
| Elasticsearchドメインには少なくとも3つのデータノードが必要です。 | このコントロールは、Elasticsearchドメインが少なくとも3つのデータノードで構成されているか、zoneAwarenessEnabledが正しいかを確認します。 |
ElasticSearch |
ElasticSearchDomain には ElasticsearchClusterConfig が必要です。ZoneAwarenessEnabled と ElasticsearchClusterConfig 。ZoneAwarenessConfig 。可用性ゾーン数 gte 3 |
| Elasticsearchドメインは、少なくとも3つの専用マスターノードで構成する必要があります。 | この制御機能は、Elasticsearchドメインに少なくとも3つの専用マスターノードが設定されているかどうかを確認します。ドメインに 専用のマスターノードがない場合、この制御は失敗します。 |
ElasticSearch |
ElasticSearchDomain には ElasticsearchClusterConfig が必要です。DedicatedMasterEnabled と ElasticsearchClusterConfig 。専用マスター数 gte 3 |
| Elasticsearchドメインへの接続は暗号化 使う TLS 1.2 | この制御は使う TLS 1.2 に Elasticsearch ドメインへの接続が必要かどうかをチェックします。 ElasticsearchドメインTLSSecurityPolicyがポリシー-Min-TLS-1-2-2-2019-07でない場合、チェックは失敗します。 |
ElasticSearch |
ElasticSearchDomain には DomainEndpointOptions が必要です。TLSSecurityPolicy eq "ポリシー-Min-TLS-1-2-2-2019-07" |
| GuardDutyを有効にする必要があります | このコントロールは、お客様の GuardDuty アカウントおよびリージョンで Amazon GuardDuty が有効になっているかどうかを確認します。 |
GuardDuty |
GuardDutyDetector のステータスは「ENABLED」である必要があります |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| IAMユーザーがグループを通じてのみ権限を受け取るようにする | IAM ユーザーには、IAM ポリシーを通じてサービス、機能、データへのアクセスが許可されます。 ユーザーのポリシーを定義するには 3 つの方法があります。 1) ユーザー ポリシーを直接編集します (別名インラインまたはユーザー ポリシー)。 2) ポリシーをユーザーに直接添付します。 3) ポリシーが添付されている IAM グループにユーザーを追加します。 推奨されるのは3番目の実装方法のみです。 |
Identity |
IAMUser はポリシーを持つべきです。管理されたレン()eq 0とポリシー。インライン len() eq 0 |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| 非消費者ユーザーおよび管理者のための適切なユーザー認証管理を確実にしてください:IAM 弱いパスワードポリシー | パスワード/パスフレーズは、以下の条件を満たす必要があります。最低でも7文字以上の長さが必要です。数字と英字の両方を含む。あるいは、パスワード/パスフレーズは、少なくとも上記で指定されたパラメータと同等の複雑さと強度を備えている必要があります。 |
IAM |
IAMPasswordPolicy には RequireUppercaseCharacters と RequireLowercaseCharacters および (MinimumPasswordLength gte 8 または RequireSymbols) が必要です。 |
| 45 日以上使用されなかったクレデンシャルが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 45 日以上使用されていないすべてのクレデンシャルを非アクティブ化するか削除することをお勧めします。 |
IAM |
IAMUser には ( RootUser eq False かつ ( ( AccessKey with [ Active and LastUsedTime isEarlierThan ( -45, "days" ) ] ) または ( Password ) があってはいけません。有効化とパスワード。LastUsedTime isEarlierThan ( -45, "days" ) ) ) ) or ( RootUser eq False and ( ( AccessKey with [ Active and LastUsedTime eq 0 ] ) or ( Password .有効化とパスワード。LastUsedTime eq 0 ) ) かつ CreationDate isEarlierThan ( -45, "日" ) ) |
| あなたが作成したIAMの顧客管理ポリシーは、サービスに対してワイルドカードアクションを許可してはいけません | このコントロールは、IAM ID ベースの 作成する Allow ステートメントが ワイルドカード * を使用して、すべてのサービス上のすべてのアクションに対するアクセス許可を付与するかどうかを確認します。 |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" and ( NotAction with [ value like "\:\*$" ] or Action with [ value like "\:\*$" ] ) ] を含むステートメント |
| IAMの顧客管理ポリシーでは、すべてのKMSキーに対する復号化および再暗号化アクションを許可すべきではありません。 | IAM 顧客管理ポリシーのデフォルトバージョンで、プリンシパルがすべてのリソースで AWS KMS 復号化アクションを使用できるかどうかを確認します |
IAM |
Type eq "Customer Managed" の IAMPolicy には権限が付与されるべきではありません。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" ] であるステートメント ] |
| IAMプリンシパルは、すべてのKMS鍵に対して復号および再暗号化操作を許可するIAM Groupのインラインポリシーを持つべきではありません | IAMグループに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMGroup には GroupPolicy があってはなりません。[ PolicyDocument を含む InlinePolicies 。[ Effect eq "Allow" and Action with [ value in ("kms:Decrypt", "kms:ReEncryptFrom") ] and Resource with [ value eq "*" ] ] ] というステートメント |
| IAMプリンシパルは、すべてのKMSキーに対する復号化および再暗号化アクションを許可するIAMロールインラインポリシーを持つべきではありません。 | IAMロールに組み込まれているインラインポリシーが、すべてのKMSキーに対するAWS KMS復号化および再暗号化アクションを許可しているかどうかを確認します。 |
IAM |
IAMRoleにはポリシーがあってはなりません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| IAMプリンシパルは、すべてのKMSキーに対して復号化および再暗号化アクションを許可するIAMユーザーインラインポリシーを持つべきではありません。 | IAMユーザーに埋め込まれたインラインポリシーが、すべてのKMSキーに対してAWS KMSの復号および再暗号化操作を許可しているかどうかを確認します |
IAM |
IAMUser はポリシーを持つべきではありません。[PolicyDocument に準拠。[ Effect eq "Allow" かつ Action の値が ("kms:Decrypt", "kms:ReEncryptFrom") ) であり、かつ Resource の値が "*" であるステートメント ] ] |
| AWS KMSキーは意図せず削除されてはならない。 | この制御機能は、KMSキーが削除予定になっているかどうかを確認します。KMSキーは一度削除すると復元できません。KMSキーで暗号化されたデータは、KMSキーが削除された場合、永久に復元できなくなります。意味のあるデータが削除予定の KMS キーで暗号化されている場合は、意図的に暗号化消去を実行する場合を除き、データを復号化するか、新しい KMS キーでデータを再暗号化することを検討してください。 |
KMS |
KMSKey のステータスが「PendingDeletion」であってはなりません |
| Lambda関数のポリシーでは、パブリックアクセスを禁止する必要があります。 | このコントロールは、Lambda 関数のリソースベースポリシーがアカウント外からのパブリックアクセスを禁止しているかどうかを確認します。 |
Lambda |
Lambda には ResourceBasedIAMPolicy を設定すべきではありません。[ Effect eq "Allow" かつ Principal with [ value eq "*"] ] を含むステートメント |
| ラムダ関数s3の呼び出しポリシーは、パブリックアクセスを禁止すべきです | このコントロールは、Lambda関数のリソースベースのs3呼出ポリシーがアカウント外への公開アクセスを禁止しているかどうかを確認します。また、Amazon S3からラムダ関数を呼び出し、ポリシーにAWS:SourceAccountの条件が含まれていない場合も制御が失敗します |
Lambda |
ResourceBasedIAMPolicy の Lambda 。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"]] は ResourceBasedIAMPolicy を持つ必要があります。[アクション [値 eq "lambda:InvokeFunction" ] およびプリンシパル [値 eq "s3.amazonaws.com"] および条件 [ 名前が "AWS:SourceAccount" と等しく、値の長さが 0 より大きい ]] |
| Lambda 関数はサポートされているランタイムを使用する必要があります | このコントロールは、ランタイムのラムダ関数設定が、各言語でサポートされているランタイムに設定されている期待値と一致しているかどうかを確認します。 |
Lambda |
PackageType が "Image" と等しくない Lambda は、Runtime が ("nodejs14.x",「nodejs12.x」「python3.9」「python3.8」「python3.7」「python3.6」「ruby2.7」「java11」、「java8」、「java8.al2」「go1.x」「dotnetcore3.1」 |
| アクセス権限と承認: RDSインスタンスに公開アクセス可能なスナップショットが存在しないことを確認してください。 | RDSインスタンスは、一般にアクセス可能なスナップショットを持つべきではありません。 |
RDS |
RDSInstance には [ PubliclyAccessible ] のスナップショットがあってはなりません |
| 通信および制御ネットワークの保護:RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 | RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 |
RDS |
RDSInstance のアクセス権限は「Public」であってはなりません。 |
| データアットレストは保護されています:RDS暗号化が有効であることを確認しましょう | RDS暗号化が有効であることを確認しましょう。 |
RDS |
RDSInstance は StorageEncrypted eq true である必要があります |
| 保存データは保護されています。RDSインスタンスのスナップショットが暗号化されていることを確認してください。 | RDSインスタンスのスナップショットは暗号化されていることを確認してください。 |
RDS |
RDSInstanceは、[ 暗号化 eq true] のスナップショットをすべて保持しているはずです |
| インシデント対応計画の実施:RDSインスタンスにおけるマルチAZ展開の欠如 | システム侵害が発生した場合に実施するインシデント対応計画を作成する。最低限、役割、責任、コミュニケーション、コンタクト戦略、支払いブランドへの通知を含め、妥協時の戦略を計画に含めてください。 具体的なインシデント対応手順。事業復旧および事業継続手順。;データバックアップのプロセス。侵害報告に関する法的要件の分析。; すべての重要システムコンポーネントのカバー範囲と応答。決済ブランドからのインシデント対応手順の参照または組み込み |
RDS |
RDSInstance は MultiAZ が true である必要があります |
| RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 | RDSデータベースインスタンスで詳細な監視が有効になっていることを確認してください。 |
RDS |
RDSInstance の MonitoringInterval は 0 であってはなりません |
| RDSクラスターでは削除保護を有効にする必要があります | この制御機能は、RDSクラスターで削除保護が有効になっているかどうかを確認します。 |
RDSCluster |
RDSクラスターには削除保護が必要です |
| RDS DBインスタンスでは削除保護を有効にする必要があります | このコントロールは、RDS DB インスタンスが リストされているデータベース エンジンのいずれかで削除保護が有効になっているかどうかを確認します。 |
RDS |
RDSInstanceには削除保護が必要です |
| データベースのログ記録を有効にする必要があります | このコントロールは、Amazon RDS のログが有効になっており、CloudWatch Logs に送信されているかどうかを確認します。 |
RDS |
RDSInstance には EnabledCloudwatchLogsExports len () gt 0 が必要です |
| RDSインスタンスにはIAM認証を設定する必要があります。 | このコントロールは、RDS DBインスタンスでIAMデータベース認証が有効になっているかどうかを確認します。 |
RDS |
RDSInstance には IAMDatabaseAuthenticationEnabled が必要です |
| RDSクラスターにはIAM認証を設定する必要があります。 | この制御機能は、RDS DB クラスターで IAM データベース認証が有効になっているかどうかを確認します。 |
RDSCluster |
RDSCluster には IAMDatabaseAuthenticationEnabled が必要です |
| 重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。RDSインスタンスのマイナーバージョン自動アップグレードは無効になっています | 該当するAWS RDSInstanceのセキュリティパッチをインストールすることにより、すべてのシステムコンポーネントとソフトウェアが既知の脆弱性から保護されていることを確認してください。重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。 |
RDS |
RDSInstance は AutoMinorVersionUpgrade eq true である必要があります |
| Amazon Auroraクラスターではバックトラッキングを有効にする必要があります | このコントロールは、Amazon Aurora クラスターでバックトラッキングが有効になっているかどうかを確認します。 |
RDS |
Engineが「aurora-mysql」であるRDSClusterは、BacktrackWindowが0より大きい値を持つべきである。 |
| RDS DBクラスターは、複数の可用性ゾーンに対応するように構成する必要があります。 | このコントロールは、RDS DB クラスターで高可用性が有効になっているかどうかを確認します。 |
RDSCluster |
RDSCluster は MultiAZ eq true かつ AvailabilityZones len ( ) gt 0 である必要があります |
| RDS DB クラスターは、タグをスナップショットにコピーするように構成する必要があります。 | このコントロールは、RDS DB クラスターがスナップショット作成時にすべてのタグをスナップショットにコピーするように構成されているかどうかを確認します。 |
RDS |
RDSClusterにはCopyTagsToSnapshotが必要です |
| RDS DBインスタンスは、タグをスナップショットにコピーするように構成する必要があります。 | このコントロールは、スナップショット作成時にすべてのタグをスナップショットにコピーするようにRDS DBインスタンスが構成されているかどうかを確認します。 |
RDS |
RDSInstance には CopyTagsToSnapshot が必要です |
| 重要なクラスタイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、メンテナンス、障害イベントカテゴリを持つDBClusterソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-cluster" and (EventCategoriesList has ("maintenance") and EventCategoriesList has ("failure")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースインスタンスイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、メンテナンス、構成変更、障害イベントカテゴリを持つDBInstanceソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-instance" and (EventCategoriesList has ("maintenance") and EventCategoriesList has ("failure") and EventCategoriesList has("configuration change")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースパラメータグループイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、構成変更イベントカテゴリを持つDBParameterGroupソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-parameter-group" and EventCategoriesList has("configuration change") and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| 重要なデータベースセキュリティグループイベントについては、RDSイベント通知サブスクリプションを構成する必要があります。 | このコントロールは、構成変更失敗イベントカテゴリを持つDBSecurityGroupソースタイプに対して通知が有効になっているAmazon RDSイベントサブスクリプションが存在するかどうかを確認します。 |
RDS |
AWS には、少なくとも 1 つの RDSEventSubscriptions が必要です。[ SourceType eq "db-security-group" and (EventCategoriesList has ("failure") and EventCategoriesList has("configuration change")) and Enabled and SnsTopic 。購読者数 len() gt 0 ] |
| RDS クラスターはデータベース エンジンのデフォルト ポートを使用すべきではありません | この制御は、RDSクラスターがデータベースエンジンのデフォルトポート以外のポートを持つかどうかを確認します |
RDS |
RDSCluster のポートは 3306 であってはなりません |
| アクセス権限と承認: Redshift クラスターが一般公開されていないことを確認してください | Redshiftクラスターは一般公開されるべきではありません。 |
Redshift |
RedShiftCluster は Access が "Public" であってはなりません |
| 送信中の機密性の高いカード所有者データを保護するための強力な暗号化とセキュリティプロトコル:Redshift Clusterではrequire_sslが無効になっています | 機密情報は公共ネットワーク上で送信される際に暗号化されなければなりません。なぜなら、悪意のある個人が転送中にデータを傍受したり、流用したりするのが簡単かつよくあるからです。 |
RedShift |
RedShiftClusterには、次の条件を満たすClusterParameterGroupが必要です。[ ClusterParameterGroup with [ ParameterName eq "require_ssl" and ParameterValue eq "true" ] ] |
| Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 | Redshiftクラスターで自動スナップショットが有効になっていることを確認してください。 |
RedShift |
RedShiftCluster の AutomatedSnapshotRetentionPeriod は 0 より大きい値である必要があります |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:Redshiftパラメータグループ、ログ記録の無効化 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
RedShift |
RedShiftCluster は LoggingEnabled が true である必要があります |
| 脆弱性管理計画:Redshift Clusterで「バージョンアップグレードを許可する」が「はい」に設定されていることを確認してください。 | 重要なセキュリティアップデートを見逃さないように、Redshiftクラスターではバージョンアップグレードを有効にしておく必要があります。 |
Redshift |
RedShiftClusterにはAllowVersionUpgradeが必要です |
| Amazon Redshift クラスターは拡張 VPC ルーティングを使用する必要があります | このコントロールは、Amazon Redshift クラスターで EnhancedVpcRouting が有効になっているかどうかを確認します。 |
RedShift |
RedShiftClusterにはEnhancedVpcRoutingが必要です |
| S3バケットが「パブリックアクセスをブロックする(バケット設定)」で構成されていることを確認してください。 | Amazon S3 では、Amazon S3 リソースへのパブリック アクセスを管理するために、「パブリック アクセスをブロックする (バケット設定)」と「パブリック アクセスをブロックする (アカウント設定)」という機能を提供しています。デフォルトでは、S3バケットとオブジェクトはパブリックアクセスが無効の状態で作成されます。しかし、十分なS3権限を持つIAMプリンシパルを使用すれば、バケットレベルおよび/またはオブジェクトレベルでのパブリックアクセスを有効にすることができます。「パブリックアクセスをブロックする(バケット設定)」を有効にすると、個々のバケットとその中に含まれるオブジェクトが一般公開されなくなります。同様に、「パブリックアクセスをブロック」(アカウント設定)を有効にすると、アカウント全体で、すべてのバケットおよびバケットに含まれるオブジェクトがパブリックにアクセスできなくなる。 |
ストレージ |
S3Bucket には BlockPublicAccess が必要です。BlockPublicAcls と BlockPublicAccess 。IgnorePublicAcls と BlockPublicAccess 。BlockPublicPolicy と BlockPublicAccess 。パブリックバケットを制限する |
| すべてのS3バケットが暗号化アットレストを使用していることを確認してください | Amazon S3は、保存データを保護するための、無料または低コストのさまざまな暗号化オプションを提供しています。 |
S3 |
S3Bucket の DefaultEncryption は "Disabled" に設定すべきではありません。 |
| S3バケットポリシーがHTTPリクエストを拒否するように設定されていることを確認してください | Amazon S3バケットレベルでは、バケットポリシーを使用してアクセス許可を設定し、オブジェクトへのアクセスをHTTPS経由でのみ許可することができます。 |
S3 |
S3Bucketには、BucketPolicyに[Statement with [Effect eq "Deny" and Conditions with [Name eq "aws:SecureTransport" and Value has ("false") ]]]が設定されている必要があります。 |
| S3バケットが一般公開されていないことを確認してください。 | S3バケットが一般公開されていないことを確認してください。 |
S3 |
S3Bucket のアクセス権限は「公開」であってはなりません |
| SNS トピックは保存時に暗号化する必要がある AWS KMS を使用する | このコントロールは、SNS トピックが保存時に暗号化されているかどうかをチェックします。 AWS KMS |
SNS |
SNSTopic の KmsMasterKeyId の長さ () は 0 より大きい必要があります |
| Amazon SQSキューは静止時に暗号化されるべきです | このコントロールは、Amazon SQS キューが保存時に暗号化されているかどうかを確認します。 |
SQS |
SQSQueue には ( KmsMasterKeyId len ( ) gt 0 または SqsManagedSseEnabled ) が必要です |
| SageMakerノートブックインスタンスは、インターネットに直接アクセスしてはいけません。 | このコントロールは、SageMakerノートブックインスタンスのインターネットへの直接アクセスが無効になっているかどうかを確認します。 |
Compute |
SageMakerNotebookInstance の DirectInternetAccess は "Disabled" である必要があります。 |
| Secrets Manager のシークレットは自動ローテーションが有効になっている必要があります | このコントロールは、AWS Secrets Managerに保存されているシークレットが自動ローテーションで設定されているかどうかを確認します。 |
安全 |
シークレットにはRotationEnabledが必要です |
| 自動ローテーションが設定されたシークレットマネージャーのシークレットは正常にローテーションされるはずです | このコントロールは、AWS Secrets Manager のシークレットがローテーション スケジュールに基づいて正常にローテーションされたかどうかを確認します。この制御機能は、ローテーションが設定されていないシークレットを評価しません。 |
安全 |
RotationEnabled に RotationOccurringAsScheduled が含まれているべきシークレット |
| 使用されていないシークレットマネージャーのシークレットを削除します。 | この制御機能は、指定された日数以内に秘密情報にアクセスされたかどうかを確認します。秘密情報が90日以内にアクセスされなかった場合、この制御は失敗します。 |
安全 |
Secret には LastAccessedDate isLaterThan(-90, "日) が必要です |
| Secrets Managerのシークレットは、指定された日数以内にローテーションする必要があります。 | このチェック機能は、シークレットが90日以内に少なくとも1回ローテーションされているかどうかを確認します。シークレットをローテーションすることで、AWSアカウント内のシークレットが不正に使うされるリスクを減らすのに役立ちます。 例としては、データベースクレデンシャル、パスワード、サードパーティAPIキー、さらには任意のテキストなどがあります。 長期間秘密情報を変更しないと、秘密情報が漏洩する可能性が高くなります。 |
安全 |
Secret には LastRotatedDate isLaterThan(-90, "日) が含まれている必要があります |
| EC2インスタンスはAWS Systems Managerで管理する必要があります | このコントロールは、アカウント内の停止状態および実行状態のEC2インスタンスがAWS Systems Managerによって管理されているかどうかを確認します。Systems Manager は、AWS インフラストラクチャを表示および制御できる AWS サービスです。 |
EC2 |
EC2Instance は SSMInformation len() が 0 より大きい必要があります |
| Systems Managerによって管理されるすべてのEC2インスタンスは、パッチ適用要件に準拠している必要があります。 | このコントロールは、インスタンスへのパッチインストール後に、Amazon EC2 Systems ManagerのパッチコンプライアンスのコンプライアンスステータスがCOMPLIANTかNON_COMPLIANTかをチェックします。これは、Systems Manager Patch Managerによって管理されているインスタンスのみをチェックします。 |
EC2 |
SSMInformation len() gt 0 かつ ComplianceSummaryItems の [ ComplianceType eq "Patch" ] には ComplianceSummaryItems と [ ComplianceType eq "Patch" および NonCompliantSummary が必要です。NonCompliantCount eq 0 ] |
| Systems Managerによって管理されるインスタンスは、関連付けコンプライアンスステータスがCOMPLIANTである必要があります。 | このコントロールは、インスタンス上で関連付けが実行された後、AWS Systems Manager関連付けのコンプライアンス状態がCOMPLIANTかNON_COMPLIANTかをチェックします。関連付けのコンプライアンス状況が「準拠」であれば、制御は合格となります。 |
EC2 |
SSMInformation len() gt 0 かつ ComplianceSummaryItems の [ ComplianceType eq "Association" ] には ComplianceSummaryItems の [ ComplianceType eq "Association" および NonCompliantSummary ] が含まれている必要があります。NonCompliantCount eq 0 ] |
| AWS WAF Classic グローバル ウェブ ACL ログを有効にする必要があります | このコントロールは、AWS web Application Firewall(WAF)のクラシックグローバルウェブACLでログが有効かどうかをチェックします。 このルールは、ログが有効でない場合のグローバルWeb ACLに対してNON_COMPLIANTされます。 |
安全 |
WebACLにはLoggingConfigurationが必要です。LogDestinationConfigs len() gt 0 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションをすべてのロールに対してiam:PassRoleに設定する | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "iam:PassRole" ] およびリソース [値が "*" ] ] を含むステートメント |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションを「sts:AssumeRole」としてすべてのロールに対して設定する | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMRole には AssumeRolePolicy を設定すべきではありません。[ Action eq "sts:AssumeRole" and Principal を含むステートメント。AWSには("*") ] |
| アクセス制御システムを確立する:すべてのユーザーにアクセス権を付与するS3バケットACL | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
S3 |
S3Bucket には、ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれていてはなりません。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] |
| アクセス制御システムを確立する:認証済みユーザーにアクセス権を付与するS3バケットACL | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
S3 |
S3BucketはACLを持たないべきです。[ ( Permission eq 「WRITE」 または Permission EQ 「WRITE_ACP」 または Permission EQ 「読む」または Permission EQ 「READ_ACP FULL_CONTROL」 ) と Grantee 。 タイプ eq "Group" および Grantee 。URIが「http://acs.amazonaws.com/groups/global/AuthenticatedUsers」と等しい] |
| アクセス権限と承認: Redshift クラスターが一般公開されていないことを確認してください | Redshiftクラスターは一般公開されるべきではありません。 |
Redshift |
RedShiftCluster は Access が "Public" であってはなりません |
| アクセス権限と承認: RDSインスタンスに公開アクセス可能なスナップショットが存在しないことを確認してください。 | RDSインスタンスは、一般にアクセス可能なスナップショットを持つべきではありません。 |
RDS |
RDSInstance には [ PubliclyAccessible ] のスナップショットがあってはなりません |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| S3バケットでMFA削除が有効になっていることを確認してください。 | 機密性の高いS3バケットでMFA削除が有効になると、ユーザーは2種類の認証方法が必要になります。 |
S3 |
S3BucketにはBucketVersioningが必要です。ステータスが「有効」かつ BucketVersioning です。MFADelete eq "Enabled" |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| データアットレストは保護されています:RDS暗号化が有効であることを確認しましょう | RDS暗号化が有効であることを確認しましょう。 |
RDS |
RDSInstance は StorageEncrypted eq true である必要があります |
| 保存データは保護されています。RDSインスタンスのスナップショットが暗号化されていることを確認してください。 | RDSインスタンスのスナップショットは暗号化されていることを確認してください。 |
RDS |
RDSInstanceは、[ 暗号化 eq true] のスナップショットをすべて保持しているはずです |
| 保存データは保護されています: DynamoDB テーブルが保存時に暗号化されていることを確認してください | DynamoDBテーブルが保存時に暗号化されていることを確認してください。 |
Dynamo |
DynamoDBTable には SSEDescription が必要です。ステータスが「有効」 |
| PANが保存されている場所すべてで読み取り不能にする:Redshiftクラスターは保存時に暗号化されない | 使うは、PANが保存されている場所(ポータブルデジタルメディア、バックアップメディア、ログなど)どこでも読み取れないようにする方法です。以下のいずれかの方法を用いてください:強暗号に基づく一方向ハッシュ(ハッシュはPAN全体のものでなければなりません)。 ; 切り捨て(ハッシュ化はできません PANの切り捨てられたセグメントを置き換えるため)。 インデックストークンとパッド(パッドは安全に保管する必要があります)。強力な暗号化技術と、それに関連する鍵管理プロセスおよび手順。; 注: 悪意のある人物が、PANの切り捨て版とハッシュ版の両方にアクセスできる場合、元のPAN日付を復元することは比較的容易です。エンティティの環境内に同じPANのハッシュ化バージョンと切り捨てバージョンが存在する場合、ハッシュ化バージョンと切り捨てバージョンを関連付けて元のPANを再構築できないようにするための追加の制御策を講じる必要があります。 |
RedShift |
RedShiftClusterは暗号化されたeqがtrueであるはずです |
| 転送中のデータは保護されます: 古い SSL/TLS ポリシーが Elastic Load Balancer で使用されないようにします | 古い SSL/TLS ポリシーを Elastic Load Balancer セキュリティ ポリシーと一緒に使用しないでください。 |
ElasticLoadBalancer |
ElasticLoadBalancer には、( "ELBSecurityPolicy-2016-08", "ELBSecurityPolicy-TLS-1-2-2017-01", "ELBSecurityPolicy-TLS-1-1-2017-01" ) の SslPolicy が含まれている必要があります。 |
| 転送中のデータは保護されています: 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 | 環境変数を使用するラムダ関数に対して転送中の暗号化が有効になっていることを確認します。 |
Lambda |
Lambda where ( Environment len() > 0 ) should have KMSKey 。有効 |
| 送信中の機密性の高いカード所有者データを保護するための強力な暗号化とセキュリティプロトコル:Redshift Clusterではrequire_sslが無効になっています | 機密情報は公共ネットワーク上で送信される際に暗号化されなければなりません。なぜなら、悪意のある個人が転送中にデータを傍受したり、流用したりするのが簡単かつよくあるからです。 |
RedShift |
RedShiftClusterには、次の条件を満たすClusterParameterGroupが必要です。[ ClusterParameterGroup with [ ParameterName eq "require_ssl" and ParameterValue eq "true" ] ] |
| 情報のバックアップ:バックアップ保持期間が30日以上であることを確認してください。 | RDSインスタンスのバックアップ保持期間を30日以上の値に設定することで、データの安全性が確保されます。 |
RDS |
RDSInstance の BackupRetentionPeriod は 30 未満であってはなりません |
| 情報のバックアップ:DynamoDBテーブルのバックアップを確実に行う | DynamoDBテーブルのバックアップが確実に行われていることを確認してください。 |
Dynamo |
DynamoDBTable には BackedUp が true である必要があります |
| 情報のバックアップ:DynamoDB テーブルで特定時点への復元が有効になっていることを確認してください。 | DynamoDBテーブルで特定時点への復旧が有効になっていることを確認してください。 |
Dynamo |
DynamoDBTable には PointInTimeRecovery が "ENABLED" である必要があります |
| 重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。RDSインスタンスのマイナーバージョン自動アップグレードは無効になっています | 該当するAWS RDSInstanceのセキュリティパッチをインストールすることにより、すべてのシステムコンポーネントとソフトウェアが既知の脆弱性から保護されていることを確認してください。重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。 |
RDS |
RDSInstance は AutoMinorVersionUpgrade eq true である必要があります |
| 脆弱性管理計画:Redshift Clusterで「バージョンアップグレードを許可する」が「はい」に設定されていることを確認してください。 | 重要なセキュリティアップデートを見逃さないように、Redshiftクラスターではバージョンアップグレードを有効にしておく必要があります。 |
Redshift |
RedShiftClusterにはAllowVersionUpgradeが必要です |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| CloudTrailのログが保存されるS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。アクセス権限は「公開」に相当します。 |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| すべてのシステムコンポーネントの自動監査証跡を実装する:CloudTrail - グローバルサービスイベントログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
CloudTrail |
CloudTrail は GlobalServiceEvents が true である必要があります |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:S3バケットへのアクセスに関するログ記録の欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 |
S3BucketにはLoggingEnabledが必要です |
| すべてのシステムコンポーネントに自動監査証跡を実装する:S3バケットにはバージョン管理機能がない | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 |
S3BucketにはBucketVersioningを設定すべきではありません。ステータスが「Suspended」またはBucketVersioningと等しい。ステータスが「無効」の場合 |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:Redshiftパラメータグループ、ログ記録の無効化 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
RedShift |
RedShiftCluster は LoggingEnabled が true である必要があります |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| ファイアウォールとルーターのルールセットを少なくとも6ヶ月ごとに見直す:未使用のEC2セキュリティグループが多数存在する | ファイアウォールおよびルーターの設定に関する標準を確立し、実施する。その標準には、ファイアウォールおよびルーターのルールセットを少なくとも6ヶ月ごとに見直すという要件を含める。 |
EC2 |
SecurityGroup の名前が "default" と等しくない場合、NetworkInterfaces の長さが 0 と等しくなければなりません。 |
| カード所有者データ環境に必要なトラフィックのみを受信および送信トラフィックに制限し、その他のすべてのトラフィックを明確に拒否します。 デフォルトのセキュリティグループ。 | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、審査対象組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。 |
EC2 |
NetworkInterface には [ Name eq "default" ] の SecurityGroup があってはなりません |
| カード保有者のデータ環境からインターネットへの不正なアウトバウンドトラフィックを許可しないでください:アウトバウンドインターネットの制限なしは許可されません。 | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、審査対象組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。 |
EC2 |
NetworkInterface には、[OutboundRules に [IPv6Ranges に [IPv6 in ( "::/0" ) ] または IPRanges に [IP in ( "0.0.0.0/0" ) ] ] を含む SecurityGroup があってはなりません。 |
| 通信および制御ネットワークの保護: デフォルトのネットワーク ACL で、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。 |
EC2 |
NetworkACL は IsDefault eq true および Rules が [ RuleAction eq "allow" and Protocol eq "-1" and Egress eq False and CidrBlock eq 0.0.0.0/0 ] であってはなりません。 |
| 通信および制御ネットワークの保護:サブネットに関連付けられたネットワークACLに、すべての受信トラフィックを許可するルールが存在しないことを確認します。 | ネットワークACLは、セキュリティの二次的な層を提供するように設計されています。拒否ルールの前に、すべてのネットワークトラフィック(すべてのプロトコル、IPアドレス、送信元)を許可するルールを追加すると、ネットワークACLの目的が損なわれます。サブネットおよびVPCに関連付けられたネットワークACLは、すべての受信トラフィックを許可すべきではありません。 |
EC2 |
サブネットの長さが 0 を超える NetworkACL には、[ Egress eq False and RuleAction eq "allow" and Protocol eq "-1" and CidrBlock eq 0.0.0.0/0 ] のルールがあってはならない。 |
| 通信および制御ネットワークの保護:RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 | RDSインスタンスがパブリックサブネットに配置されていないことを確認してください。 |
RDS |
RDSInstance のアクセス権限は「Public」であってはなりません。 |
| インシデント対応計画の実施:RDSインスタンスにおけるマルチAZ展開の欠如 | システム侵害が発生した場合に実施するインシデント対応計画を作成する。最低限、役割、責任、コミュニケーション、コンタクト戦略、支払いブランドへの通知を含め、妥協時の戦略を計画に含めてください。 具体的なインシデント対応手順。事業復旧および事業継続手順。;データバックアップのプロセス。侵害報告に関する法的要件の分析。; すべての重要システムコンポーネントのカバー範囲と応答。決済ブランドからのインシデント対応手順の参照または組み込み |
RDS |
RDSInstance は MultiAZ が true である必要があります |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| ファイアウォールとルーターのルールセットを少なくとも6ヶ月ごとに見直す:未使用のEC2セキュリティグループが多数存在する | ファイアウォールおよびルーターの設定に関する標準を確立し、実施する。その標準には、ファイアウォールおよびルーターのルールセットを少なくとも6ヶ月ごとに見直すという要件を含める。 |
EC2 |
SecurityGroup の名前が "default" と等しくない場合、NetworkInterfaces の長さが 0 と等しくなければなりません。 |
| カード所有者データ環境に必要なトラフィックのみを受信および送信トラフィックに制限し、その他のすべてのトラフィックを明確に拒否します。 デフォルトのセキュリティグループ。 | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、審査対象組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。 |
EC2 |
NetworkInterface には [ Name eq "default" ] の SecurityGroup があってはなりません |
| インターネットからの受信トラフィックは許可されていません | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、調査対象の組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。このルールは、セキュリティグループの受信ルールにおいて、パブリックIPアドレスを具体的にチェックします。 |
EC2 |
NetworkInterface には、[ InboundRules with [ IPv6Ranges with [ IPv6 isPublic ( ) ] または IPRanges with [ IP isPublic ( ) ] ] ] のセキュリティグループがあってはなりません。 |
| 受信ポート/プロトコルはすべて許可されていません | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、調査対象の組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。このルールは、すべてのポートが開いているセキュリティグループの受信ルールを具体的にチェックします。 |
EC2 |
セキュリティグループには、[プロトコルが「-1」で、(FromPortが0で、ToPortが65535)]というInboundRulesがあってはなりません。 |
| カード保有者のデータ環境からインターネットへの不正なアウトバウンドトラフィックを許可しないでください:アウトバウンドインターネットの制限なしは許可されません。 | 信頼できないネットワークとカード保有者のデータ環境内のシステムコンポーネント間の接続を制限するファイアウォールやルーターの設定を構築しましょう。注:信頼できないネットワークとは、審査対象組織に属するネットワークの外部にあるネットワーク、および/または組織が制御または管理できないネットワークを指します。 |
EC2 |
NetworkInterface には、[OutboundRules に [IPv6Ranges に [IPv6 in ( "::/0" ) ] または IPRanges に [IP in ( "0.0.0.0/0" ) ] ] を含む SecurityGroup があってはなりません。 |
| PANがどこに保存されている場所でも読み取れなくする:弱いRDSバックアップポリシー | 使うは、PANが保存されている場所(ポータブルデジタルメディア、バックアップメディア、ログなど)どこでも読み取れないようにする方法です。以下のいずれかの方法を用いてください:強暗号に基づく一方向ハッシュ(ハッシュはPAN全体のものでなければなりません)。 ; 切り捨て(ハッシュ化はできません PANの切り捨てられたセグメントを置き換えるため)。 インデックストークンとパッド(パッドは安全に保管する必要があります)。強力な暗号化技術と、それに関連する鍵管理プロセスおよび手順。; 注: 悪意のある人物が、PANの切り捨て版とハッシュ版の両方にアクセスできる場合、元のPAN日付を復元することは比較的容易です。エンティティの環境内に同じPANのハッシュ化バージョンと切り捨てバージョンが存在する場合、ハッシュ化バージョンと切り捨てバージョンを関連付けて元のPANを再構築できないようにするための追加の制御策を講じる必要があります。 |
RDS |
RDSInstance の BackupRetentionPeriod は 0 と等しくない必要があります |
| PANが保存されている場所すべてで読み取り不能にする:Redshiftクラスターは保存時に暗号化されない | 使うは、PANが保存されている場所(ポータブルデジタルメディア、バックアップメディア、ログなど)どこでも読み取れないようにする方法です。以下のいずれかの方法を用いてください:強暗号に基づく一方向ハッシュ(ハッシュはPAN全体のものでなければなりません)。 ; 切り捨て(ハッシュ化はできません PANの切り捨てられたセグメントを置き換えるため)。 インデックストークンとパッド(パッドは安全に保管する必要があります)。強力な暗号化技術と、それに関連する鍵管理プロセスおよび手順。; 注: 悪意のある人物が、PANの切り捨て版とハッシュ版の両方にアクセスできる場合、元のPAN日付を復元することは比較的容易です。エンティティの環境内に同じPANのハッシュ化バージョンと切り捨てバージョンが存在する場合、ハッシュ化バージョンと切り捨てバージョンを関連付けて元のPANを再構築できないようにするための追加の制御策を講じる必要があります。 |
RedShift |
RedShiftClusterは暗号化されたeqがtrueであるはずです |
| すべてのキー管理プロセスと暗号キーの手順を完全に文書化して実装する カード所有者の暗号化に費やすデータ : アクセス キーのローテーションの欠如 | 暗号期間が終了した鍵(例えば、一定期間経過後や一定量の暗号文が生成された後)に対する暗号鍵の変更は、AWSや鍵所有者によって定義され、業界のベストプラクティスやガイドラインに基づいて行われます(例: NIST特別刊行物800-57号)。 |
IAM |
IAMUser は [ Active かつ CreatedTime isEarlierThan ( -90, "days" ) ] の AccessKey を持つべきではありません |
| 送信中の機密性の高いカード所有者データを保護するための強力な暗号化とセキュリティプロトコル:Redshift Clusterではrequire_sslが無効になっています | 機密情報は公共ネットワーク上で送信される際に暗号化されなければなりません。なぜなら、悪意のある個人が転送中にデータを傍受したり、流用したりするのが簡単かつよくあるからです。 |
RedShift |
RedShiftClusterには、次の条件を満たすClusterParameterGroupが必要です。[ ClusterParameterGroup with [ ParameterName eq "require_ssl" and ParameterValue eq "true" ] ] |
| 重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。RDSインスタンスのマイナーバージョン自動アップグレードは無効になっています | 該当するAWS RDSInstanceのセキュリティパッチをインストールすることにより、すべてのシステムコンポーネントとソフトウェアが既知の脆弱性から保護されていることを確認してください。重要なセキュリティパッチは、リリース後1ヶ月以内にインストールしてください。 |
RDS |
RDSInstance は AutoMinorVersionUpgrade eq true である必要があります |
| カード所有者へのアクセスを制限する データ : すべてのロールに対して許可として効果があり、iam:PassRole としてアクションを持つ IAM ポリシー | システムコンポーネントおよびカード所有者データへのアクセスは、業務上アクセスが必要な担当者のみに限定する。 |
IAM |
IAMRoleにはポリシーがあってはなりません。[PolicyDocument に準拠。[ アクション [ 値が "iam:PassRole" と等しい ]] を含むステートメント |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションをすべてのロールに対してiam:PassRoleに設定する | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "iam:PassRole" ] およびリソース [値が "*" ] ] を含むステートメント |
| S3バケットでMFA削除が有効になっていることを確認してください。 | 機密性の高いS3バケットでMFA削除が有効になると、ユーザーは2種類の認証方法が必要になります。 |
S3 |
S3BucketにはBucketVersioningが必要です。ステータスが「有効」かつ BucketVersioning です。MFADelete eq "Enabled" |
| アクセス制御システムを確立する:IAM 効果を「許可」、アクションを「sts:AssumeRole」としてすべてのロールに対して設定する | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMRole には AssumeRolePolicy を設定すべきではありません。[ Action eq "sts:AssumeRole" and Principal を含むステートメント。AWSには("*") ] |
| アクセス制御システムを確立する:パスワード付きIAMヘッドレスユーザーアカウント | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMUser には、[ Active eq true ] と Password を持つ AccessKey が少なくとも 1 つあってはなりません。有効(True) |
| アクセス制御システムを確立する:すべてのユーザーにアクセス権を付与するS3バケットACL | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
S3 |
S3Bucket には、ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれていてはなりません。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] |
| アクセス制御システムを確立する:認証済みユーザーにアクセス権を付与するS3バケットACL | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
S3 |
S3BucketはACLを持たないべきです。[ ( Permission eq 「WRITE」 または Permission EQ 「WRITE_ACP」 または Permission EQ 「読む」または Permission EQ 「READ_ACP FULL_CONTROL」 ) と Grantee 。 タイプ eq "Group" および Grantee 。URIが「http://acs.amazonaws.com/groups/global/AuthenticatedUsers」と等しい] |
| アクセス制御システムを確立する:Allow および NotActions を使用した IAM ポリシー | システムコンポーネントへのアクセス制御システムを構築し、ユーザーの知る必要性に基づいてアクセスを制限し、特に許可されない限り「すべて拒否」するように設定してください。 |
IAM |
IAMPolicy には権限があってはなりません。[ Effect eq "Allow" and ( NotAction len ( ) gt 0 or Action with [ value eq "*" ] ) ] および ( AttachedEntities ) を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 90日以内に非アクティブなユーザーアカウントを削除/無効化する | すべてのシステムコンポーネントにおいて、非消費者ユーザーおよび管理者に対する適切なユーザー識別管理を確保するためのポリシーと手順を定義し、実施する。 |
IAM |
RootUser eq false の IAMUser には ( ( Password .有効化とパスワード。LastUsedTime isEarlierThan ( -90, "days" ) ) or ( AccessKey with [ Active and LastUsedTime isEarlierThan ( -90, "days" ) ] ) ) |
| 非消費者ユーザーおよび管理者のための適切なユーザー認証管理を確実にしてください:IAM 弱いパスワードポリシー | パスワード/パスフレーズは、以下の条件を満たす必要があります。最低でも7文字以上の長さが必要です。数字と英字の両方を含む。あるいは、パスワード/パスフレーズは、少なくとも上記で指定されたパラメータと同等の複雑さと強度を備えている必要があります。 |
IAM |
IAMPasswordPolicy には RequireUppercaseCharacters と RequireLowercaseCharacters および (MinimumPasswordLength gte 8 または RequireSymbols) が必要です。 |
| すべての個別の非コンソール管理アクセスとすべてのリモートアクセスを保護する 多要素認証:IAM ユーザーに多要素認証が不足している | 組織のネットワーク外から発信されるすべてのリモートネットワークアクセス(ユーザーと管理者、およびサポートやメンテナンスのための第三者アクセスを含む)に多要素認証を導入する |
IAM |
IAMUser のパスワード。Enabled eq true は MFAActive eq true であるべきです |
| すべてのシステムコンポーネントの自動監査証跡を実装する:CloudTrail - グローバルサービスイベントログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
CloudTrail |
CloudTrail は GlobalServiceEvents が true である必要があります |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:S3バケットへのアクセスに関するログ記録の欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 |
S3BucketにはLoggingEnabledが必要です |
| すべてのシステムコンポーネントに自動監査証跡を実装する:S3バケットにはバージョン管理機能がない | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 |
S3BucketにはBucketVersioningを設定すべきではありません。ステータスが「Suspended」またはBucketVersioningと等しい。ステータスが「無効」の場合 |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:Redshiftパラメータグループ、ログ記録の無効化 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
RedShift |
RedShiftCluster は LoggingEnabled が true である必要があります |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| インシデント対応計画の実施:RDSインスタンスにおけるマルチAZ展開の欠如 | システム侵害が発生した場合に実施するインシデント対応計画を作成する。最低限、役割、責任、コミュニケーション、コンタクト戦略、支払いブランドへの通知を含め、妥協時の戦略を計画に含めてください。 具体的なインシデント対応手順。事業復旧および事業継続手順。;データバックアップのプロセス。侵害報告に関する法的要件の分析。; すべての重要システムコンポーネントのカバー範囲と応答。決済ブランドからのインシデント対応手順の参照または組み込み |
RDS |
RDSInstance は MultiAZ が true である必要があります |
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |
| 名前 | デスクリプション | サービス | Rule |
|---|---|---|---|
| アイデンティティとクレデンシャル:「ルート」アカウントの使うは避け、最近のログイン履歴を確認してください。 | 「root」アカウントは、AWSアカウント内のすべてのリソースに対して無制限のアクセス権を持ちます。このアカウントの使うは避けることを強くお勧めします。 |
IAM |
RootUserがTrueであるIAMUserにはパスワードがあってはなりません。LastUsedTime isLaterThan ( -1, "日" ) |
| 認証: コンソールパスワードを持つすべてのIAMユーザーに対して、多要素認証(MFA)が有効になっていることを確認してください。 | 多要素認証(MFA)は、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAを有効にすると、ユーザーがAWSのウェブサイトにサインインすると、ユーザー名とパスワード、さらにAWS MFAデバイスからの認証コードを入力するよう求められます。 コンソールパスワードを持つすべてのアカウントで、多要素認証(MFA)を有効にすることをお勧めします。 |
IAM |
IAMUser where ( RootUser eq false and Password 。Enabled eq true ) は MFAActive eq true である必要があります |
| ID とクレデンシャル: 90 日以上使用されていないパスワードが無効になっていることを確認する | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないパスワードはすべて無効化することをお勧めします。 |
IAM |
RootUser eq False の IAMUser には ( Password ) があってはなりません。有効化とパスワード。LastUsedTime isEarlierThan ( -90, "日" ) ) |
| リモートアクセス:90日間以上使用されていないアクセスキーは無効化されていることを確認してください。 | AWS IAM ユーザーは、パスワードやアクセス キーなど、さまざまなタイプのクレデンシャルを使用して AWS リソースにアクセスできます。 90日以上使用されていないアクセスキーはすべて無効化することをお勧めします。 |
IAM |
RootUserがFalseのIAMUserは、[ActiveかつLastUsedTimeが-90日以上前]のAccessKeyを持つべきではない。 |
| リモートアクセス:アクセスキーは90日以内、またはそれよりも短い期間で交換するようにしてください。 | アクセスキーは、アクセスキーIDとシークレットアクセスキーで構成され、 AWSに対して行うプログラムによるリクエストに署名するために使用されます。 AWS ユーザーは、AWS コマンドラインインターフェイス (AWS CLI)、Windows PowerShell 用ツール、AWS SDK、または直接 HTTP 呼び出しからプログラムによる AWS 呼び出しを行うために、独自のアクセス キーが必要です。 個々の AWS サービスの API 。 アクセスキーは定期的に交換することをお勧めします。 |
IAM |
IAMUser は [ Active かつ LastRotatedTime isEarlierThan ( -90 , "days" ) ] の AccessKey を持つべきではありません |
| アイデンティティとクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの大文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは少なくとも1つの大文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireUppercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの小文字が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには少なくとも1つの小文字を要求することが推奨されています。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireLowercaseCharactersが必要です。 |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの記号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーでは、少なくとも1つの記号を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireSymbolsが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーに少なくとも 1 つの番号が必要であることを確認します。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAMパスワードポリシーは、パスワードが異なる文字セットで構成されていることを保証するために使うすることができます。 パスワードポリシーには、少なくとも1つの数字を含めることを推奨します。 |
IAM |
IAMPasswordPolicyにはConfiguredとRequireNumbersが必要です |
| ID とクレデンシャル: IAM パスワード ポリシーでは最小長が 14 以上であることを確認してください。 | パスワードポリシーは部分的にパスワードの複雑さ要件を強制するために使うしています。 IAM パスワード ポリシーは、パスワードが少なくとも指定された長さであることを保証するために使用できます。 パスワードポリシーでは、パスワードの最小文字数を14文字とすることが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured に設定され、MinimumPasswordLength は 14 以上である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーによりパスワードの再利用が防止されるようにする | IAMパスワードポリシーを使用すると、同じユーザーによる同じパスワードの再利用を防ぐことができます。パスワードポリシーでは、パスワードの使い回しを禁止することが推奨されます。 |
IAM |
IAMPasswordPolicy は Configured かつ PasswordReusePrevention >= 24 である必要があります。 |
| ID とクレデンシャル: IAM パスワード ポリシーにより、パスワードの有効期限が 90 日以内であることを確認します。 | IAMのパスワードポリシーは、パスワードのローテーションや有効期限を一定日数後に要求することがあります。パスワードポリシーは90日以内にパスワードを有効期限にすることが推奨されています。 |
IAM |
IAMPasswordPolicyには、Configured、ExpirePasswords、MaxPasswordAgeが必要です。 |
| リモートアクセス:ルートアカウントのアクセスキーが存在しないことを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。AWSアクセスキーは、指定されたAWSアカウントへのプログラムによるアクセス権限を提供します。ルートアカウントに関連付けられているすべてのアクセスキーを削除することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、[ActiveがTrue]であるAccessKeyを持つべきではない。 |
| 認証:rootアカウントに対してMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティを強化するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueであるべきである。 |
| 認証:rootアカウントに対してハードウェアMFAが有効になっていることを確認してください。 | ルートアカウントは、AWSアカウント内で最も権限の高いユーザーです。MFAは、ユーザー名とパスワードに加えて、さらにセキュリティ層を追加するものです。MFAが有効になっている場合、ユーザーがAWSウェブサイトにサインインすると、ユーザー名とパスワード、およびAWS MFAからの認証コードの入力を求められます。 。 レベル2の場合、ルートアカウントをハードウェアMFAで保護することをお勧めします。 |
IAM |
RootUserがTrueであるIAMUserは、MFAActiveがtrueでMFADevicesを持つ必要があります。物理長()> 0 |
| アクセス権限と承認: IAM がグループまたはロールにのみ関連付けられていることを確認してください。 | デフォルトでは、IAMユーザー、グループ、およびロールはAWSリソースにアクセスできません。IAMポリシーは、ユーザー、グループ、または役割に権限を付与する手段です。 IAMポリシーはグループやロールに直接適用することが推奨されますが、ユーザーには適用しないことが推奨されます。 |
IAM |
IAMUser は( ポリシー .管理されたレン()eq 0とポリシー。インライン len ( ) eq 0 ) |
| リモートアクセス: コンソールパスワードを持つすべてのIAMユーザーに対して、初期ユーザー設定時にアクセスキーを設定しないでください。 | AWSコンソールでは、アクセスキーを作成するためのチェックボックスがデフォルトで有効になっています。その結果、不必要に多くのアクセスキーが生成されることになる。不要なクレデンシャルに加え、これらの鍵の監査やローテーションに不必要な管理作業も生み出します。 |
IAM |
IAMUser のパスワード。Enabled eq true は [ Active および CreatedByDefault ] の AccessKey を持つべきではありません |
| アクセス権限と承認: IAM 完全な「*:*」管理権限を許可するIAMが作成されないようにしてください。 | IAM は、ユーザー、グループ、またはロールに権限を付与するための手段です。 最小権限の付与、つまりタスクを実行するために必要な権限のみを付与することは、推奨される標準的なセキュリティ対策と考えられています。ユーザーが何をする必要があるかを判断し、完全な管理者権限を与えるのではなく、ユーザーがそれらのタスクのみを実行できるようにするポリシーを作成します。 |
IAM |
IAMPolicy には権限があってはなりません。[アクション [値が "*" ] とリソース [値が "*" ] と効果 "Allow" ] および ( AttachedEntities を含むステートメント。グループの長さ ( ) が 0 より大きいか、AttachedEntities です。ロールの長さ ( ) が 0 より大きいか、添付エンティティです。ユーザー数()> 0) |
| 監査/ログ記録:CloudTrailが有効になっていることを確認してください。 | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、ログファイルをあなたに提供するウェブサービスです。記録される情報には、API呼び出し元のID、API呼び出し時刻、API呼び出し元の送信元IPアドレス、リクエストパラメータ、およびAWSサービスから返されたレスポンス要素が含まれます。CloudTrailは、アカウントのAWS API呼び出し履歴を提供します。これには、管理コンソール、SDK、コマンドラインツール、および上位レベルのAWSサービス(CloudFormationなど)を介して行われたAPI呼び出しが含まれます。 |
CloudTrail |
AWSには、[MultiRegionTrailEnabled かつ LoggingEnabled eq True] が設定されているCloudTrailが少なくとも1つ必要です。 |
| 監査証跡を改ざんできないように保護する:CloudTrailログファイルには整合性検証機能が欠けている | 使うファイル整合性の監視やCloudTrailログの変更検出を行い、既存のログデータが変更されないようにし、アラートが発生しないようにします(ただし新しいデータの追加はアラートを発生させるべきではありません)。 |
CloudTrail |
CloudTrailではLogFileValidationEnabledが有効になっている必要があります。 |
| 監査/ログ記録:CloudTrailがログを記録するS3バケットが一般公開されていないことを確認してください。 | CloudTrailは、AWSアカウントで行われたすべてのAPI呼び出しの記録をログに記録します。これらのログファイルはS3バケットに保存されます。CloudTrailがログを記録するS3バケットには、バケットポリシーまたはアクセス制御リスト(ACL)を適用し、CloudTrailログへの公開アクセスを防ぐことが推奨されます |
S3 CloudTrail |
CloudTrail は S3Bucket を持つべきではありません。ACL に [ ( Permission eq "WRITE" or Permission eq "WRITE_ACP" or Permission eq "" or Permission eq "READ_ACP" or Permission eq "FULL_CONTROL" ) と Grantee が含まれます。 URIが「http://acs.amazonaws.com/groups/global/AllUsers」と等しい] または S3Bucket。BucketPolicy ([ Statement ( Effect eq "Allow" and Principal ( value eq "*" ] and Conditions len ( ) eq 0 ] ] |
| 監査/ログ記録:CloudTrailのログがCloudWatch Logsと統合されていることを確認してください。 | AWS CloudTrailは、特定のAWSアカウント内で行われたAWS API呼び出しを記録するウェブサービスです。記録された情報には、API呼び出し元の識別元、API呼び出し時間、API呼び出し元のIPアドレス、リクエストパラメータ、AWSサービスから返されるレスポンス要素が含まれます。CloudTrail 使う Amazon S3 はログファイルの保存と配信に使われ、ログファイルを長く保存できます。 長期分析のためにCloudTrailのログを特定のS3バケット内にキャプチャすることに加え、CloudTrailを設定してログをCloudWatch Logsに送信することで、リアルタイム分析も実行できます。アカウント内のすべてのリージョンでトレイルが有効になっている場合、CloudTrail はそれらのすべてのリージョンからのログファイルを CloudWatch Logs ロググループに送信します。CloudTrailのログをCloudWatch Logsに送信することを推奨します。 |
CloudTrail |
CloudTrail には LogGroup が必要です。作成日 > 0 |
| 監査/ログ記録:すべてのリージョンでAWS Configが有効になっていることを確認してください。 | AWS Configは、お客様のアカウント内のサポートされているAWSリソースの構成管理を実行し、ログファイルを配信するウェブサービスです。 記録される情報には、構成項目(AWSリソース)、構成項目(AWSリソース)間の関係、リソース間の構成変更が含まれます。AWS Configによって取得されるAWS構成アイテムの履歴は、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査を可能にします。AWS Configはすべてのリージョンで有効にすることをお勧めします。 |
CloudTrail 設定 |
AWS には ( [ Status および RecordingGroup を含む ConfigRecorders が必要です。AllSupported ] ) および ConfigDeliveryChannels with [ StreamDelivery 。LastSuccess と HistoryDelivery 。最後の成功 ] |
| すべてのシステムコンポーネントに対して自動監査証跡を実装する:CloudTrail - APIアクセスログの欠如 | すべてのシステムコンポーネントに対して自動監査トレールを実装し、以下のイベントを再構築します:すべての個別ユーザーがカードホルダーデータへのアクセス;ルート権限または管理者権限を持つ個人が行うすべての行動;すべての監査記録へのアクセス;無効な論理アクセス試行;使う および識別および認証機構の変更;監査ログの初期化、停止、または一時停止;システムレベルのオブジェクトの作成と削除。 |
S3 CloudTrail |
CloudTrailにはS3Bucketが必要です。ログ記録有効 |
| 監査/ログ記録:CloudTrailログが静止時に暗号化されていることを確認してください 使う KMS CMKs | AWS CloudTrailは、アカウントのAWS API呼び出しを記録し、IAMに従ってそれらのログをユーザーとリソースに提供するウェブサービスです。 。 AWS Key Management Service (KMS) は、アカウント データの暗号化に使用する暗号化キーの作成と制御、および暗号化キーのセキュリティを保護するためのハードウェア セキュリティ モジュール (HSM) の使用を支援するマネージド サービスです。 CloudTrailログは、サーバー側暗号化(SSE)とKMS顧客作成マスターキー(CMK)を活用するように構成することで、CloudTrailログをさらに保護できます。CloudTrailは以下のように設定することをお勧めします。 SSE-KMS |
CloudTrail |
CloudTrailにはKMSKeyが必要です。有効 |
| 保存データは保護されています。顧客が作成したCMKのローテーションが有効になっていることを確認してください。 | AWS Key Management Service (KMS) を使用すると、顧客は、KMS 内に保存されているキーマテリアルであるバッキングキーをローテーションできます。このバッキングキーは、顧客が作成した顧客マスターキー (CMK) のキー ID に関連付けられています。これは、暗号化や復号化などの暗号化操作を実行するために使用されるバッキング キーです。 自動鍵ローテーション機能は現在、以前のすべてのバックアップ鍵を保持するため、暗号化されたデータの復号化が透過的に行われる。CMKキーローテーションを有効にすることをお勧めします。 |
KMS |
KMSKey where リプション notlike "Default master key that protects my.*" should have RotationEnabled |
| ベースラインネットワーク操作およびデータフロー:すべてのVPCでVPCフローログが有効であることを確認しましょう | VPCフローログは、VPC内のネットワークインターフェイスとの間で送受信されるIPトラフィックに関する情報をキャプチャできる機能です。フローログを作成した後は、Amazon CloudWatch Logsでそのデータを閲覧・取得できます。VPC のパケット「拒否」については、VPC フローログを有効にすることをお勧めします。 |
EC2 |
VPCには、[Status eq "ACTIVE"] のFlowLogが少なくとも1つ必要です。 |
| リモートアクセス:不正なAPI呼び出しに対してログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。不正なAPI呼び出しに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.errorCode\s*=\s*\"\*UnauthorizedOperation\"\)\s*\|\|\s*\(\$\.errorCode\s*=\s*\"AccessDenied\*\"\)\s*\|\|\s*\(\$\.sourceIPAddress\s*!=\s*\"delivery\.logs\.amazonaws\.com\"\)\s*\|\|\s*\(\$\.eventName\s*!=\s*\"HeadBucket\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 識別とクレデンシャル:MFAなしで管理コンソールのサインイン時にログメトリックフィルターとアラームが存在することを保証します | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。多要素認証(MFA)で保護されていないコンソールログインに対しては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*\"ConsoleLogin\"\)\s*\&\&\s*\(\$\.additionalEventData\.MFAUsed\s*!=\s*\"Yes\"\)\s*\&\&\s*\(\$\.userIdentity\.type\s*=\s*\"IAMUser\"\)\s*\&\&\s*\(\$\.responseElements\.ConsoleLogin\s*=\s*\"Success\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: 「root」アカウントの使用に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルートログイン試行に対してメトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "{\s*\$\.userIdentity\.type\s*=\s*\"Root\"\s*\&\&\s*\$\.userIdentity\.invokedBy\s*NOT\s*EXISTS\s*\&\&\s*\$\.eventType\s*!=\s*\"AwsServiceEvent\"\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: IAM ポリシーの変更に対してログ メトリック フィルターとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。アイデンティティおよびアクセス管理(IAM)ポリシーの変更には、メトリックフィルターとアラームの設定が推奨されます。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*DeleteGroupPolicy\)\|\|\(\$\.eventName\s*=\s*DeleteRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutGroupPolicy\)\s*\|\| \s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreatePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*Delete ntName\s*=\s*CreatePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeletePolicyVersion\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachRolePolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachRolePolicy\)\s*\|\|\s*\ (\$\.eventName\s*=\s*AttachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachUserPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachGroupPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachGroupPolicy\)\s*\}" および [ MetricAlarms と [ AlarmActions と [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録:CloudTrail構成変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*UpdateTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteTrail\)\s*\|\|\s*\(\$\.eventName\s*=\s*StartLogging\)\s*\|\|\s*\(\$\.eventName\s*=\s*StopLogging\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ID とクレデンシャル: AWS マネジメント コンソールの認証失敗に対するログ メトリック フィルターとアラームが存在することを確認します。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。コンソール認証の失敗試行に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*ConsoleLogin\)\s*\&\&\s*\(\$\.errorMessage\s*=\s*\"Failed\s*authentication\"\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 保存データは保護されています。顧客が作成したCMKの無効化またはスケジュールされた削除のためのログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。顧客が作成したCMKのうち、状態が無効または削除予定に変更されたものについては、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*kms\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=DisableKey\)\s*\|\|\s*\(\$\.eventName=ScheduleKeyDeletion\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| S3バケットポリシーの変更に対してログメトリックフィルターとアラームが存在することを確認してください | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。S3バケットポリシーの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*s3\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName\s*=\s*PutBucketAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*PutBucketLifecycle\)\s*\|\|\s*\(\$\ .eventName\s*=\s*PutBucketReplication\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketPolicy\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketCors\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketLifecycle\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteBucketReplication\)\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 監査/ログ記録: AWS Config 構成変更に対するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。CloudTrailの設定変更を検出するために、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters には [ FilterPattern like "\{\s*\(\$\.eventSource\s*=\s*config\.amazonaws\.com\)\s*\&\&\s*\(\(\$\.eventName=StopConfigurationRecorder\)\s*\|\|\s*\(\$\.eventName=DeleteDeliveryChannel\)\s*\|\|\(\$\.eventName=PutDeliveryChannel\)\s*\|\|\s*\(\$\.eventName=PutConfigurationRecorder\)\)\s*\}" と Transformations には [ MetricAlarms には [ AlarmActions には [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークアクセス制御リスト(NACL)の変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。NACLは VPC内のサブネットのイングレスおよびエグレストラフィックを制御するステートレスパケットフィルタとして機能します。 NACLへの変更に対して、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAcl\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclEntry\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceNetworkAclAssociation\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ SNSTopic ] を含む)) 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ネットワークゲートウェイの変更に関するログメトリックフィルタとアラームが存在することを確認してください。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ネットワークゲートウェイは、VPC外部の宛先にトラフィックを送受信するために必要です。ネットワークゲートウェイの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudWatch CloudTrail |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters ([ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteCustomerGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteInternetGateway\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachInternetGateway\)\s*\}" および Transformations ([ MetricAlarms ([ AlarmActions ([ ) SNSトピック。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:ルーティングテーブルの変更に関するログメトリックフィルタとアラームが存在することを確認する。 | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。ルーティングテーブルは サブネット間およびネットワークゲートウェイへのネットワークトラフィックのルーティングに使用されます。 ルートテーブルの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。MetricFilters with [ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*ReplaceRouteTableAssociation\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRouteTable\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteRoute\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisassociateRouteTable\)\s*\}" および [ を使用した変換MetricAlarms と [ AlarmActions と [ SNSTopic 。購読者数 len() > 0 ] ] ] ] ] |
| ネットワークの整合性:VPCの変更に関するログメトリックフィルタとアラームが存在することを確認する | CloudTrail LogsをCloudWatch Logsに送信し、対応するメトリックフィルタとアラームを設定することで、API呼び出しのリアルタイム監視を実現できます。1つのアカウント内に複数のVPCを作成することが可能です。さらに、2つのVPC間でピア接続を作成し、VPC間でネットワークトラフィックをルーティングすることもできます。VPCへの変更については、メトリックフィルタとアラームを設定することをお勧めします。 |
CloudTrail CloudWatch |
AWS には少なくとも 1 つの CloudTrails と [ LogGroup ] が必要です。[ FilterPattern like "\{\s*\(\$\.eventName\s*=\s*CreateVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*ModifyVpcAttribute\)\s*\|\|\s*\(\$\.eventName\s*=\s*AcceptVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*CreateVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*DeleteVpcPee ringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*RejectVpcPeeringConnection\)\s*\|\|\s*\(\$\.eventName\s*=\s*AttachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DetachClassicLinkVpc\)\s*\|\|\s*\(\$\.eventName\s*=\s*DisableVpcClassicLink\)\s*\|\|\s*\(\$\.eventName\s*=\s*EnableVpcClassicLink\)\s*\}" および Transformations with [ MetricAlarms with [ AlarmActions with [ SNSTopic .購読者数 len() > 0 ] ] ] ] ] |
| 通信および制御ネットワークの保護:セキュリティグループが0.0.0.0/0からポート22への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート22への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 22かつToPort gte 22)かつプロトコルが("-1", "tcp")]である受信ルールがあってはなりません。 |
| 通信および制御ネットワークの保護: セキュリティ グループが 0.0.0.0/0 からポート 3389 への侵入を許可しないことを確認してください。 | セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。どのセキュリティグループも、ポート3389への無制限の侵入アクセスを許可しないことを推奨します。 |
EC2 |
セキュリティグループには、[IP範囲が[IP eq 0.0.0.0/0]かつ(FromPort lte 3389およびToPort gte 3389)かつプロトコルが("-1", "udp", "tcp")]である受信ルールがあってはなりません。 |
| 各VPCのデフォルトセキュリティグループがすべてのトラフィックを制限することを確認してください。 | VPCにはデフォルトのセキュリティグループが付属しており、その初期設定では、すべての受信トラフィックを拒否し、すべての送信トラフィックを許可し、セキュリティグループに割り当てられたインスタンス間のすべてのトラフィックを許可します。インスタンス起動時にセキュリティグループを指定しない場合、インスタンスは自動的にこのデフォルトのセキュリティグループに割り当てられます。セキュリティグループは、AWSリソースへのイングレス/エグレスネットワークトラフィックのステートフルフィルタリングを提供します。デフォルトのセキュリティグループでは、すべてのトラフィックを制限することをお勧めします。各リージョンのデフォルトVPCは、準拠するようにデフォルトセキュリティグループを更新する必要があります。新しく作成されたVPCには、自動的にデフォルトのセキュリティグループが含まれますが、この推奨事項に準拠するためには、そのセキュリティグループを修復する必要があります。 |
EC2 |
名前が「default」であるセキュリティグループには、InboundRules len ( ) eq 0 および OutboundRules len ( ) eq 0 が必要です。 |
| 担当者は対応の役割と手順を理解している必要があります。AWSサポートとのインシデント管理のためにサポートロールが作成されていることを確認してください。 | AWSはインシデント通知や対応、技術サポート、カスタマーサービスのための使うサポートセンターを提供しています。 承認されたユーザーがAWSサポートとのインシデントを管理できるように、IAMロールを作成します。 |
IAM |
AWSは少なくとも1つのIAMPoliciesを持つべきです。[ id eq "arn:aws:iam::aws:policy/AWSSupportAccess" と AttachedEntities 。 役割の長さ ( ) > 0 ] |