[Feature]: Add workspace-admin mode (Azure) — run SAT without account-admin credentials#359
Open
dinbab1984 wants to merge 9 commits into
Conversation
- Add workspace-admin-limitations.mdx to Docusaurus docs (sidebars.ts updated) - Add test_workspace_admin_mode.py validating skip behavior for 13 account-level checks - Update CHANGELOG.md with [Unreleased] section for workspace-admin feature - Update README.md with Deployment Modes section (account-admin vs workspace-admin) - Register 'requires_run' pytest mark in conftest.py - Remove CHANGES_feat_poc.md (content moved to proper docs location)
…urces, azure-pipelines) These files were exploratory and not part of the workspace-admin feature scope: - databricks.yml - deployment/bundle/resources/ (dashboard, jobs, warehouse configs) - deployment/pipelines/azure-pipelines.yml
…void false positives The 13 account-level checks are not automatically skipped at evaluation time — only account-level data collection (accounts_bootstrap) is skipped. Without disabling these checks in security_best_practices.csv, they will report false violations against missing intermediate tables. Added Required Configuration section with SQL and CSV instructions.
Author
|
@arunpamulapati and @dleiva04 Could you please suggest reviewer assignment for this PR? Thanks! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add workspace-admin mode to SAT (Azure), allowing it to run without account-admin credentials. When account-level secrets are not configured in the secret scope, SAT detects this and automatically disables account-level data collection (
accounts_bootstrap). Users must additionally disable the 13 account-level checks insecurity_best_practices.csvto avoid false-positive violations — see the [Workspace Admin Limitations](https://databricks-industry-solutions.github.io/security-analysis-tool/docs/workspace-admin-limitations) doc for instructions.Relates to #358
Design principle: If the runner is an account admin with secret scope configured → original behavior preserved exactly. If not → account-level data collection is skipped automatically, and users configure which checks to disable. No breaking changes.
Key changes:
ENABLE_ACCOUNT_CHECKSflag auto-detects based onaccount-console-idpresence in secret scopegetContext().apiToken()whenclient-secretis absentaccounts_bootstrapcall guarded byENABLE_ACCOUNT_CHECKSThis is a new feature with no matching open issue. A feature request issue will be created separately.
Type of Change
How Has This Been Tested?
test_csv_health.py(3 passed),test_rule_hygiene.py(2 passed) — no regressionstests/automated/test_workspace_admin_mode.py(10 tests) validates:release/0.9.0— no conflicts with the BrickHound dedup fix (fix: deduplicate BrickHound vertices by id before write #352)Checklist
Screenshots (If Applicable)
N/A — logic-only changes with no UI modifications. Dashboard renders identically when the 13 account-level checks are disabled via CSV.
Additional Notes
release/0.9.0(rebased fromupstream/release/0.9.0)ENABLE_ACCOUNT_CHECKSdefaults toTruewhenaccount-console-idexists in the secret scope.security_best_practices.csv(or via SQL UPDATE) to avoid false-positive violations. This is documented inworkspace-admin-limitations.mdxwith a ready-to-run SQL statement.getContext().apiToken()path is Azure-specific. AWS/GCP credential paths are preserved as-is frommain.databricks.yml, bundle resource configs,azure-pipelines.yml, and Azure DevOps runbook were exploratory and not part of this feature scope.