Microsoft Azure Security Center Management Client Library for Python
npx @tessl/cli install tessl/pypi-azure-mgmt-security@7.0.0A comprehensive Python library for managing Microsoft Azure Security Center resources. This package provides unified access to all Azure Security Center functionality across 69 operation groups, enabling security assessment, compliance monitoring, threat protection, and security configuration management for Azure and multi-cloud environments.
pip install azure-mgmt-securityfrom azure.mgmt.security import SecurityCenterFor authentication:
from azure.identity import DefaultAzureCredentialfrom azure.identity import DefaultAzureCredential
from azure.mgmt.security import SecurityCenter
# Initialize with default credentials and subscription
credential = DefaultAzureCredential()
subscription_id = "your-subscription-id"
# Create the Security Center client
client = SecurityCenter(credential, subscription_id)
# List security alerts
alerts = client.alerts.list()
for alert in alerts:
print(f"Alert: {alert.display_name}, Severity: {alert.severity}")
# Get security assessments
scope = f"subscriptions/{subscription_id}"
assessments = client.assessments.list(scope)
for assessment in assessments:
print(f"Assessment: {assessment.display_name}, Status: {assessment.status.code}")
# Check secure score
secure_scores = client.secure_scores.list()
for score in secure_scores:
print(f"Secure Score: {score.current_score}/{score.max_score}")
# Configure pricing/defender plans
pricing = client.pricings.get(pricing_name="VirtualMachines")
print(f"Defender for VMs: {pricing.pricing_tier}")The Azure Security Center Management Client uses a multi-API architecture that provides:
SecurityCenter class provides access to all functionalityLATEST_PROFILE automatically maps operation groups to recommended API versionsclass SecurityCenter:
def __init__(
self,
credential: TokenCredential,
subscription_id: str,
api_version: Optional[str] = None,
base_url: str = "https://management.azure.com",
profile: KnownProfiles = KnownProfiles.default,
**kwargs: Any
) -> None
def close(self) -> None
def __enter__(self) -> "SecurityCenter"
def __exit__(self, *exc_details) -> None
@classmethod
def models(cls, api_version: str = "2024-04-01") -> AnyCore security assessment functionality including alerts, assessments, secure scores, and security recommendations. Essential for understanding and improving your security posture.
# Alert Management (API Version: 2022-01-01)
client.alerts.list() -> Iterator[Alert]
client.alerts.get_subscription_level(asc_location: str, alert_name: str) -> Alert
client.alerts.update_subscription_level_state_to_dismiss(asc_location: str, alert_name: str) -> None
# Security Assessments (API Version: 2021-06-01)
client.assessments.list(scope: str) -> Iterator[SecurityAssessmentResponse]
client.assessments.get(resource_id: str, assessment_name: str, expand: Optional[str] = None) -> SecurityAssessmentResponse
client.assessments.create_or_update(scope: str, assessment_name: str, assessment: SecurityAssessment) -> SecurityAssessment
# Secure Score (API Version: 2020-01-01)
client.secure_scores.list() -> Iterator[SecureScoreItem]
client.secure_score_controls.list() -> Iterator[SecureScoreControlDetails]Security Assessment and Monitoring
Regulatory compliance management, governance assignments, and compliance reporting across multiple standards like PCI DSS, SOC, and industry frameworks.
# Regulatory Compliance (API Version: 2019-01-01-preview)
client.regulatory_compliance_standards.list() -> Iterator[RegulatoryComplianceStandard]
client.regulatory_compliance_controls.list(standard_name: str) -> Iterator[RegulatoryComplianceControl]
client.regulatory_compliance_assessments.list(standard_name: str, control_name: str) -> Iterator[RegulatoryComplianceAssessment]
# Governance (API Version: 2022-01-01-preview)
client.governance_rules.list() -> Iterator[GovernanceRule]
client.governance_assignments.list(scope: str) -> Iterator[GovernanceAssignment]Comprehensive DevOps security for Azure DevOps, GitHub, and GitLab repositories, including security scanning, policy enforcement, and configuration management. Note: DevOps operations require API version 2024-04-01 or 2023-09-01-preview.
# Create version-specific client for DevOps operations
from azure.mgmt.security.v2024_04_01 import SecurityCenter as SecurityCenter_v2024_04_01
devops_client = SecurityCenter_v2024_04_01(credential, subscription_id)
# DevOps Configuration
devops_client.dev_ops_configurations.list() -> Iterator[DevOpsConfiguration]
devops_client.dev_ops_operation_results.get(operation_result_id: str) -> OperationResult
# Azure DevOps Integration
devops_client.azure_dev_ops_orgs.list() -> Iterator[AzureDevOpsOrg]
devops_client.azure_dev_ops_projects.list(org_name: str) -> Iterator[AzureDevOpsProject]
devops_client.azure_dev_ops_repos.list(org_name: str, project_name: str) -> Iterator[AzureDevOpsRepository]
# GitHub Integration
devops_client.git_hub_owners.list() -> Iterator[GitHubOwner]
devops_client.git_hub_repos.list(owner_name: str) -> Iterator[GitHubRepository]
# GitLab Integration
devops_client.git_lab_groups.list() -> Iterator[GitLabGroup]
devops_client.git_lab_projects.list(group_name: str) -> Iterator[GitLabProject]Network security hardening, just-in-time VM access policies, network topology analysis, and connection monitoring.
# Network Hardening (API Version: 2020-01-01)
client.adaptive_network_hardenings.list(resource_group_name: str) -> Iterator[AdaptiveNetworkHardening]
client.allowed_connections.list() -> Iterator[AllowedConnectionsResource]
client.topology.list() -> Iterator[TopologyResource]
# Just-in-Time Access
client.jit_network_access_policies.list() -> Iterator[JitNetworkAccessPolicy]
client.jit_network_access_policies.initiate(
resource_group_name: str,
jit_network_access_policy_name: str,
body: JitNetworkAccessPolicyInitiateRequest
) -> JitNetworkAccessRequestApplication security controls, API discovery and protection, and adaptive application whitelisting for enhanced application protection.
# Adaptive Application Controls (API Version: 2020-01-01)
client.adaptive_application_controls.list() -> Iterator[AdaptiveApplicationControlGroup]
client.adaptive_application_controls.get(group_name: str) -> AdaptiveApplicationControlGroup
# Application Management (API Version: 2022-07-01-preview)
client.applications.list() -> Iterator[Application]
client.application.get(application_id: str) -> Application
# API Security (API Version: 2023-11-15)
client.api_collections.list(subscription_id: str) -> Iterator[ApiCollection]
client.api_collection_onboarding.onboard(api_id: str) -> None
client.api_collection_offboarding.offboard(api_id: str) -> NoneComprehensive vulnerability scanning and management for servers, SQL databases, and detailed vulnerability findings with baseline rule management.
# Server Vulnerability Assessment (API Version: 2020-01-01)
client.server_vulnerability_assessment.list(resource_id: str) -> Iterator[ServerVulnerabilityAssessment]
client.server_vulnerability_assessments_settings.list() -> Iterator[ServerVulnerabilityAssessmentsSettings]
# SQL Vulnerability Assessment (API Version: 2023-02-01-preview)
client.sql_vulnerability_assessment_scans.list(resource_id: str) -> Iterator[SqlVulnerabilityAssessmentScan]
client.sql_vulnerability_assessment_scan_results.list(resource_id: str, scan_id: str) -> Iterator[SqlVulnerabilityAssessmentScanResult]
client.sql_vulnerability_assessment_baseline_rules.list(resource_id: str) -> Iterator[SqlVulnerabilityAssessmentBaselineRule]
# Sub-Assessments (API Version: 2019-01-01-preview)
client.sub_assessments.list(scope: str) -> Iterator[SubAssessment]Security Center configuration, contact management, workspace settings, and data export configuration for centralized security management.
# Settings Management (API Version: 2022-05-01)
client.settings.list() -> Iterator[Setting]
client.settings.get(setting_name: str) -> Setting
client.settings.update(setting_name: str, setting: Setting) -> Setting
# Security Contacts (API Version: 2020-01-01-preview)
client.security_contacts.list() -> Iterator[SecurityContact]
client.security_contacts.create(security_contact_name: str, security_contact: SecurityContact) -> SecurityContact
# Auto Provisioning (API Version: 2017-08-01-preview)
client.auto_provisioning_settings.list() -> Iterator[AutoProvisioningSetting]
client.workspace_settings.list() -> Iterator[WorkspaceSetting]Multi-cloud security connectors, Microsoft Defender service configuration, and cloud security posture management across Azure, AWS, and GCP.
# Security Connectors (API Version: 2023-10-01-preview)
client.security_connectors.list() -> Iterator[SecurityConnector]
client.security_connectors.create_or_update(
resource_group_name: str,
security_connector_name: str,
security_connector: SecurityConnector
) -> SecurityConnector
# Defender Services (API Version: 2022-12-01-preview)
client.defender_for_storage.get(resource_id: str) -> DefenderForStorageSettings
client.pricings.list() -> Iterator[Pricing]
client.pricings.update(pricing_name: str, pricing: Pricing) -> Pricing
# Legacy Connectors (API Version: 2020-01-01-preview)
client.connectors.list() -> Iterator[ConnectorSetting]Cloud Security Posture Management
# Core Imports
from azure.mgmt.security import SecurityCenter
from azure.core.credentials import TokenCredential
from azure.profiles import KnownProfiles
from typing import Optional
# Main Client
class SecurityCenter:
credential: TokenCredential
subscription_id: str
api_version: Optional[str]
base_url: str
# Common Response Types
class Alert:
id: Optional[str]
name: Optional[str]
display_name: Optional[str]
severity: Optional[str] # High, Medium, Low, Informational
status: Optional[str] # Active, Resolved, Dismissed
class SecurityAssessment:
id: Optional[str]
name: Optional[str]
display_name: Optional[str]
status: Optional[AssessmentStatus]
class AssessmentStatus:
code: Optional[str] # Healthy, Unhealthy, NotApplicable
cause: Optional[str]
description: Optional[str]
class SecureScoreItem:
id: Optional[str]
name: Optional[str]
current_score: Optional[float]
max_score: Optional[int]
percentage: Optional[float]
class SecurityAssessmentResponse:
id: Optional[str]
name: Optional[str]
display_name: Optional[str]
status: Optional[AssessmentStatus]