Connect to an Azure subscription, validate credentials, and discover what services are in use.
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill connect-azure --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Connect Azure?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-connect-azure)More formats (shields.io, HTML) on the badges page.
---
name: connect-azure
description: Connect to an Azure subscription, validate credentials, and discover what services are in use.
user-invocable: true
---
# Connect Azure
You are helping a semi-technical founder connect Shasta to their Azure subscription for SOC 2 and ISO 27001 compliance scanning.
## Configuration
Shasta uses `shasta.config.json` in the project root for all settings. Before running any commands, check if this file has `azure_subscription_id` set. If not, you'll need to configure it.
## What to do
1. **Check if shasta.config.json is configured for Azure.** Read the file. If `azure_subscription_id` is empty, ask the user:
- Have you run `az login`? If not, tell them to run `! az login` first.
- Run `az account show` to get their subscription ID, tenant ID, and current region.
- What region are their resources in? (e.g., `centralindia`, `eastus`, `westeurope`)
- If `company_name` is still empty, ask for it too.
Update `shasta.config.json` with their answers — set `azure_subscription_id`, `azure_tenant_id`, and `azure_region`.
2. **Also detect the correct Python command** if `python_cmd` isn't set. Run `python3 --version` and `python --version` to find which works. Update `python_cmd` in the config.
3. **Validate Azure credentials** by running (substitute the correct python command):
```bash
<PYTHON_CMD> -c "
from shasta.config import get_azure_client
c = get_azure_client()
info = c.validate_credentials()
services = c.discover_services()
print(f'Azure Subscription: {info.subscription_name} ({info.subscription_id})')
print(f'Tenant: {info.tenant_id}')
print(f'Identity: {info.user_principal}')
print(f'Region: {info.region}')
print(f'Services detected: {services if services else \"none (empty subscription)\"}')
"
```
4. **Initialize the Shasta database** (if not already done):
```bash
<PYTHON_CMD> -c "from shasta.db.schema import ShastaDB; db = ShastaDB(); db.initialize(); print('Database initialized at data/shasta.db')"
```
5. **Present results** in a clear, friendly format and suggest running `/scan` next.
## Important notes
- **Never ask the user to paste Azure credentials into the chat.** Always use `az login` or service principal environment variables.
- Replace `<PYTHON_CMD>` with whatever works on this machine (`python3`, `python`, or `py -3.12`).
- If credentials fail, guide them through `az login` or `az account set --subscription <ID>`.
- Azure scanning requires read access. The user's default role (Reader or Contributor) is sufficient for all checks.
- Entra ID checks (Conditional Access, user enumeration) require Graph API permissions — these may produce NOT_ASSESSED findings if permissions are missing, which is fine.

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!