使用 AWS CLI 的 Firewall Manager 示例 - AWS Command Line Interface

本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南

使用 AWS CLI 的 Firewall Manager 示例

以下代码示例演示了如何通过将 AWS Command Line Interface与 Firewall Manager 结合使用,来执行操作和实现常见场景。

操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。

主题

操作

以下代码示例演示了如何使用 associate-admin-account

AWS CLI

设置 Firewall Manager 管理员账户

以下 associate-admin-account 示例设置 Firewall Manager 的管理员账户。

aws fms associate-admin-account \ --admin-account 123456789012

此命令不生成任何输出。

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的设置 AWS Firewall Manager 管理员账户

以下代码示例演示了如何使用 delete-notification-channel

AWS CLI

删除 Firewall Manager 日志的 SNS 主题信息

以下 delete-notification-channel 示例删除 SNS 主题信息。

aws fms delete-notification-channel

此命令不生成任何输出。

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的配置 Amazon SNS 通知和 Amazon CloudWatch 警报

以下代码示例演示了如何使用 delete-policy

AWS CLI

删除 Firewall Manager 策略

以下 delete-policy 示例删除具有指定 ID 的策略及其所有资源。

aws fms delete-policy \ --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --delete-all-policy-resources

此命令不生成任何输出。

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的使用 AWS Firewall Manager 策略

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeletePolicy

以下代码示例演示了如何使用 disassociate-admin-account

AWS CLI

删除 Firewall Manager 管理员账户

以下 disassociate-admin-account 示例从 Firewall Manager 中删除当前的管理员账户关联。

aws fms disassociate-admin-account

此命令不生成任何输出。

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的设置 AWS Firewall Manager 管理员账户

以下代码示例演示了如何使用 get-admin-account

AWS CLI

检索 Firewall Manager 管理员账户

以下 get-admin-account 示例检索管理员账户。

aws fms get-admin-account

输出:

{ "AdminAccount": "123456789012", "RoleStatus": "READY" }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的 AWS Firewall Manager 先决条件

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetAdminAccount

以下代码示例演示了如何使用 get-compliance-detail

AWS CLI

检索账户的合规信息

以下 get-compliance-detail 示例检索指定策略和成员账户的合规信息。

aws fms get-compliance-detail \ --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111 \ --member-account 123456789012

输出:

{ "PolicyComplianceDetail": { "EvaluationLimitExceeded": false, "IssueInfoMap": {}, "MemberAccount": "123456789012", "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyOwner": "123456789012", "Violators": [] }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的查看资源的策略合规性

以下代码示例演示了如何使用 get-notification-channel

AWS CLI

检索 Firewall Manager 日志的 SNS 主题信息

以下 get-notification-channel 示例检索 SNS 主题信息。

aws fms get-notification-channel

输出:

{ "SnsTopicArn": "arn:aws:sns:us-west-2:123456789012:us-west-2-fms", "SnsRoleName": "arn:aws:iam::123456789012:role/aws-service-role/fms.amazonaws.com/AWSServiceRoleForFMS" }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的配置 Amazon SNS 通知和 Amazon CloudWatch 警报

以下代码示例演示了如何使用 get-policy

AWS CLI

检索 Firewall Manager 策略

以下 get-policy 示例检索具有指定 ID 的策略。

aws fms get-policy \ --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

输出:

{ "Policy": { "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyName": "test", "PolicyUpdateToken": "1:p+2RpKR4wPFx7mcrL1UOQQ==", "SecurityServicePolicyData": { "Type": "SECURITY_GROUPS_COMMON", "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_COMMON\",\"revertManualSecurityGroupChanges\":true,\"exclusiveResourceSecurityGroupManagement\":false,\"securityGroups\":[{\"id\":\"sg-045c43ccc9724e63e\"}]}" }, "ResourceType": "AWS::EC2::Instance", "ResourceTags": [], "ExcludeResourceTags": false, "RemediationEnabled": false }, "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/d1ac59b8-938e-42b3-b2e0-7c620422ddc2" }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的使用 AWS Firewall Manager 策略

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 GetPolicy

以下代码示例演示了如何使用 list-compliance-status

AWS CLI

检索成员账户的策略合规信息

以下 list-compliance-status 示例检索指定策略的成员账户合规信息。

aws fms list-compliance-status \ --policy-id a1b2c3d4-5678-90ab-cdef-EXAMPLE11111

输出:

{ "PolicyComplianceStatusList": [ { "PolicyOwner": "123456789012", "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyName": "test", "MemberAccount": "123456789012", "EvaluationResults": [ { "ComplianceStatus": "COMPLIANT", "ViolatorCount": 0, "EvaluationLimitExceeded": false }, { "ComplianceStatus": "NON_COMPLIANT", "ViolatorCount": 2, "EvaluationLimitExceeded": false } ], "LastUpdated": 1576283774.0, "IssueInfoMap": {} } ] }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的查看资源的策略合规性

以下代码示例演示了如何使用 list-member-accounts

AWS CLI

检索组织中的成员账户

以下 list-member-accounts 示例列出 Firewall Manager 管理员的组织中的所有成员账户。

aws fms list-member-accounts

输出:

{ "MemberAccounts": [ "222222222222", "333333333333", "444444444444" ] }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的 AWS Firewall Manager

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListMemberAccounts

以下代码示例演示了如何使用 list-policies

AWS CLI

检索所有 Firewall Manager 策略

以下 list-policies 示例检索账户的策略列表。在此示例中,每个请求的输出限制为两个结果。每次调用都会返回一个 NextToken,它可用作下一次 list-policies 调用中 --starting-token 参数的值,以获取列表的下一组结果。

aws fms list-policies \ --max-items 2

输出:

{ "PolicyList": [ { "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyName": "test", "ResourceType": "AWS::EC2::Instance", "SecurityServiceType": "SECURITY_GROUPS_COMMON", "RemediationEnabled": false }, { "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE22222", "PolicyId": "457c9b21-fc94-406c-ae63-21217395ba72", "PolicyName": "test", "ResourceType": "AWS::EC2::Instance", "SecurityServiceType": "SECURITY_GROUPS_COMMON", "RemediationEnabled": false } ], "NextToken": "eyJOZXh0VG9rZW4iOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的使用 AWS Firewall Manager 策略

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListPolicies

以下代码示例演示了如何使用 put-notification-channel

AWS CLI

设置 Firewall Manager 日志的 SNS 主题信息

以下 put-notification-channel 示例设置 SNS 主题信息。

aws fms put-notification-channel \ --sns-topic-arn arn:aws:sns:us-west-2:123456789012:us-west-2-fms \ --sns-role-name arn:aws:iam::123456789012:role/aws-service-role/fms.amazonaws.com/AWSServiceRoleForFMS

此命令不生成任何输出。

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的配置 Amazon SNS 通知和 Amazon CloudWatch 警报

以下代码示例演示了如何使用 put-policy

AWS CLI

创建 Firewall Manager 策略

以下 put-policy 示例创建一个 Firewall Manager 安全组策略。

aws fms put-policy \ --cli-input-json file://policy.json

policy.json 的内容:

{ "Policy": { "PolicyName": "test", "SecurityServicePolicyData": { "Type": "SECURITY_GROUPS_USAGE_AUDIT", "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":false,\"coalesceRedundantSecurityGroups\":true}" }, "ResourceType": "AWS::EC2::SecurityGroup", "ResourceTags": [], "ExcludeResourceTags": false, "RemediationEnabled": false }, "TagList": [ { "Key": "foo", "Value": "foo" } ] }

输出:

{ "Policy": { "PolicyId": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "PolicyName": "test", "PolicyUpdateToken": "1:X9QGexP7HASDlsFp+G31Iw==", "SecurityServicePolicyData": { "Type": "SECURITY_GROUPS_USAGE_AUDIT", "ManagedServiceData": "{\"type\":\"SECURITY_GROUPS_USAGE_AUDIT\",\"deleteUnusedSecurityGroups\":false,\"coalesceRedundantSecurityGroups\":true,\"optionalDelayForUnusedInMinutes\":null}" }, "ResourceType": "AWS::EC2::SecurityGroup", "ResourceTags": [], "ExcludeResourceTags": false, "RemediationEnabled": false }, "PolicyArn": "arn:aws:fms:us-west-2:123456789012:policy/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" }

有关更多信息,请参阅《AWS WAF、AWS Firewall Manager 和 AWS Shield Advanced 开发人员指南》中的使用 AWS Firewall Manager 策略

  • 有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 PutPolicy