Amazon Web Services ブログ

NEW — AWS Config ルールがプロアクティブなコンプライアンスをサポートするようになりました

ビジネスを運営する際には、クラウド運用のスピードと制御の適切なバランスを見つける必要があります。一方で、アプリケーションに必要なクラウドリソースの迅速なプロビジョニングも必要です。同時に、業界によっては、規制、セキュリティ、および運用上のベストプラクティスへのコンプライアンスを維持する必要があります。

AWS Config にはルールが用意されており、これを検出モードで実行して、AWS リソースの構成設定が希望する構成設定に準拠しているかどうかを評価できます。2022/11/28、AWS Config ルールをプロアクティブモードに対応するように拡張いたします。これにより、プロビジョニング前であればいつでも実行でき、カスタムのデプロイ前検証の実装に費やす時間を節約できます。

標準リソーステンプレートを作成する場合、プラットフォームチームは AWS Config ルールをプロアクティブモードで実行して、組織全体で共有する前に準拠しているかどうかをテストできます。新しいサービスや新機能を実装する場合、開発チームは継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインの一部としてプロアクティブモードでルールを実行して、非準拠のリソースを特定できます。

また、デプロイパイプラインで AWS CloudFormation Guard を使用してコンプライアンスを事前に確認し、リソースがプロビジョニングされる前と後の両方で一貫したポリシーセットが適用されるようにすることもできます。

ここからは、実際にどのように機能するのかを見ていきましょう。

AWS Config によるプロアクティブコンプライアンスの使用
AWS Config コンソールのナビゲーションペインで [ルール] を選択します。ルールテーブルに、ルールがプロアクティブディテクティブかを指定する新しい [有効化された評価モード] 列が表示されます。それでは、最初のルールを設定しましょう。

コンソールのスクリーンショット。

[ルールを追加] を選択し、[AWS マネージドルール] 検索ボックスに「rds-storage」と入力して、rds-storage-encrypted ルールを検索します。このルールは、Amazon Relational Database Service (RDS) DB インスタンスでストレージ暗号化が有効になっているかどうかを確認し、事前評価モードまたは検出評価モードで追加できます。[次へ] を選択します。

コンソールのスクリーンショット。

評価モードセクションで、事前評価を有効にします。これで、プロアクティブ評価スイッチとディテクティブ評価スイッチの両方が有効になりました。

コンソールのスクリーンショット。

他の設定はすべてデフォルト値のままにして、[次へ] を選択します。次のステップでは、構成を確認してルールを追加します。

コンソールのスクリーンショット。

これで、AWS Config API (AWS コマンドラインインターフェイス (CLI)AWS SDK を含む) または CloudFormation Guard を使用してプロアクティブなコンプライアンスを利用できるようになりました。CI/CD パイプラインで、リソースを作成する前に AWS Config API を使用してリソースのコンプライアンスを確認できます。AWS CloudFormation を使用してデプロイする場合、CloudFormation フックを設定して、実際のデプロイが行われる前に設定を事前に確認することができます。

AWS CLI を使用して例を見てみましょう。まず、CloudFormation スキーマを使用して、リソース ID (参照のみ)、リソースタイプ、およびその構成を入力して StartProactiveEvaluationResponse API を呼び出します。簡単にするために、データベース構成では StorageEncrypted オプションのみを使用し、これを true に設定して評価に合格しました。評価タイムアウトは 60 秒ですが、このルールでは十分すぎるほどです。

aws configservice start-resource-evaluation --evaluation-mode PROACTIVE \
    --resource-details '{"ResourceId":"myDB",
                         "ResourceType":"AWS::RDS::DBInstance",
                         "ResourceConfiguration":"{\"StorageEncrypted\":true}",
                         "ResourceConfigurationSchemaType":"CFN_RESOURCE_SCHEMA"}' \
    --evaluation-timeout 60
{
    "ResourceEvaluationId": "be2a915a-540d-4595-ac7b-e105e39b7980-1847cb6320d"
}

GetResourceEvaluationSummary API を使用して評価ステータスを確認するために使用する ResourceEvaluationId を出力に戻します。最初は、評価は IN_PROGRESS です。通常、COMPLIANT または NON_COMPLIANT の結果が得られるまでに数秒かかります。

aws configservice get-resource-evaluation-summary \
    --resource-evaluation-id be2a915a-540d-4595-ac7b-e105e39b7980-1847cb6320d
{
    "ResourceEvaluationId": "be2a915a-540d-4595-ac7b-e105e39b7980-1847cb6320d",
    "EvaluationMode": "PROACTIVE",
    "EvaluationStatus": {
        "Status": "SUCCEEDED"
    },
    "EvaluationStartTimestamp": "2022-11-15T19:13:46.029000+00:00",
    "Compliance": "COMPLIANT",
    "ResourceDetails": {
        "ResourceId": "myDB",
        "ResourceType": "AWS::RDS::DBInstance",
        "ResourceConfiguration": "{\"StorageEncrypted\":true}"
    }
}

予想どおり、Amazon RDS の設定は rds-storage-encrypted ルールに準拠しています。StorageEncryptedfalse に設定して前の手順を繰り返すと、非準拠の結果が表示されます。

1 つのリソースタイプに対して複数のルールが有効になっている場合は、該当するすべてのルールがリソース評価のためにプロアクティブモードで実行されます。リソースの個々のルールレベルのコンプライアンスを調べるために、GetComplianceDetailsByResource API を呼び出すことができます。

aws configservice get-compliance-details-by-resource \
    --resource-evaluation-id be2a915a-540d-4595-ac7b-e105e39b7980-1847cb6320d
{
    "EvaluationResults": [
        {
            "EvaluationResultIdentifier": {
                "EvaluationResultQualifier": {
                    "ConfigRuleName": "rds-storage-encrypted",
                    "ResourceType": "AWS::RDS::DBInstance",
                    "ResourceId": "myDB",
                    "EvaluationMode": "PROACTIVE"
                },
                "OrderingTimestamp": "2022-11-15T19:14:42.588000+00:00",
                "ResourceEvaluationId": "be2a915a-540d-4595-ac7b-e105e39b7980-1847cb6320d"
            },
            "ComplianceType": "COMPLIANT",
            "ResultRecordedTime": "2022-11-15T19:14:55.588000+00:00",
            "ConfigRuleInvokedTime": "2022-11-15T19:14:42.588000+00:00"
        }
    ]
}

これらの詳細を確認しても目的のルールが呼び出されない場合は、プロアクティブモードが有効になっていることを確認してください。

可用性と料金
プロアクティブコンプライアンスは、AWS Config が提供されているすべての商用 AWS リージョンで利用できますが、これらすべてのリージョンにこの新しい機能をデプロイするには数日かかる場合があります。このデプロイが完了したら、この記事を更新します。どの AWS Config ルールをプロアクティブモードに切り替えることができるかを確認するには、デベロッパーガイドを参照してください。

記録された AWS Config ルール評価の数に基づいて課金されます。ルール評価は、リソースが AWS Config ルールに準拠しているかどうかを評価するたびに記録されます。ルール評価は、検出モードまたはプロアクティブモード (該当する場合) で実行できます。ディテクティブモードとプロアクティブモードの両方でルールを実行している場合、ディテクティブモードでの評価に対してのみ課金されます。詳細については、「AWS Backup の料金」を参照してください。

この新機能により、プロビジョニング前に AWS Config を使用してルールを確認できるため、独自のカスタム検証を実装する必要がなくなります。

Danilo

原文はこちらです。