0

我的目标是部署 CfnPatchBaseline,它使用 CDK 和 TypeScript 在 Windows Server 上指定 SQL 的批准规则。

我已经使用 CDK 为 Windows 服务器实例成功创建了 CfnPatchBaseline。这意味着我能够控制操作系统层的更新。

现在我也想控制应用层的更新。

在 AWS 控制台(浏览器界面)中,我可以在补丁基准中为 Microsoft 应用程序指定批准规则,它工作得很好。问题是我不知道如何在 CDK 中复制同样的东西。

我试图以PRODUCT_FAMILY作为键和SQL Server作为值来创建新的 patchFilter

const patchFilterProductWindowsServerSQL = {
            key: 'PRODUCT_FAMILY',
            values: ['SQL Server']
        };

但我收到以下错误:“无效的筛选值:用于键的 SQL Server:PRODUCT_FAMILY,有效值为:WINDOWS”

我用于创建 Windows Server 补丁基准的代码。

const patchFilterProductWindowsServer = {
            key: 'PRODUCT',
            values: ['WindowsServer2019']
        };

const patchFilterClassificationWindowsServer = {
            key: 'CLASSIFICATION',
            values: [
                'CriticalUpdates',
                'SecurityUpdates',
                'Updates'
            ]
        };

const patchFilterSeverityWindowsServer = {
            key: 'MSRC_SEVERITY',
            values: [
                'Critical',
                'Important'
            ]
        };

const patchBaselinePatchFilterGroupWindowsServer = {
            patchFilters: [
                patchFilterProductWindowsServer,
                patchFilterClassificationWindowsServer,
                patchFilterSeverityWindowsServer
            ]
        };

const patchBaselineRuleHighWindowsServer = {
            approveAfterDays: 7,
            complianceLevel: "HIGH",
            patchFilterGroup: patchBaselinePatchFilterGroupWindowsServer
        };

const patchBaselineRuleGroupWindowsServer = {
            patchRules: [
                patchBaselineRuleHighWindowsServer
            ]
        };

const patchBaselineWinServer = new ssm.CfnPatchBaseline(this, "Windows-Server-CritImp-CDK", {
            name: "Windows-Server-CritImp-CDK",
            operatingSystem: "WINDOWS",
            patchGroups: "Windows-Server-CDK",
            approvalRules: patchBaselineRuleGroupWindowsServer
        });

我的批准规则的 AWS 控制台屏幕截图,我可以使用 CDK 创建,以及Microsoft 应用程序的批准规则,我无法使用 CDK 创建。屏幕截图中的规则是从控制台手动创建的。 在此处输入图像描述

这个线程是这个线程的后续 - AWS CDK PatchBaseline - TypeScript

4

1 回答 1

0

我们还需要将 PATCH_SET 显式指定为“APPLICATION”。以下代码完成了这项工作。

const patchBaselineRuleHighWindowsServerSQL = {
            approveAfterDays: 7,
            complianceLevel: "HIGH",
            patchFilterGroup: {
                patchFilters: [
                    {
                        key: 'PRODUCT_FAMILY',
                        values: ['SQL Server']
                    },
                    {
                        key: 'PATCH_SET',
                        values: ['APPLICATION']
                    },
                    {
                        key: 'MSRC_SEVERITY',
                        values: [
                            'Critical',
                            'Important'
                        ]
                    },
                    {
                        key: 'CLASSIFICATION',
                        values: [
                            'CriticalUpdates',
                            'SecurityUpdates'
                        ]
                    },
                    {
                        key: 'PRODUCT',
                        values: ['*']
                    }
                ]
            }
        };
于 2021-08-23T10:24:23.030 回答