跳转到正文
报告库
用途分类 / 其他用途

Azure Compliance Skill 安全审计

作者说它能做什么(原文)

Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance ass

第三方安全检查结论

先别安装或运行

已检查文件
16
发现的风险
3
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
高风险

到期审计的回退命令可能把秘密值暴露给代理和日志

原文依据:6 处
发现了什么

审计只需要 expiresOn、enabled 等元数据,但回退流程要求对每个秘密运行 `az keyvault secret show`。该命令可能返回秘密值,而文档没有限制输出字段或要求屏蔽值。MCP 的 `keyvault_secret_get` 也被用于逐项获取详情,存在同类风险。

为什么需要注意

秘密值可能进入模型上下文、终端输出、审计记录或会话日志,扩大凭据可见范围;一旦这些记录被其他人员或系统访问,相关服务和账户可能受影响。

到期审计只要求分析过期时间、启用状态等元数据,但回退表要求执行未带 `--query` 的 `az keyvault secret show`。如果代理执行该命令并捕获完整输出,秘密值可能进入对话、终端记录或日志,超出了到期审计所需范围。现有证据不能确认 MCP 的 `secret_get` 是否返回值。用户可要求仅查询 `attributes` 等必要字段,并禁止代理读取或展示秘密正文。

references/azure-keyvault-expiration-audit.md:15来自说明文档打开原文件
1. **List Resources**: Enumerate keys, secrets, and certificates in target vault(s)2. **Get Details**: Retrieve expiration metadata for each resource3. **Analyze Status**: Compare expiration dates against current date and threshold4. **Generate Report**: Organize findings by priority with actionable recommendations
查看另外 5 个位置
references/azure-keyvault-expiration-audit.md:42来自说明文档打开原文件
## Key Data FieldsWhen retrieving resource details, analyze these fields:- **expiresOn**: Expiration timestamp (null = no expiration set - security risk!)- **enabled**: Resource is active (false = disabled/inactive)- **notBefore**: When resource becomes valid- **createdOn/updatedOn**: For tracking resource age and last rotation- **subject/issuer**: Certificate-specific metadata
references/azure-keyvault-expiration-audit.md:93来自说明文档打开原文件
If Azure MCP Key Vault tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.### CLI Command Reference| Operation | Azure CLI Command ||-----------|-------------------|| List secrets | `az keyvault secret list --vault-name <vault-name>` || Get secret details | `az keyvault secret show --vault-name <vault-name> --name <secret-name>` || List keys | `az keyvault key list --vault-name <vault-name>` || Get key details | `az keyvault key show --vault-name <vault-name> --name <key-name>` || List certificates | `az keyvault certificate list --vault-name <vault-name>` || Get certificate details | `az keyvault certificate show --vault-name <vault-name> --name <cert-name>` |
references/azure-keyvault-expiration-audit.md:108来自说明文档打开原文件
Switch to Azure CLI when:- MCP tool returns timeout error- MCP tool returns "service unavailable" or connection errors- MCP tool takes longer than 30 seconds to respond- Empty response when vault is known to have resources
references/azure-keyvault-expiration-audit.md:44来自说明文档打开原文件
When retrieving resource details, analyze these fields:- **expiresOn**: Expiration timestamp (null = no expiration set - security risk!)- **enabled**: Resource is active (false = disabled/inactive)- **notBefore**: When resource becomes valid- **createdOn/updatedOn**: For tracking resource age and last rotation- **subject/issuer**: Certificate-specific metadata
references/azure-keyvault-expiration-audit.md:91来自说明文档打开原文件
## Fallback Strategy: Azure CLI CommandsIf Azure MCP Key Vault tools fail, timeout, or are unavailable, use Azure CLI commands as fallback.### CLI Command Reference| Operation | Azure CLI Command ||-----------|-------------------|| List secrets | `az keyvault secret list --vault-name <vault-name>` || Get secret details | `az keyvault secret show --vault-name <vault-name> --name <secret-name>` || List keys | `az keyvault key list --vault-name <vault-name>` |
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 2 项风险
中风险

Key Vault RBAC 修复模板可能中断现有数据平面访问

原文依据:2 处
发现了什么

模板直接启用 RBAC 授权,但没有先清点现有访问策略、为依赖方创建等效角色分配、测试访问或准备回退。这个命令会改变 Key Vault 的访问控制模式,不只是生成报告。

为什么需要注意

依赖旧访问策略的应用、自动化任务或管理员可能立即失去对密钥、秘密和证书的访问,导致认证失败或服务中断。

这是修复参考中的状态变更命令,不是审计本身的自动步骤;但若用户或代理照模板执行,`--enable-rbac-authorization true` 会切换 Key Vault 的数据平面授权模式。所示模板没有迁移现有访问策略、验证等效角色分配或回退步骤,因此依赖旧访问策略的应用可能失去访问。用户应要求作者把执行限制为明确批准后,并在切换前提供依赖清点、角色迁移、测试和回退检查。

references/azqr-remediation-patterns.md:115来自说明文档打开原文件
### Use RBAC for Data Plane**Issue:** Using access policies instead of RBAC**Azure CLI:**```bashaz keyvault update \  --name <vault-name> \  --resource-group <rg-name> \  --enable-rbac-authorization true```
查看另外 1 个位置
references/azure-quick-review.md:67来自说明文档打开原文件
### Step 5: Generate Remediation GuidanceFor each high-priority finding:1. Explain the risk in plain language2. Provide remediation options (Portal, CLI, Bicep)3. Estimate effort and impactSee [azqr-remediation-patterns.md](azqr-remediation-patterns.md) for common fix templates.
中风险

私有端点模板在禁用公网访问前未显示 DNS 和连通性验证

原文依据:2 处
发现了什么

存储和 SQL 模板在创建私有端点后直接禁用公网访问;所示步骤没有配置私有 DNS、验证名称解析或确认客户端已迁移。私有端点存在并不保证现有客户端能解析和访问服务。

为什么需要注意

如果私有 DNS 或网络路由尚未就绪,应用可能无法访问存储账户或 SQL Server,造成服务中断。

这些是修复模板而非自动执行指令,但执行后会更改网络访问。存储模板创建私有端点后立即禁用公网访问,展示的步骤没有私有 DNS 配置、名称解析测试或客户端迁移检查;SQL 模板也采用同样顺序。若现有客户端尚不能通过私网解析和连接,服务可能中断。用户可要求在任何禁用公网访问操作前进行 DNS、路由、客户端连通性和回退验证,并逐项明确批准。

references/azqr-remediation-patterns.md:13来自说明文档打开原文件
```bash# Create private endpointaz network private-endpoint create \  --name pe-storage \  --resource-group <rg-name> \  --vnet-name <vnet-name> \  --subnet <subnet-name> \  --private-connection-resource-id $(az storage account show -n <storage-name> -g <rg-name> --query id -o tsv) \  --group-id blob \  --connection-name pe-storage-connection# Disable public accessaz storage account update \  --name <storage-name> \  --resource-group <rg-name> \  --public-network-access Disabled```
查看另外 1 个位置
references/azqr-remediation-patterns.md:272来自说明文档打开原文件
```bash# Create private endpointaz network private-endpoint create \  --name pe-sql \  --resource-group <rg-name> \  --vnet-name <vnet-name> \  --subnet <subnet-name> \  --private-connection-resource-id $(az sql server show -g <rg-name> -n <server-name> --query id -o tsv) \  --group-id sqlServer \  --connection-name pe-sql-connection# Disable public accessaz sql server update \  --resource-group <rg-name> \  --name <server-name> \  --enable-public-network false```
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。未发现风险

Skill 逻辑拆解

8 个说明模块

此技能的主要流程是对用户选定的 Azure 订阅或资源组运行 azqr,保存生成的报告,再分析合规、安全、资源配置和 Key Vault 到期情况。

查看原文
SKILL.md:70来自说明文档打开原文件
1. Select scope (subscription or resource group) for Comprehensive Resources Assessment.2. Run azqr and capture output artifacts.3. Analyze Scan Results and summarize findings and recommendations.4. Review Key Vault Expiration Monitoring output for keys, secrets, and certificates.5. Classify issues and propose remediation or fix steps for each finding.

azqr 报告可能包含订阅标识、资源组和资源名称、配置状态、安全发现以及三个月费用历史。即使没有外发行为,这些产物本身也是敏感的云环境清单,应按安全审计材料保护。

查看原文
references/azure-quick-review.md:39来自说明文档打开原文件
|-------|----------|----------|| **Recommendations** | All recommendations with impacted resource count | High || **ImpactedResources** | Resources with specific issues to address | High || **Inventory** | All scanned resources with SKU, Tier, SLA details | Medium || **Advisor** | Azure Advisor recommendations | Medium || **DefenderRecommendations** | Microsoft Defender for Cloud findings | High || **Azure Policy** | Non-compliant resources per Azure Policy | Medium || **Costs** | 3-month cost history by subscription | Low || **Defender** | Defender plan status and tiers | Medium || **OutOfScope** | Resources not scanned | Low |
references/azqr-recommendations.md:91来自说明文档打开原文件
|--------|-------------|| Subscription | Subscription ID (may be masked) || Resource Group | Resource group name || Type | Azure resource type || Name | Resource name || Recommendation ID | Links to Recommendations sheet || Recommendation | Issue description || Learn More | Documentation link || Param1-5 | Additional context (varies by recommendation) |

主说明将审计报告与修复执行分开,并要求提出修复步骤,而不是自动应用它们。后续文档中的 Azure CLI 和 Bicep 内容因此属于建议模板;用户仍需在执行前单独授权和验证。

查看原文
SKILL.md:74来自说明文档打开原文件
4. Review Key Vault Expiration Monitoring output for keys, secrets, and certificates.5. Classify issues and propose remediation or fix steps for each finding.
SKILL.md:95来自说明文档打开原文件
- Run compliance scans on a regular schedule (weekly or monthly)- Track findings over time and verify remediation effectiveness- Separate compliance reporting from remediation execution- Keep Key Vault expiration policies documented and enforced
references/azure-quick-review.md:67来自说明文档打开原文件
### Step 5: Generate Remediation GuidanceFor each high-priority finding:1. Explain the risk in plain language2. Provide remediation options (Portal, CLI, Bicep)3. Estimate effort and impactSee [azqr-remediation-patterns.md](azqr-remediation-patterns.md) for common fix templates.
从这里开始 · 工作说明SKILL.md
azure-compliance
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。 另有 2 个章节,可在原文件中查看。

文件引用关系图

20 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录16 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • references/azure-keyvault-expiration-audit.md已纳入全文
  • references/azure-quick-review.md已纳入全文
  • references/azure-resource-graph.md已纳入全文
  • references/sdk/azure-keyvault-certificates-rust.md已纳入全文
  • references/sdk/azure-keyvault-keys-rust.md已纳入全文
  • references/sdk/azure-keyvault-keys-ts.md已纳入全文
  • references/sdk/azure-keyvault-py.md已纳入全文
  • references/sdk/azure-keyvault-secrets-rust.md已纳入全文
  • references/sdk/azure-keyvault-secrets-ts.md已纳入全文
  • references/sdk/azure-security-keyvault-keys-dotnet.md已纳入全文
  • references/sdk/azure-security-keyvault-keys-java.md已纳入全文
  • references/sdk/azure-security-keyvault-secrets-java.md已纳入全文
  • references/auth-best-practices.md已纳入全文
  • references/azqr-recommendations.md已纳入全文
  • references/azqr-remediation-patterns.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/auth-best-practices.md配套文件
  • references/azqr-recommendations.md配套文件
  • references/azqr-remediation-patterns.md配套文件
  • references/azure-keyvault-expiration-audit.md配套文件
  • references/azure-quick-review.md配套文件
  • references/azure-resource-graph.md配套文件
  • references/sdk/azure-keyvault-certificates-rust.md配套文件
  • references/sdk/azure-keyvault-keys-rust.md配套文件
  • references/sdk/azure-keyvault-keys-ts.md配套文件
  • references/sdk/azure-keyvault-py.md配套文件
  • references/sdk/azure-keyvault-secrets-rust.md配套文件
  • references/sdk/azure-keyvault-secrets-ts.md配套文件
  • references/sdk/azure-security-keyvault-keys-dotnet.md配套文件
  • references/sdk/azure-security-keyvault-keys-java.md配套文件
  • references/sdk/azure-security-keyvault-secrets-java.md配套文件

代码和说明中提到的操作

连接外部网站
references/auth-best-practices.md:3来自说明文档打开原文件
> Source: [Microsoft — Passwordless connections for Azure services](https://learn.microsoft.com/azure/developer/intro/passwordless-overview) and [Azure Identity client libraries](https://learn.microsoft.com/dotnet/azure/sdk/authentication/).
references/auth-best-practices.md:122来自说明文档打开原文件
- [Passwordless connections overview](https://learn.microsoft.com/azure/developer/intro/passwordless-overview)- [Managed identities overview](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview)
references/auth-best-practices.md:123来自说明文档打开原文件
- [Passwordless connections overview](https://learn.microsoft.com/azure/developer/intro/passwordless-overview)- [Managed identities overview](https://learn.microsoft.com/entra/identity/managed-identities-azure-resources/overview)- [Azure RBAC overview](https://learn.microsoft.com/azure/role-based-access-control/overview)
运行命令
references/auth-best-practices.md:16来自说明文档打开原文件
| **CI/CD pipelines** | `AzurePipelinesCredential` / `WorkloadIdentityCredential` | Scoped to pipeline identity || **Local development** | `DefaultAzureCredential` | Chains CLI, PowerShell, and VS Code credentials for convenience |
references/auth-best-practices.md:81来自说明文档打开原文件
2. **Azure Developer CLI** — `azd auth login`3. **Azure PowerShell** — `Connect-AzAccount`4. **Visual Studio / VS Code** — sign in via Azure extension
references/auth-best-practices.md:87来自说明文档打开原文件
// Local development only — uses CLI/PowerShell/VS Code credentialsconst credential = new DefaultAzureCredential();
读取密钥或账号配置
references/auth-best-practices.md:16来自说明文档打开原文件
| **CI/CD pipelines** | `AzurePipelinesCredential` / `WorkloadIdentityCredential` | Scoped to pipeline identity || **Local development** | `DefaultAzureCredential` | Chains CLI, PowerShell, and VS Code credentials for convenience |
references/auth-best-practices.md:32来自说明文档打开原文件
var credential = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT") == "Development"    ? new DefaultAzureCredential()                          // local dev — uses CLI/VS credentials
references/auth-best-practices.md:33来自说明文档打开原文件
var credential = Environment.GetEnvironmentVariable("AZURE_FUNCTIONS_ENVIRONMENT") == "Development"    ? new DefaultAzureCredential()                          // local dev — uses CLI/VS credentials    : new ManagedIdentityCredential();                      // production — deterministic, no fallback chain
安装其他软件包
references/sdk/azure-keyvault-keys-ts.md:8来自说明文档打开原文件
## Installnpm install @azure/keyvault-keys @azure/identity
references/sdk/azure-keyvault-py.md:8来自说明文档打开原文件
## Installpip install azure-keyvault-secrets azure-keyvault-keys azure-keyvault-certificates azure-identity
references/sdk/azure-keyvault-secrets-ts.md:8来自说明文档打开原文件
## Installnpm install @azure/keyvault-secrets @azure/identity
读取了多少行
1,438
文件校验值(用于核对版本)
89ae102e995f046e10934aa5243233381f0ffcc86aa1cbbdac17574a654c995d