news 2026/9/14 5:55:18

Prowler 合规检查映射指南:从需求文本到 AWS/Azure/GCP Checks 的实战参考表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Prowler 合规检查映射指南:从需求文本到 AWS/Azure/GCP Checks 的实战参考表

Prowler 合规检查映射指南:从需求文本到 AWS/Azure/GCP Checks 的实战参考表

【免费下载链接】prowlerProwler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.项目地址: https://gitcode.com/GitHub_Trending/pr/prowler

本指南围绕 Prowler 开源仓库中的云审计参考文档 check-mapping-reference.md 展开,它是一份沉淀自真实审计(172 条 CCC 控制需求 × AWS/Azure/GCP 三大云厂商)的「需求文本 → Prowler Checks」对照表,专供合规框架作者、云审计师在把 CCC / NIST / ISO 风格的控制要求映射到可自动验证的 Prowler 检查时使用。读完本文,你将掌握:如何正确解读与使用这张映射表(含*通配符陷阱)、如何用仓库自带的审计工具链重建检查清单并落地映射、以及哪些需求 Prowler 确实无法验证、应当诚实地标记为 MANUAL。

这张映射表从哪来、给谁用

check-mapping-reference.md是 prowler-compliance 技能包的参考文档,隶属于「作为云审计师审计检查映射」(Workflow B)的工作流。它的产生背景是:

  • 数据来源:对 172 条 CCC(Common Cloud Controls)审计需求(AR)在 AWS、Azure、GCP 三个云厂商上的真实映射审计(文档标注 2026 年 4 月)。
  • 适用对象:为合规框架(CIS、NIST、ISO、CCC、DORA、CSA CCM 等)撰写 JSON 目录的开发者、复核既有映射正确性的云审计师。
  • 核心价值:把自然语言写成的控制要求(如 "TLS in transit enforced")快速翻译成 Prowler 实际会执行的 check id,同时明确哪些要求找不到对应检查——避免用「沾边」的检查去凑覆盖率。

在使用表中任意一行之前,文档给出了一条硬性前提:必须先用仓库资产脚本重建并核对当前检查清单build_inventory.py+query_checks.py),因为检查会随版本被重命名和新增,任何一条 check id 都可能过时。

使用前提与*通配符陷阱(务必先读)

映射表中有多条记录含*字符,例如iam_*_no_administrative_privilegescloudwatch_log_metric_filter_**_minimum_tls_version_12。这些不是字面意义上的检查 ID,而是 glob 模式

  • 直接把它们原样复制进合规 JSON,将匹配不到任何 finding,等于静默失效;
  • 正确做法是先把每个模式展开为具体检查 ID——通过仓库提供的查询脚本:
python skills/prowler-compliance/assets/query_checks.py <provider> <keywords>

例如查询 AWS 上与 TLS 最小版本相关的全部检查:

python skills/prowler-compliance/assets/query_checks.py aws tls minimum

先重建清单:build_inventory.py

build_inventory.py(assets/build_inventory.py)会扫描prowler/providers/<provider>/services/下全部*.metadata.json,为每个厂商生成一份check_id → {service, subservice, resource, severity, title, description, risk}的清单,输出到/tmp/checks_<provider>.json

python skills/prowler-compliance/assets/build_inventory.py # 所有厂商 python skills/prowler-compliance/assets/build_inventory.py aws # 仅 AWS

从源码实现看(build_inventory.py),厂商列表直接由文件系统推导(存在services/目录的提供商目录),因此新厂商会被自动纳入,硬编码列表不会与仓库漂移。清单字段取自检查的元数据文件,例如 iam_root_mfa_enabled.metadata.json 这类*.metadata.json(含CheckIDCheckTitleRiskServiceName等字段)。这是后续所有审计脚本做 ID 预校验的基准。

query_checks.py 的三种查询模式

query_checks.py 支持三种用法(需先运行build_inventory.py):

# 1) 关键词 AND 搜索:check id + title + risk + description 必须全部命中 python skills/prowler-compliance/assets/query_checks.py aws encryption transit # 2) 按服务列出全部检查 python skills/prowler-compliance/assets/query_checks.py aws --service iam # 3) 查看单个检查的完整元数据(含风险描述) python skills/prowler-compliance/assets/query_checks.py aws --id kms_cmk_rotation_enabled

其中--id模式在检查不存在时返回退出码 3 并输出NOT FOUND,可作为映射写入前的快速存在性校验。

映射参考表:需求文本 → Prowler Checks(AWS / Azure / GCP)

下表完整继承自 check-mapping-reference.md,是按需求主题聚合的对照速查表。使用时的两条纪律:

  1. 表中含*的记录是 glob 模式,务必先展开成具体 ID(见上文);
  2. 使用前用build_inventory.py+query_checks.py重新校验每一行——检查会随版本重命名、新增或移除。
需求文本AWS checksAzure checksGCP checks
传输中 TLS 强制启用cloudfront_distributions_https_enabled,s3_bucket_secure_transport_policy,elbv2_ssl_listeners,elbv2_insecure_ssl_ciphers,elb_ssl_listeners,elb_insecure_ssl_ciphers,opensearch_service_domains_https_communications_enforced,rds_instance_transport_encrypted,redshift_cluster_in_transit_encryption_enabled,elasticache_redis_cluster_in_transit_encryption_enabled,dynamodb_accelerator_cluster_in_transit_encryption_enabled,dms_endpoint_ssl_enabled,kafka_cluster_in_transit_encryption_enabled,transfer_server_in_transit_encryption_enabled,glue_database_connections_ssl_enabled,sns_subscription_not_using_http_endpointsstorage_secure_transfer_required_is_enabled,storage_ensure_minimum_tls_version_12,postgresql_flexible_server_enforce_ssl_enabled,mysql_flexible_server_ssl_connection_enabled,mysql_flexible_server_minimum_tls_version_12,sqlserver_recommended_minimal_tls_version,app_minimum_tls_version_12,app_ensure_http_is_redirected_to_https,app_ftp_deployment_disabledcloudsql_instance_ssl_connections(几乎唯一可选)
明确要求 TLS 1.3部分覆盖:cloudfront_distributions_using_deprecated_ssl_protocols,elb*_insecure_ssl_ciphers,*_minimum_tls_version_12部分覆盖:*_minimum_tls_version_12类检查无——标记为 MANUAL
SSH / 22 端口加固ec2_instance_port_ssh_exposed_to_internet,ec2_securitygroup_allow_ingress_from_internet_to_tcp_port_22,ec2_networkacl_allow_ingress_tcp_port_22network_ssh_internet_access_restricted,vm_linux_enforce_ssh_authenticationcompute_firewall_ssh_access_from_the_internet_allowed,compute_instance_block_project_wide_ssh_keys_disabled,compute_project_os_login_enabled,compute_project_os_login_2fa_enabled
mTLS(双向 TLS)kafka_cluster_mutual_tls_authentication_enabled,apigateway_restapi_client_certificate_enabledapp_client_certificates_on无——MANUAL
静态数据加密s3_bucket_default_encryption,s3_bucket_kms_encryption,ec2_ebs_default_encryption,ec2_ebs_volume_encryption,rds_instance_storage_encrypted,rds_cluster_storage_encrypted,rds_snapshots_encrypted,dynamodb_tables_kms_cmk_encryption_enabled,redshift_cluster_encrypted_at_rest,neptune_cluster_storage_encrypted,documentdb_cluster_storage_encrypted,opensearch_service_domains_encryption_at_rest_enabled,kinesis_stream_encrypted_at_rest,firehose_stream_encrypted_at_rest,sns_topics_kms_encryption_at_rest_enabled,sqs_queues_server_side_encryption_enabled,efs_encryption_at_rest_enabled,athena_workgroup_encryption,glue_data_catalogs_metadata_encryption_enabled,backup_vaults_encrypted,backup_recovery_point_encrypted,cloudtrail_kms_encryption_enabled,cloudwatch_log_group_kms_encryption_enabled,eks_cluster_kms_cmk_encryption_in_secrets_enabled,sagemaker_notebook_instance_encryption_enabled,apigateway_restapi_cache_encrypted,kafka_cluster_encryption_at_rest_uses_cmk,dynamodb_accelerator_cluster_encryption_enabled,storagegateway_fileshare_encryption_enabledstorage_infrastructure_encryption_is_enabled,storage_ensure_encryption_with_customer_managed_keys,vm_ensure_attached_disks_encrypted_with_cmk,vm_ensure_unattached_disks_encrypted_with_cmk,sqlserver_tde_encryption_enabled,sqlserver_tde_encrypted_with_cmk,databricks_workspace_cmk_encryption_enabled,monitor_storage_account_with_activity_logs_cmk_encryptedcompute_instance_encryption_with_csek_enabled,dataproc_encrypted_with_cmks_disabled,bigquery_dataset_cmk_encryption,bigquery_table_cmk_encryption
要求 CMEK(客户托管密钥)kms_cmk_are_usedstorage_ensure_encryption_with_customer_managed_keys,vm_ensure_attached_disks_encrypted_with_cmk,vm_ensure_unattached_disks_encrypted_with_cmk,sqlserver_tde_encrypted_with_cmk,databricks_workspace_cmk_encryption_enabledbigquery_dataset_cmk_encryption,bigquery_table_cmk_encryption,dataproc_encrypted_with_cmks_disabled,compute_instance_encryption_with_csek_enabled
密钥轮换已启用kms_cmk_rotation_enabledkeyvault_key_rotation_enabled,storage_key_rotation_90_dayskms_key_rotation_enabled
UI 访问需 MFAiam_root_mfa_enabled,iam_root_hardware_mfa_enabled,iam_user_mfa_enabled_console_access,iam_user_hardware_mfa_enabled,iam_administrator_access_with_mfa,cognito_user_pool_mfa_enabledentra_privileged_user_has_mfa,entra_non_privileged_user_has_mfa,entra_user_with_vm_access_has_mfa,entra_security_defaults_enabledcompute_project_os_login_2fa_enabled
API 访问 / 凭据管理iam_no_root_access_key,iam_user_no_setup_initial_access_key,apigateway_restapi_authorizers_enabled,apigateway_restapi_public_with_authorizer,apigatewayv2_api_authorizers_enabledentra_conditional_access_policy_require_mfa_for_management_api,app_function_access_keys_configured,app_function_identity_is_configuredapikeys_api_restrictions_configured,apikeys_key_exists,apikeys_key_rotated_in_90_days
记录全部管理/配置变更cloudtrail_multi_region_enabled,cloudtrail_multi_region_enabled_logging_management_events,cloudtrail_cloudwatch_logging_enabled,cloudtrail_log_file_validation_enabled,cloudwatch_log_metric_filter_*,cloudwatch_changes_to_*_alarm_configured,config_recorder_all_regions_enabledmonitor_diagnostic_settings_exists,monitor_diagnostic_setting_with_appropriate_categories,monitor_alert_*iam_audit_logs_enabled,logging_log_metric_filter_and_alert_for_*,logging_sink_created
日志完整性(数字签名)cloudtrail_log_file_validation_enabled(精确匹配)
禁止公开访问s3_bucket_public_access,s3_bucket_public_list_acl,s3_bucket_public_write_acl,s3_account_level_public_access_blocks,apigateway_restapi_public,awslambda_function_url_public,awslambda_function_not_publicly_accessible,rds_instance_no_public_access,rds_snapshots_public_access,ec2_securitygroup_allow_ingress_from_internet_to_all_ports,sns_topics_not_publicly_accessible,sqs_queues_not_publicly_accessiblestorage_blob_public_access_level_is_disabled,storage_ensure_private_endpoints_in_storage_accounts,containerregistry_not_publicly_accessible,keyvault_private_endpoints,app_function_not_publicly_accessible,aks_clusters_public_access_disabled,network_http_internet_access_restrictedcloudstorage_bucket_public_access,compute_instance_public_ip,cloudsql_instance_public_ip,compute_firewall_*_access_from_the_internet_allowed
IAM 最小权限iam_*_no_administrative_privileges,iam_policy_allows_privilege_escalation,iam_inline_policy_allows_privilege_escalation,iam_role_administratoraccess_policy,iam_group_administrator_access_policy,iam_user_administrator_access_policy,iam_policy_attached_only_to_group_or_roles,iam_role_cross_service_confused_deputy_preventioniam_role_user_access_admin_restricted,iam_subscription_roles_owner_custom_not_created,iam_custom_role_has_permissions_to_administer_resource_locksiam_sa_no_administrative_privileges,iam_no_service_roles_at_project_level,iam_role_kms_enforce_separation_of_duties,iam_role_sa_enforce_separation_of_duties
密码策略iam_password_policy_minimum_length_14,iam_password_policy_uppercase,iam_password_policy_lowercase,iam_password_policy_symbol,iam_password_policy_number,iam_password_policy_expires_passwords_within_90_days_or_less,iam_password_policy_reuse_24
凭据轮换 / 闲置清理iam_rotate_access_key_90_days,iam_user_accesskey_unused,iam_user_console_access_unusediam_sa_user_managed_key_rotate_90_days,iam_sa_user_managed_key_unused,iam_service_account_unused
VPC / 流日志vpc_flow_logs_enablednetwork_flow_log_captured_sent,network_watcher_enabled,network_flow_log_more_than_90_dayscompute_subnet_flow_logs_enabled
备份 / 容灾 / 多可用区backup_vaults_exist,backup_plans_exist,backup_reportplans_exist,rds_instance_backup_enabled,rds_*_protected_by_backup_plan,rds_cluster_multi_az,neptune_cluster_backup_enabled,documentdb_cluster_backup_enabled,efs_have_backup_enabled,s3_bucket_cross_region_replication,dynamodb_table_protected_by_backup_planvm_backup_enabled,vm_sufficient_daily_backup_retention_period,storage_geo_redundant_enabledcloudsql_instance_automated_backups,cloudstorage_bucket_log_retention_policy_lock,cloudstorage_bucket_sufficient_retention_period
访问分析 / 资产发现accessanalyzer_enabled,accessanalyzer_enabled_without_findings无特定项iam_account_access_approval_enabled,iam_cloud_asset_inventory_enabled
对象锁 / 保留策略s3_bucket_object_lock,s3_bucket_object_versioning,s3_bucket_lifecycle_enabled,cloudtrail_bucket_requires_mfa_delete,s3_bucket_no_mfa_deletestorage_ensure_soft_delete_is_enabled,storage_blob_versioning_is_enabled,storage_ensure_file_shares_soft_delete_is_enabledcloudstorage_bucket_log_retention_policy_lock,cloudstorage_bucket_soft_delete_enabled,cloudstorage_bucket_versioning_enabled,cloudstorage_bucket_sufficient_retention_period
统一存储桶级访问控制s3_bucket_acl_prohibitedstorage_account_key_access_disabled,storage_default_to_entra_authorization_enabledcloudstorage_bucket_uniform_bucket_level_access
容器漏洞扫描ecr_registry_scan_images_on_push_enabled,ecr_repositories_scan_vulnerabilities_in_latest_imagedefender_container_images_scan_enabled,defender_container_images_resolved_vulnerabilitiesartifacts_container_analysis_enabled,gcr_container_scanning_enabled
WAF / 速率限制wafv2_webacl_with_rules,waf_*_webacl_with_rules,wafv2_webacl_logging_enabled,waf_global_webacl_logging_enabled
部署地域限制organizations_scp_check_deny_regions
密钥自动轮换secretsmanager_automatic_rotation_enabled,secretsmanager_secret_rotated_periodicallykeyvault_rbac_secret_expiration_set,keyvault_non_rbac_secret_expiration_set
证书管理acm_certificates_expiration_check,acm_certificates_with_secure_key_algorithms,acm_certificates_transparency_logs_enabledkeyvault_key_expiration_set_in_non_rbac,keyvault_rbac_key_expiration_set,keyvault_non_rbac_secret_expiration_set
GenAI 护栏 / 输入输出过滤bedrock_guardrail_prompt_attack_filter_enabled,bedrock_guardrail_sensitive_information_filter_enabled,bedrock_agent_guardrail_enabled,bedrock_model_invocation_logging_enabled,bedrock_api_key_no_administrative_privileges,bedrock_api_key_no_long_term_credentials
ML 开发环境安全sagemaker_notebook_instance_root_access_disabled,sagemaker_notebook_instance_without_direct_internet_access_configured,sagemaker_notebook_instance_vpc_settings_configured,sagemaker_models_vpc_settings_configured,sagemaker_training_jobs_vpc_settings_configured,sagemaker_training_jobs_network_isolation_enabled,sagemaker_training_jobs_volume_and_output_encryption_enabled
威胁检测 / 异常行为cloudtrail_threat_detection_enumeration,cloudtrail_threat_detection_privilege_escalation,cloudtrail_threat_detection_llm_jacking,guardduty_is_enabled,guardduty_no_high_severity_findings
Serverless 私有访问awslambda_function_inside_vpc,awslambda_function_not_publicly_accessible,awslambda_function_url_publicapp_function_not_publicly_accessible

说明:上表与当前仓库抽查一致——如iam_root_mfa_enabledkms_cmk_rotation_enabledcloudtrail_log_file_validation_enabledvpc_flow_logs_enabledaccessanalyzer_enabledorganizations_scp_check_deny_regionsstorage_secure_transfer_required_is_enabledkeyvault_key_rotation_enabledcloudsql_instance_ssl_connectionsiam_sa_no_administrative_privileges等在 prowler/providers/aws/services/ 与 prowler/providers/azure/services/ 对应目录均存在实现;Lambda 相关检查位于 awslambda/ 目录(如awslambda_function_url_public)。即便如此,仍应在落地映射前以脚本重建的清单为准。

Prowler 覆盖不了的:诚实标注 MANUAL

映射参考表专门用一节列出「Prowler Does NOT Cover」清单——这是该文档方法论的核心:不要为了凑覆盖率硬塞「沾边」检查,把需求的 checks 列表留空(MANUAL)是正确的。因为合规报告的百分比统计以需求总数为分母,塞入无关检查只会产生「看似合规、实则没有任何验证」的假阳性映射。

文档明确列出不应强行映射的需求类别(节选关键项):

  • TLS 1.3 具体版本——Prowler 验证的是 TLS 是否启用,并不总是校验确切版本;
  • IANA 端口-协议一致性——不存在「协议必须跑在指定端口」的检查;
  • Azure/GCP 大部分服务的 mTLS——Azure 仅限 App Service 客户端证书,GCP 无对应项;
  • 监控端点、负载均衡、serverless 调用、向量数据接入的速率限制
  • 会话 Cookie 过期(LB 粘滞会话)
  • HTTP 响应头清理(Server、X-Powered-By)
  • 导入证书的透明日志核验
  • 模型版本固定、红队测试、AI 质量评审
  • 向量嵌入校验、维度约束、ANN 与精确检索对比
  • 密钥跨地域复制(跨区域驻留)
  • 容器镜像仓库的生命周期清理策略
  • 数据仓库的行级/列级安全
  • Azure/GCP 的部署地域限制(仅 AWS 有organizations_scp_check_deny_regions);
  • 跨租户告警静默权限
  • 日志中的字段级脱敏
  • 数据库访问的托管视图强制
  • 全量 S3 桶自动 MFA 删除(部分框架仅覆盖 CloudTrail 桶变体,但 AWS 侧存在通用检查s3_bucket_no_mfa_delete)。

对应到代码层面,一条需求的Checks: []空列表在加载后就是一个「手动项」——compliance_models.py 中的模型并不要求每条需求必须映射到检查,空列表是合法状态。

提供商覆盖的不对称性:接受它

文档明确提醒:AWS 覆盖密度最高(传输加密、IAM、数据库加密、备份、GenAI 均有密集检查),Azure 和 GCP 明显更薄,尤其在传输加密、mTLS、ML/AI 领域;更年轻的厂商(alibabacloud、oraclecloud、googleworkspace、okta、cloudflare、linode 等)清单规模更小。映射时不要强行追求 GCP 对等覆盖——Prowler 无法验证的地方,硬凑只会制造虚假映射。在假设某个映射存在之前,始终先用build_inventory.py重建清单确认。

这一点与 SKILL.md 中的通用约定一致:checks字典中的厂商 key 必须与 prowler/providers/ 下的目录名(小写)精确匹配。

实战:用审计工具链把映射落到合规 JSON

映射参考表本身不负责写文件,落地要借助 prowler-compliance 工作流 B 的审计工具链(全部位于 assets/)。完整流程如下。

第 1 步:构建各厂商检查清单

python skills/prowler-compliance/assets/build_inventory.py

输出/tmp/checks_aws.json/tmp/checks_azure.json/tmp/checks_gcp.json等(每个带services/目录的厂商一份)。

第 2 步:查询候选检查

# 需求是 "encryption in transit",用关键词 AND 检索 python skills/prowler-compliance/assets/query_checks.py aws encryption transit # 按服务浏览全部 IAM 检查 python skills/prowler-compliance/assets/query_checks.py aws --service iam # 精确核对某个 ID 的标题与风险描述 python skills/prowler-compliance/assets/query_checks.py aws --id kms_cmk_rotation_enabled

--id模式展示的titlerisk字段正是「黄金法则」的判据(见下文)。

第 3 步:转储目标框架的现状

# 一次看完 CCC.Core 系列需求在 aws/azure/gcp 的既有映射 python skills/prowler-compliance/assets/dump_section.py ccc "CCC.Core." # 只审 AWS 的 CIS 5.0 第一节 python skills/prowler-compliance/assets/dump_section.py cis_5.0_aws "1."

dump_section.py 会按 ID 前缀聚合匹配的 JSON 文件(prowler/compliance/{provider}/下),逐条打印需求描述与各厂商当前Checks列表,便于整族复核。

第 4 步:编码明确的 REPLACE 决策

把 audit_framework_template.py 复制为/tmp/audit_<framework>.py,在DECISIONS字典中逐条填写最终映射。三条决策规则(源码 docstring 原文语义):

  • 检查的 title/risk 必须字面描述需求文本所讲的内容,"Related(沾边)" 不够;
  • 没有检查真正覆盖需求时,写[](= MANUAL);诚实的 MANUAL 胜过填充的覆盖率
  • 缺失的厂商 key = 保留该需求在该厂商的旧映射不动。
DECISIONS["CCC.Core.CN01.AR01"] = { "aws": [ "cloudfront_distributions_https_enabled", "s3_bucket_secure_transport_policy", "elbv2_ssl_listeners", "rds_instance_transport_encrypted", # ... 按映射表展开 ], "azure": ["storage_secure_transfer_required_is_enabled", "app_minimum_tls_version_12", ...], "gcp": ["cloudsql_instance_ssl_connections"], } # 空列表 = 显式 MANUAL(覆盖旧映射) DECISIONS["CCC.Core.CN01.AR07"] = {"aws": [], "azure": [], "gcp": []}

关键设计:脚本分两阶段执行(audit_framework_template.py)——先对所有厂商做全量预校验,任何一个未知 check id(如拼写错误)都会中止整个运行且不写任何文件;全部通过后才写入 JSON。真实审计中该机制曾拦截过storage_secure_transfer_required_enabled(正确为storage_secure_transfer_required_is_enabled)、sqlserver_minimum_tls_version_12(正确为sqlserver_recommended_minimal_tls_version)等拼写错误。

python /tmp/audit_ccc.py

第 5 步:应用 + 验证 + 跑测试

uv run pytest -n auto tests/lib/outputs/compliance/ tests/lib/check/ -q

相关测试位于 tests/lib/outputs/compliance/ 与 tests/lib/check/(例如 guardrail 求值测试 compliance_config_eval_test.py)。

落地时的注意事项(来自 SKILL.md 的硬性约定)

  • REPLACE 而非 PATCH:显式完整列表让审计可复现,并暴露旧数据中的隐藏假设;
  • 预校验每一个 check id:任何 loader 都不会拦截拼写错误,错误 ID 只会让需求永远匹配不到 finding(SKILL.md 约定 #15);
  • 包含源目录的全部需求:合规百分比以完整需求数为分母,自动化与手动项都要收录(约定 #18);
  • Version会静默破坏get_check_compliance()"{Framework}-{Version}"键,永远不要留空(约定 #4)。

结语:把映射当作可复核的工程资产

check-mapping-reference.md 的价值不在于它罗列的几百个 check id,而在于它示范的审计方法论:以「检查标题/风险必须字面命中需求文本」为黄金法则,以「诚实 MANUAL 胜过填充覆盖率」为底线,以「脚本重建清单 + 全量预校验 + REPLACE 决策」为保证可复现性的工程流程。配合 prowler-compliance 的资产脚本(build_inventory.pyquery_checks.pydump_section.pyaudit_framework_template.py),任何审计师都能在数分钟内把一段自然语言控制要求翻译成可验证、可追溯、无拼写错误的 Prowler 检查映射,同时坦率承认 Prowler 暂时覆盖不到的边界。

【免费下载链接】prowlerProwler is the world’s most widely used open-source cloud security platform that automates security and compliance across any cloud environment.项目地址: https://gitcode.com/GitHub_Trending/pr/prowler

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 5:53:03

Vue2+Element UI实现可拖拽甘特图:日期坐标换算与拖拽闭环

简介&#xff1a;面向Vue2开发者的可拖拽甘特图组件源码&#xff0c;基于Element UI实现&#xff0c;专门解决排期、项目管理场景中时间块拖拽调整的交互需求&#xff0c;避免付费插件和英文文档带来的接入成本。压缩包共21个文件&#xff0c;包括7个JS逻辑文件、6个Vue组件、2…

作者头像 李华
网站建设 2026/9/14 5:52:51

Rust函数编程:从基础到高级特性解析

1. Rust函数基础概念与核心特性Rust作为一门现代系统编程语言&#xff0c;其函数设计融合了安全性、性能与表达力三大核心优势。与C/C等传统系统语言不同&#xff0c;Rust函数在编译阶段就通过所有权机制消除了数据竞争和内存安全问题。一个基础的Rust函数定义如下&#xff1a;…

作者头像 李华
网站建设 2026/9/14 5:51:49

四模态融合课堂感知系统:情绪+表情+姿态+人脸协同分析

简介&#xff1a;本资源是一个基于多模态AI技术的智能教室系统实现方案&#xff0c;面向教育信息化开发者、计算机视觉方向学习者及智慧校园建设实践者&#xff0c;聚焦课堂行为分析与考试监管场景&#xff0c;解决学生专注度量化、动态考勤、情绪状态识别、异常姿态监测及作弊…

作者头像 李华
网站建设 2026/9/14 5:51:16

字符级RNN古诗生成系统:可复现、可调试、可部署

简介&#xff1a;本资源是一个基于循环神经网络&#xff08;RNN&#xff09;实现的古诗自动生成系统&#xff0c;面向人工智能初学者与机器学习实践者&#xff0c;聚焦诗词文本生成这一典型NLP任务&#xff0c;帮助学习者掌握数据预处理、RNN建模、TensorFlow训练及轻量前端部署…

作者头像 李华