diff --git a/.cruft.json b/.cruft.json index 0ce56c1..e95c43b 100644 --- a/.cruft.json +++ b/.cruft.json @@ -1,6 +1,6 @@ { "template": "https://github.com/Azure-Samples/Azure-Python-Standardization-Template-Generator", - "commit": "ff59b9db5cb475015804edbbab7ecb817a81bf77", + "commit": "75d8c04bda1e75ae989198d933a785ca153bd891", "checkout": null, "context": { "cookiecutter": { diff --git a/.github/workflows/audit-bicep.yml b/.github/workflows/audit-bicep.yml index 9926581..5633e15 100644 --- a/.github/workflows/audit-bicep.yml +++ b/.github/workflows/audit-bicep.yml @@ -23,16 +23,23 @@ jobs: - name: Checkout uses: actions/checkout@v4 - - name: Run Microsoft Security DevOps Analysis - uses: microsoft/security-devops-action@preview - id: msdo - continue-on-error: true + - name: Run PSRule analysis + uses: microsoft/ps-rule@v2.9.0 with: - tools: templateanalyzer + modules: PSRule.Rules.Azure + baseline: Azure.Pillar.Security + inputPath: infra/*.test.bicep + outputFormat: Sarif + outputPath: reports/ps-rule-results.sarif + summary: true + continue-on-error: true + + env: + PSRULE_CONFIGURATION_AZURE_BICEP_FILE_EXPANSION: 'true' + PSRULE_CONFIGURATION_AZURE_BICEP_FILE_EXPANSION_TIMEOUT: '30' - name: Upload alerts to Security tab uses: github/codeql-action/upload-sarif@v3 if: github.repository_owner == 'Azure-Samples' with: - - sarif_file: ${{ steps.msdo.outputs.sarifFile }} + sarif_file: reports/ps-rule-results.sarif diff --git a/infra/main.test.bicep b/infra/main.test.bicep new file mode 100644 index 0000000..525f534 --- /dev/null +++ b/infra/main.test.bicep @@ -0,0 +1,26 @@ +// This file is for doing static analysis and contains sensible defaults +// for the template analyser to minimise false-positives and provide the best results. + +// This file is not intended to be used as a runtime configuration file. + +targetScope = 'subscription' + +param environmentName string = 'testing' +param location string = 'westus2' + +@secure() +param dbserverPassword string = newGuid() + +@secure() +param secretKey string = newGuid() + +module main 'main.bicep' = { + name: 'main' + params: { + name: environmentName + location: location + // These are used for static analysis and never deployed + dbserverPassword: dbserverPassword + secretKey: secretKey + } +} diff --git a/ps-rule.yaml b/ps-rule.yaml new file mode 100644 index 0000000..bb4904b --- /dev/null +++ b/ps-rule.yaml @@ -0,0 +1,3 @@ +# YAML: Set the AZURE_BICEP_FILE_EXPANSION configuration option to enable expansion +configuration: + AZURE_BICEP_FILE_EXPANSION: true \ No newline at end of file