AWS CDK CfnPatchBaseline,Microsoft 应用程序的批准规则

AWS CDK CfnPatchBaseline, Approval rules for Microsoft applications

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

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

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

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

我尝试创建新的 patchFilter,以 PRODUCT_FAMILY 作为键,以 SQL Server 作为值

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

但我收到以下错误:“无效的过滤器值:SQL 服务器的密钥:PRODUCT_FAMILY,有效值为:WINDOWS”.

我用来创建 Windows 服务器补丁基准的代码。

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 创建。屏幕截图中的规则是从控制台手动创建的。

此线程是此线程的跟进 -

我们还需要将 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: ['*']
                    }
                ]
            }
        };