Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Azure Managed Instance for Apache Cassandra provides automated deployment, scaling, and management for open-source Apache Cassandra datacenters that run in your own virtual network. When you deploy the service, follow security best practices to protect your data, credentials, and cluster infrastructure.
This article provides security recommendations to help protect your Azure Managed Instance for Apache Cassandra deployment. For a conceptual overview of the service's security model, see Security in Azure Managed Instance for Apache Cassandra.
The security recommendations in this article implement Zero Trust principles: "Verify explicitly", "Use least privilege access", and "Assume breach". For comprehensive Zero Trust guidance, see the Zero Trust Guidance Center.
Network security
Azure Managed Instance for Apache Cassandra injects resources directly into your virtual network with private IP addresses and doesn't expose public endpoints. Control the surrounding network to keep traffic private.
- Deploy the cluster into a dedicated virtual network subnet: Place each datacenter in a subnet that you size and delegate for the service, so cluster nodes stay reachable only over private IP addresses within your virtual network. For more information, see Create a cluster by using the Azure CLI.
- Restrict outbound traffic to required destinations: Allow only the outbound network rules the service needs. If you use Azure Firewall or network security groups, apply the required virtual network service tags; if you use a non-Microsoft firewall, configure user-defined routes for the required Microsoft address prefixes. For more information, see Required outbound network rules.
- Isolate the management operator with a VPN connection: Deploy the cluster with the VPN connection method so the management operator runs in a separate virtual network and reaches the cluster through a private endpoint, with service endpoint policies and network security groups that block operator access to the internet. For more information, see Use a VPN with Azure Managed Instance for Apache Cassandra.
- Grant the deployment identity permission to join your subnet: Assign the Azure Cosmos DB service principal a role such as Network Contributor, or a custom role that allows
Microsoft.Network/virtualNetworks/subnets/join/action, scoped to the target virtual network. Every virtual network-injected cluster and datacenter deployment requires this permission, whether or not you use customer-managed keys. For more information, see Use the Azure portal to add the Azure Cosmos DB service principal.
Identity and access management
The service uses Apache Cassandra native authentication and authorization, which you manage through Cassandra roles, and it supports directory-based authentication and client certificate authentication for stronger identity assurance.
- Evaluate LDAP authentication for directory-based sign-ins: If public preview features meet your workload requirements, authenticate cluster users against your own directory instead of relying only on local Cassandra credentials, so account lifecycle and password policy stay centralized. For more information, see Enable LDAP authentication in Azure Managed Instance for Apache Cassandra.
- Require client certificate authentication: Configure client-to-node certificate authentication (mutual TLS) so the cluster verifies each connecting client against certificates in its trust store. For more information, see Configure client certificates.
- Protect the initial Cassandra administrator credentials: Replace the sample
initialCassandraAdminPasswordvalue with a strong password at cluster creation, and restrict use of that administrator account to cluster administration. For more information, see Create a cluster by using the Azure CLI. - Restrict control-plane access with custom Azure roles: When built-in roles are broader than needed, create a custom role that grants only the specific actions your operators need on the
Microsoft.DocumentDB/cassandraClustersandMicrosoft.DocumentDB/cassandraClusters/dataCentersresource types, such as theread,write, anddeleteactions required to create, modify, scale, deallocate, repair, or delete the cluster and datacenter resources. For more information, see Azure permissions for Databases.
Data protection
By default, the service encrypts data at rest with service-managed keys and enforces server and node-to-node TLS in transit. To control the encryption key lifecycle yourself, configure customer-managed keys.
- Encrypt data at rest with customer-managed keys: Bring your own key in Azure Key Vault to encrypt data on disk, so you control the key lifecycle and revocation. For more information, see Customer-managed keys in Azure Managed Instance for Apache Cassandra.
- Grant key permissions to the cluster identity: Enable purge protection on the key vault, and grant the cluster identity the
get,wrap, andunwrappermissions before you deploy datacenters with customer-managed keys. For more information, see Create a cluster with a system-assigned identity.
- Grant key permissions to the cluster identity: Enable purge protection on the key vault, and grant the cluster identity the
Logging and monitoring
Azure Managed Instance for Apache Cassandra integrates with Azure Monitor and emits Cassandra server and audit logs that you can route to your own log store for detection and investigation.
- Enable diagnostic settings for Cassandra logs and audit logs: Route the
CassandraLogsandCassandraAuditcategories to a Log Analytics workspace, storage account, or event hub to record server operations and Cassandra Query Language activity. For more information, see Diagnostic settings. - Filter audit logging with an allow list: Audit logging records every sign-in attempt and CQL query by default, which can generate excessive records and overhead. Define an allow list to selectively include or exclude keyspaces, categories, and users so your audit trail captures security-relevant activity without overwhelming your log store. For more information, see Audit log allow list.
Compliance and governance
Govern the lifecycle of your clusters so they stay patched and protected against accidental deletion.
- Protect clusters and datacenters with resource locks: Apply a delete lock to the Cassandra cluster and its datacenter resources so accidental deletion can't remove them, which matters because automated backups are retained for only a short window. For more information, see Lock your resources to protect your infrastructure.
- Keep clusters patched by avoiding prolonged deallocation: Return deallocated nonproduction clusters to service within seven days, because a cluster left deallocated longer might miss security patches and should be recreated. For more information, see Deallocate a cluster.
Backup and recovery
The service takes automated snapshot backups that you can tune, but backups aren't geo-redundant. Combine backup configuration with a multi-region topology for resiliency.
- Configure the backup interval and retention period: Adjust the automated snapshot schedule and retention (up to two days) to match your recovery point objective. For more information, see Backup and restore.
- Deploy multiple regions for disaster recovery: Because backups aren't geo-redundant, run datacenters in more than one region so a regional outage doesn't leave data unavailable. A second region alone doesn't guarantee against data loss: update each keyspace to use
NetworkTopologyStrategywith an appropriate replication factor across the datacenters, and choose a write consistency level that meets your durability requirements. When you add a region, apply the keyspace replication changes and stop clients from writing to the new datacenter before you runnodetool rebuildto copy existing data; writing too early prevents the rebuild from completing. For more information, see Create a multi-region cluster.