Cloud Security Benchmark
Cloud Security Benchmark
This spreadsheet is designed to provide you a private preview version of the Microsoft Cloud Security Benchmark v1. For the
ttps://docs.microsoft.com/en-us/security/benchmark/azure/overview
a. The control mappings between MCSB and industry benchmarks (such as NIST, CIS and PCI) only indicate that a specific Azu
address a control requirement defined in NIST, CIS or PCI. You should be aware that such implementation does not necessar
corresponding control in CIS, NIST or PCI.
b. This document is developed as a reference and should not be used to define all means by which a customer can meet spe
regulations. Customers should seek legal support from their organization on approved customer implementations.
and industry benchmarks (such as NIST, CIS and PCI) only indicate that a specific Azure feature can be used to fully or partially
NIST, CIS or PCI. You should be aware that such implementation does not necessarily translate to the full compliance of the
ence and should not be used to define all means by which a customer can meet specific compliance requirements and
support from their organization on approved customer implementations.
low principles:
atforms will follow the same cloud-neutral security principles at each control level as Azure's.
atforms will provide the same level of granularity and same scope in the technical guidance as Azure's.
der’s (CSP) native solution or feature will usually be recommended as the first preference for each control. However, when
on available in Azure, it'll be prioritized as the default recommendation.
nor Azure solutions are available to satisfy a security principle, third-party solutions will be recommended from the Azure or the
osoft Cloud Security Benchmark will not name any specific third-party vendor product or solution.
Descriptions
The Microsoft Cloud Security Benchmark ID.
The security control domain.
The technology-agnostic and cloud neutral principle for various security topics in each control domains.
The control recommendation in summarized format.
The technical guidance for Azure platforms.
The technical guidance for Amazon Web Services platforms.
The implementation details and other relevant context which links to the Azure or AWS service offering
documentation articles.
ID Control Domain CIS Controls v7.1 ID(s) CIS Controls v8 ID(s) NIST SP800-53 r4 ID(s)
NS-1 Network Security 9.2 - Ensure Only 3.12 - Segment Data AC-4: INFORMATION
Approved Ports, Processing and Storage FLOW ENFORCEMENT
Protocols and Services Based on Sensitivity SC-2: APPLICATION
Are Running 13.4 - Perform Traffic PARTITIONING
9.4 - Apply Host-Based Filtering Between SC-7: BOUNDARY
Firewalls or Port Filtering Network Segments PROTECTION
12.3 - Deny 4.4 - Implement and
Communications with Manage a Firewall on
Known Malicious IP Severs
Addresses
12.4 - Deny
Communication over
Unauthorized Ports
14.1 - Segment the
Network Based on
Sensitivity
14.2 - Enable Firewall
Filtering Between VLANs
NS-2 Network Security 14.1 - Segment the 3.12 - Segment Data AC-4: INFORMATION
Network Based on Processing and Storage FLOW ENFORCEMENT
Sensitivity Based on Sensitivity SC-2: APPLICATION
4.4 - Implement and PARTITIONING
Manage a Firewall on SC-7: BOUNDARY
Servers PROTECTION
NS-3 Network Security 9.2 - Ensure Only 4.4 - Implement and AC-4: INFORMATION
Approved Ports, Manage a Firewall on FLOW ENFORCEMENT
Protocols and Services Servers SC-7: BOUNDARY
Are Running 4.8 - Uninstall or PROTECTION
9.4 - Apply Host-Based Disable Unnecessary CM-7: LEAST
Firewalls or Port Filtering Services on Enterprise FUNCTIONALITY
12.3 - Deny Assets and Software
Communications with 13.10 Perform
Known Malicious IP Application Layer
Addresses Filtering
12.4 - Deny
Communication over
Unauthorized Ports
14.1 - Segment the
Network Based on
Sensitivity
14.2 - Enable Firewall
Filtering Between VLANs
NS-4 Network Security 12.6 - Deploy Network- 13.2 Deploy a Host- SC-7: BOUNDARY
Based IDS Sensors Based Intrusion PROTECTION
12.7 - Deploy Network- Detection Solution SI-4: INFORMATION
Based Intrusion 13.3 - Deploy a SYSTEM MONITORING
Prevention Systems Network Intrusion
Detection Solution
13.7 Deploy a Host-
Based Intrusion
Prevention Solution
13.8 - Deploy a
Network Intrusion
Prevention Solution
NS-5 Network Security 9.5 - Implement 13.10 - Perform SC-5: DENIAL OF SERVICE
Application Firewalls Application Layer PROTECTION
12.3 - Deny Filtering SC-7: BOUNDARY
Communications with PROTECTION
Known Malicious IP
Addresses
NS-6 Network Security 9.5 - Implement 13.10 - Perform SC-7: BOUNDARY
Application Firewalls Application Layer PROTECTION
12.3 - Deny Filtering
Communications with
Known Malicious IP
Addresses
12.9 - Deploy Application
Layer Filtering Proxy
Server
18.10 - Deploy Web
Application Firewalls
(WAFs)
NS-7 Network Security 9.2 - Ensure Only 4.4 - Implement and AC-4: INFORMATION
Approved Ports, Manage a Firewall on FLOW ENFORCEMENT
Protocols and Services Severs SC-2: APPLICATION
Are Running 4.8 - Uninstall or PARTITIONING
Disable Unnecessary SC-7: BOUNDARY
Services on Enterprise PROTECTION
Assets and Software
NS-8 Network Security 9.2 - Ensure Only 4.4 - Implement and CM-2: BASELINE
Approved Ports, Manage a Firewall on CONFIGURATION
Protocols and Services Severs CM-6: CONFIGURATION
Are Running 4.8 - Uninstall or SETTINGS
Disable Unnecessary CM-7: LEAST
Services on Enterprise FUNCTIONALITY
Assets and Software
NS-9 Network Security N/A 12.7 - Ensure Remote CA-3: SYSTEM
Devices Utilize a VPN INTERCONNECTIONS
and are Connecting to AC-17: REMOTE ACCESS
an Enterprise’s AAA AC-4: INFORMATION
Infrastructure FLOW ENFORCEMENT
NS-10 Network Security 7.7 - Use of DNS Filtering 4.9 - Configure Trusted SC-20: SECURE NAME /
Services DNS Servers on ADDRESS RESOLUTION
Enterprise Assets SERVICE
9.2 - Use DNS Filtering (AUTHORITATIVE
Services SOURCE)
SC-21: SECURE NAME /
ADDRESS RESOLUTION
SERVICE (RECURSIVE OR
CACHING RESOLVER)
PCI-DSS v3.2.1 IDRecommendation Security Principle
1.1 Establish network Ensure that your virtual network deployment aligns to your enterprise
1.2 segmentation segmentation strategy defined in the GS-2 security control. Any workload
1.3 boundaries that could incur higher risk for the organization should be in isolated
virtual networks.
Examples of high-risk workload include:
- An application storing or processing highly sensitive data.
- An external network-facing application accessible by the public or users
outside of your organization.
- An application using insecure architecture or containing vulnerabilities
that cannot be easily remediated.
1.1 Secure cloud native Secure cloud services by establishing a private access point for the
1.2 services with resources. You should also disable or restrict access from public network
1.3 network controls when possible.
1.1 Deploy firewall at Deploy a firewall to perform advanced filtering on network traffic to and
1.2 the edge of from external networks. You can also use firewalls between internal
1.3 enterprise network segments to support a segmentation strategy. If required, use custom
routes for your subnet to override the system route when you need to
force the network traffic to go through a network appliance for security
control purpose.
11.4 Deploy intrusion Use network intrusion detection and intrusion prevention systems
detection/intrusion (IDS/IPS) to inspect the network and payload traffic to or from your
prevention systems workload. Ensure that IDS/IPS is always tuned to provide high-quality
(IDS/IPS) alerts to your SIEM solution.
For more in-depth host level detection and prevention capability, use
host-based IDS/IPS or a host-based endpoint detection and response
(EDR) solution in conjunction with the network IDS/IPS.
1.1 Deploy DDOS Deploy distributed denial of service (DDoS) protection to protect your
1.2 protection network and applications from attacks.
1.3
6.6
1.1 Deploy web Deploy a web application firewall (WAF) and configure the appropriate
1.2 application firewall rules to protect your web applications and APIs from application-specific
1.3 attacks.
6.6
1.1 Simplify network When managing a complex network environment, use tools to simplify,
1.2 security centralize and enhance the network security management.
1.3 configuration
4.1 Detect and disable Detect and disable insecure services and protocols at the OS, application,
A2.1 insecure services or software package layer. Deploy compensating controls if disabling
A2.2 and protocols insecure services and protocols are not possible.
A2.3
N/A Connect on- Use private connections for secure communication between different
premises or cloud networks, such as cloud service provider datacenters and on-premises
network privately infrastructure in a colocation environment.
N/A Ensure Domain Ensure that Domain Name System (DNS) security configuration protects
Name System (DNS) against known risks:
security - Use trusted authoritative and recursive DNS services across your cloud
environment to ensure the client (such as operating systems and
applications) receive the correct resolution result.
- Separate the public and private DNS resolution so the DNS resolution
process for the private network can be isolated from the public network.
- Ensure your DNS security strategy also includes mitigations against
common attacks, such as dangling DNS, DNS amplifications attacks, DNS
poisoning and spoofing, and so on.
Azure Guidance
Create a virtual network (VNet) as a fundamental segmentation approach in your Azure
network, so resources such as VMs can be deployed into the VNet within a network boundary.
To further segment the network, you can create subnets inside VNet for smaller sub-networks.
Use network security groups (NSG) as a network layer control to restrict or monitor traffic by
port, protocol, source IP address, or destination IP address. Refer to NS-7 Simplify network
security configuration to use Adaptive Network Hardening to recommend NSG hardening rules
based on threat intelligence and traffic analysis result.
You can also use application security groups (ASGs) to simplify complex configuration. Instead of
defining policy based on explicit IP addresses in network security groups, ASGs enable you to
configure network security as a natural extension of an application's structure, allowing you to
group virtual machines and define network security policies based on those groups.
Deploy private endpoints for all Azure resources that support the Private Link feature, to
establish a private access point for the resources. Using Private Link will keep the private
connection from routing through the public network.
Note: Certain Azure services may also allow private communication through the service
endpoint feature, though it is recommended to use Azure Private Link for secure and private
access to services hosted on Azure platform.
For certain services, you can choose to deploy VNet integration for the service where you can
restrict/isolate the VNET to establish a private access point for the service.
You also have the option to configure the service native network ACL rules or simply disable
public network access to block access from the public network.
For Azure VMs, unless there is a strong use case, you should avoid assigning public IPs/subnet
directly to the VM interface and instead use gateway or load balancer services as the front-end
for access by the public network.
Use Azure Firewall to provide fully stateful application layer traffic restriction (such as URL
filtering) and/or central management over a large number of enterprise segments or spokes (in
a hub/spoke topology).
If you have a complex network topology, such as a hub/spoke setup, you may need to create
user-defined routes (UDR) to ensure the traffic goes through the desired route. For example,
you have the option to use an UDR to redirect egress internet traffic through a specific Azure
Firewall or a network virtual appliance.
Use Azure Firewall’s IDPS capability to protect your virtual network to alert on and/or block
traffic to and from known malicious IP addresses and domains.
For more in-depth host-level detection and prevention capabilities, deploy host-based IDS/IPS
or a host-based endpoint detection and response (EDR) solution, such as Microsoft Defender for
Endpoint, at the VM level in conjunction with the network IDS/IPS.
DDoS Protection Basic is automatically enabled to protect the Azure underlying platform
infrastructure (e.g., Azure DNS) and requires no configuration from the users.
For higher levels of protection of your application layer (Layer 7) attacks such as HTTP floods
and DNS floods, enable the DDoS standard protection plan on your VNet to protect resources
that are exposed to the public networks.
Use web application firewall (WAF) capabilities in Azure Application Gateway, Azure Front Door,
and Azure Content Delivery Network (CDN) to protect your applications, services and APIs
against application layer attacks at the edge of your network.
Set your WAF in "detection" or "prevention mode," depending on your needs and threat
landscape.
Choose a built-in ruleset, such as OWASP Top 10 vulnerabilities, and tune it to your application
needs.
Use the following features to simplify the implementation and management of the virtual
network, NSG rules, and Azure Firewall rules:
- Use Azure Virtual Network Manager to group, configure, deploy, and manage virtual networks
and NSG rules across regions and subscriptions.
- Use Microsoft Defender for Cloud Adaptive Network Hardening to recommend NSG hardening
rules that further limit ports, protocols and source IPs based on threat intelligence and traffic
analysis result.
- Use Azure Firewall Manager to centralize the firewall policy and route management of the
virtual network. To simplify the firewall rules and network security groups implementation, you
can also use the Azure Firewall Manager Azure Resource Manager (ARM) template.
Use Microsoft Sentinel’s built-in Insecure Protocol Workbook to discover the use of insecure
services and protocols such as SSL/TLSv1, SSHv1, SMBv1, LM/NTLMv1, wDigest, weak ciphers in
Kerberos, and Unsigned LDAP Binds. Disable insecure services and protocols that do not meet
the appropriate security standard.
Note: If disabling insecure services or protocols is not possible, use compensating controls such
as blocking access to the resources through network security groups, Azure Firewall, or Azure
Web Application Firewall to reduce the attack surface.
For lightweight site-to-site or point-to-site connectivity, use Azure virtual private network (VPN)
to create a secure connection between your on-premises site or end-user device and the Azure
virtual network.
For enterprise-level high performance connections, use Azure ExpressRoute (or Virtual WAN) to
connect Azure datacenters and on-premises infrastructure in a co-location environment.
When connecting two or more Azure virtual networks together, use virtual network peering.
Network traffic between peered virtual networks is private and is kept on the Azure backbone
network.
Use Azure recursive DNS (usually assigned to your VM through DHCP or preconfigured in the
service) or a trusted external DNS server in your workload recursive DNS setup, such as in the
VM's operating system or in the application.
Use Azure Private DNS for a private DNS zone setup where the DNS resolution process does not
leave the designated virtual network. Use a custom DNS to restrict the DNS resolution to only
allow trusted resolution to your client.
Use Microsoft Defender for DNS for the advanced protection against the following security
threats to your workload or your DNS service:
- Data exfiltration from your Azure resources using DNS tunneling
- Malware communicating with a command-and-control server
- Communication with malicious domains such as as phishing and crypto mining
- DNS attacks in communication with malicious DNS resolvers
You can also use Microsoft Defender for App Service to detect dangling DNS records if you
decommission an App Service website without removing its custom domain from your DNS
registrar.
Implementation and additional context
Azure Virtual Network concepts and best practices:
https://docs.microsoft.com/azure/virtual-network/concepts-and-best-
practices
For EC2 instances, use Security Groups, as a stateful firewall to restrict traffic
by port, protocol, source IP address, or destination IP address. At the VPC
subnet level, use Network Access Control List (NACL) as a stateless firewall to
have explicit rules for ingress and egress traffic to the subnet.
Note: To control VPC traffic, Internet and NAT Gateway should be configured
to ensure the traffic from/to the internet are restricted.
Deploy VPC PrivateLink for all AWS resources that support the PrivateLink
feature, to allow private connection to the supported AWS services or services
hosted by other AWS accounts (VPC endpoint services). Using PrivateLink will
keep the private connection from routing through the public network.
For certain services, you can choose to deploy the service instance into your
own VPC to isolate the traffic.
You also have the option to configure the service native ACL rules to block
access from the public network. For example, Amazon S3 allows you to block
public access at the bucket or account level.
When assigning IPs to your service resources in your VPC, unless there is a
strong use case, you should avoid assigning public IPs/subnet directly to your
resources and instead use private IPs/subnet.
Use AWS Network Firewall to provide fully stateful application layer traffic
restriction (such as URL filtering) and/or central management over a large
number of enterprise segments or spokes (in a hub/spoke topology).
If you have a complex network topology, such as a hub/spoke setup, you may
need to create custom VPC route tables to ensure the traffic goes through the
desired route. For example, you have the option to use a custom route to
redirect egress internet traffic through a specific AWS Firewall or a network
virtual appliance.
Use AWS Network Firewall’s IPS capability to protect your VPC to alert on
and/or block traffic to and from known malicious IP addresses and domains.
Note: If using a third-party IDS/IPS from marketplace, use Transit Gateway and
Gateway Balancer to direct the traffic for in-line inspection.
Use AWS Managed Rules for WAF to deploy built-in baseline groups, and
customize it to your application needs for the user-case rule groups.
To simplify the WAF rules deployment, you can also use the AWS WAF
Security Automations solution to automatically deploy pre-defined AWS WAF
rules that filters web-based attacks on your web ACL.
Enable VPC Flow Logs and use GuardDuty to analyze the VPC Flow Logs to
identify the possible insecure services and protocols that do not meet the
appropriate security standard.
You have the option to use VPC Peering or Transit Gateway to establish
connectivity between two or more VPCs within or across regions. Network
traffic between peered VPC is private and is kept on the AWS backbone
network. When you need to join multiple VPCs to create a large flat subnet,
you also have the option to use VPC Sharing.
Use the Amazon DNS Server (i.e. Amazon Route 53 Resolver server which is
usually assigned to you through DHCP or preconfigured in the service) or a
centralized trusted DNS resolver server in your workload recursive DNS setup,
such as in the VM's operating system or in the application.
Use Amazon Route 53 to create a private hosted zone setup where the DNS
resolution process does not leave the designated VPCs. Use Amazon Route 53
firewall to regulate and filter the outbound DNS/UDP traffic in your VPC for
the following use cases:
- Prevent attacks such as DNS exfiltration in your VPC
- Set up allow or deny lists for the domains that your applications can query
Amazon Route 53 also provides a DNS registration service where Route 53 can
be used as the authoritative name servers for your domains. The following
best practices should be followed to ensure the security of your domain
names:
- Domain names should be automatically renewed by the Amazon Route 53
service.
- Domain names should have the Transfer Lock feature enabled in order to
keep them secure.
- he Sender Policy Framework (SPF) is should be used to stop spammers from
spoofing your domain.
Implementation and additional context:
Control traffic to EC2 instances with security groups:
https://docs.aws.amazon.com/vpc/latest/userguide/
VPC_SecurityGroups.html
Internet Gateway:
https://docs.aws.amazon.com/vpc/latest/userguide/
VPC_Internet_Gateway.html
NAT Gateway:
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-
nat-gateway.html
AWS PrivateLink:
https://docs.aws.amazon.com/vpc/latest/privatelink/
endpoint-service.html
https://aws.amazon.com/marketplace/search?
searchTerms=IPS
https://docs.aws.amazon.com/waf/latest/developerguide/
fms-findings.html
Transit Gateway:
https://docs.aws.amazon.com/vpc/latest/tgw/what-is-
transit-gateway.html
VPC Sharing:
https://docs.aws.amazon.com/whitepapers/latest/building-
scalable-secure-multi-vpc-network-infrastructure/amazon-
vpc-sharing.html
Amazon Route 53 DNSSEC configuration:
https://docs.aws.amazon.com/Route53/latest/
DeveloperGuide/domain-configure-dnssec.html
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
IM-2 Identity Management 4.3 - Ensure the Use of 5.4 - Restrict Administrator
Dedicated Administrative Privileges to Dedicated
Accounts Administrator Accounts
4.5 - Use Multi-Factor 6.5 - Require MFA for
Authentication for All Administrative Access
Administrative Access
IM-3 Identity Management N/A N/A
IM-7 Identity Management 12.11 - Require All Remote 3.3 - Configure Data Access
Logins to Use Multi-Factor Control Lists
Authentication 6.4 - Require MFA for
12.12 - Manage All Devices Administrative Access
Remotely Logging Into 13.5 - Manage Access
Internal Network Control for Remote Assets
14.6 - Protect Information
Through Access Control
Lists
16.3 - Require Multi-Factor
Authentication
IM-8 Identity Management 18.1 - Establish Secure 16.9 - Train Developers in
Coding Practices Application Security
18.6 - Ensure Software Concepts and Secure Coding
Development Personnel Are 16.12 - Implement Code-
Trained in Secure Coding Level Security Checks
18.7 - Apply Static and
Dynamic Code Analysis
Tools
For the Azure services that apply, avoid use of local authentication methods and instead
use Azure Active Directory to centralize your service authentications.
Note: As soon as it is technically feasible, you should migrate on-premises Active Directory-
based applications to Azure AD. This could be an Azure AD Enterprise Directory, Business to
Business configuration, or Business to consumer configuration.
Use the Azure AD security baseline and the Azure AD Identity Secure Score to evaluate your
Azure AD identity security posture, and remediate security and configuration gaps.
The Azure AD Identity Secure Score evaluates Azure AD for the following configurations:
- Use limited administrative roles
- Turn on user risk policy
- Designate more than one global admin
- Enable policy to block legacy authentication
- Ensure all users can complete multi-factor authentication for secure access
- Require MFA for administrative roles
- Enable self-service password reset
- Do not expire passwords
- Turn on sign-in risk policy
- Do not allow users to grant consent to unmanaged applications
Use Azure AD Identity Protection to detect, investigate, and remediate identity-based risks.
To similarly protect your on-premises Active Directory domain, use Defender for Identity.
Note: Follow published best practices for all other identity components, including your on-
premises Active Directory and any third party capabilities, and the infrastructure (such as
operating systems, networks, databases) that host them.
Use Azure managed identities, which can authenticate to Azure services and resources that
support Azure AD authentication. Managed identity credentials are fully managed, rotated,
and protected by the platform, avoiding hard-coded credentials in source code or
configuration files.
For services that don't support managed identities, use Azure AD to create a service
principal with restricted permissions at the resource level. It is recommended to configure
service principals with certificate credentials and fall back to client secrets for
authentication.
Many Azure services support TLS authentication by default. For services that don't support
this by default or support TLS disabling, ensure it is always enabled to support the
server/service authentication. Your client application should also be designed to verify
server/service identity (by verifying the server’s certificate issued by a trusted certificate
authority) in the handshake stage.
Note: Services such as API Management and API Gateway support TLS mutual
authentication.
Use Azure AD for workload application workload access (customer facing) through Azure
AD single sign-on (SSO), reducing the need for duplicate accounts. Azure AD provides
identity and access management to Azure resources (in the management plane including
CLI, PowerShell, portal), cloud applications, and on-premises applications.
Azure AD also supports SSO for enterprise identities such as corporate user identities, as
well as external user identities from trusted third-party and public users.
Azure AD supports strong authentication controls through passwordless methods and
multi-factor authentication (MFA).
- Passwordless authentication: Use passwordless authentication as your default
authentication method. There are three options available in passwordless authentication:
Windows Hello for Business, Microsoft Authenticator app phone sign-in, and FIDO2 security
keys. In addition, customers can use on-premises authentication methods such as smart
cards.
- Multi-factor authentication: Azure MFA can be enforced on all users, select users, or at
the per-user level based on sign-in conditions and risk factors. Enable Azure MFA and follow
Microsoft Defender for Cloud identity and access management recommendations for your
MFA setup.
For third-party applications and services that may have default IDs and passwords, you
should disable or change them during initial service setup.
Use Azure AD conditional access for more granular access controls based on user-defined
conditions, such as requiring user logins from certain IP ranges (or devices) to use MFA.
Azure AD Conditional Access allows you to enforce access controls on your organization’s
apps based on certain conditions.
Define the applicable conditions and criteria for Azure AD conditional access in the
workload. Consider the following common use cases:
- Requiring multi-factor authentication for users with administrative roles
- Requiring multi-factor authentication for Azure management tasks
- Blocking sign-ins for users attempting to use legacy authentication protocols
- Requiring trusted locations for Azure AD Multi-Factor Authentication registration
- Blocking or granting access from specific locations
- Blocking risky sign-in behaviors
- Requiring organization-managed devices for specific applications
If you use Azure DevOps and GitHub for your code management platform:
- Implement Azure DevOps Credential Scanner to identify credentials within the code.
- For GitHub, use the native secret scanning feature to identify credentials or other forms of
secrets within the code.
Clients such as Azure Functions, Azure Apps services, and VMs can use managed identities
to access Azure Key Vault securely. See Data Protection controls related to the use of Azure
Key Vault for secrets management.
Note: Azure Key Vault provides automatic rotation for supported services. For secrets which
cannot be automatically rotated, ensure they are manually rotated periodically and purged
when no longer in use.
Protect your on-premises and non-native cloud applications using legacy authentication by
connecting them to:
- Azure AD Application Proxy and configure header-based authentication to allow single
sign-on (SSO) access to the applications for remote users while explicitly validating the
trustworthiness of both remote users and devices with Azure AD Conditional Access. If
required, use a third-party Software-Defined Perimeter (SDP) solution which can offer
similar functionality.
- Microsoft Defender for Cloud Apps which serves as a cloud access security broker (CASB)
service to monitor and block user access to unapproved third-party SaaS applications.
- Your existing third-party application delivery controllers and networks.
Note: VPNs are commonly used to access legacy applications and often only have basic
access control and limited session monitoring.
Implementation and additional context
Tenancy in Azure AD:
https://docs.microsoft.com/azure/active-directory/develop/single-and-multi-
tenant-apps
AWS supports Single Sign-On which allows you to bridge your corporate's third party identities (such as Windows
Active Directory, or other identity stores) with the AWS identities to avoid creating duplicate accounts to access AWS
resources.
Use the following security best practices to secure your AWS IAM:
- Set up AWS account root user access keys for emergency access as described in PA-5 (Set up emergency access)
- Follow least privilege principles for access assignments
- Leverage IAM groups to apply policies instead of individual user(s).
- Follow strong authentication guidance in IM-6 (Use strong authentication controls) for all users
- Use AWS Organizations SCP (Service Control Policy) and permission boundaries
- Use IAM Access Advisor to audit service access
- Use IAM credential report to track user accounts and credential status
Note: Follow published best practices if you have other identity and authentication systems, e.g., follow the Azure AD
security baseline if you use Azure AD to manage AWS identity and access.
Use AWS IAM roles instead of creating user accounts for resources that support this feature. IAM roles are managed
by the platform at the backend and the credentials are temporary and rotated automatically. This avoids creating
long-term access keys or a username/password for applications and hard-coded credentials in source code or
configuration files.
You may use service-linked roles which are attached with pre-defined permission policies for access between AWS
services instead of customizing your own role permissions for the IAM roles.
Note: For services that don't support IAM roles, use access keys but follow the security best practice such as IM-8:
Restrict the exposure of credential and secrets to secure your keys.
Many AWS services support TLS authentication by default. For services that don't support this by default or support
TLS disabling, ensure it is always enabled to support the server/service authentication. Your client application should
also be designed to verify server/service identity (by verifying the server’s certificate issued by a trusted certificate
authority) in the handshake stage.
Use AWS Cognito to manage access to your customer facing workload application through single sign-on (SSO) to
allow customers to bridge their third-party identities from different identity providers.
For SSO access to the AWS native resources (including AWS console access or service management and data plane
level access), use AWS Sigle Sign-On to reduce the need for duplicate accounts.
AWS SSO also allows you to bridge corporate identities (such as identities from Azure Active Directory) with AWS
identities, as well as external user identities from trusted third-party and public users.
AWS IAM supports strong authentication controls through multi-factor authentication (MFA). MFA can be enforced on
all users, select users, or at the per-user level based on defined conditions.
If you use corporate accounts from a third-party directory (such as Windows Active Directory) with AWS identities,
follow the respective security guidance to enforce strong authentication. Refer to the Azure Guidance for this control
if you use Azure AD to manage AWS access.
Note: For third-party applications and AWS services that may have default IDs and passwords, you should disable or
change them during initial service setup.
Create IAM policy and define conditions for more granular access controls based on user-defined conditions, such as
requiring user logins from certain IP ranges (or devices) to use multi-factor authentication. Condition settings may
include single or multiple conditions as well as logic.
Policies can be defined from six different dimensions: identity-based policies, resource-based policies, permissions
boundaries, AWS Organizations service control policy (SCP) , Access Control Lists(ACL), and session policies.
When using an IAM role for application access is not an option, ensure that secrets and credentials are stored in
secure locations such as AWS Secret Manager or Systems Manager Parameter Store, instead of embedding them into
the code and configuration files.
Use CodeGuru Reviewer for static code analysis which can detect the secrets hard-coded in your source code.
If you use the Azure DevOps and GitHub for your code management platform:
- Implement Azure DevOps Credential Scanner to identify credentials within the code.
- For GitHub, use the native secret scanning feature to identify credentials or other forms of secrets within the code.
Note: Secrets Manager provides automatic secrets rotation for supported services. For secrets which cannot be
automatically rotated, ensure they are manually rotated periodically and purged when no longer in use.
Follow Azure's guidance to protect your on-premises and non-native cloud applications using legacy authentication by
connecting them to:
- Azure AD Application Proxy and configure header-based authentication to allow single sign-on (SSO) access to the
applications for remote users while explicitly validating the trustworthiness of both remote users and devices with
Azure AD Conditional Access. If required, use a third-party Software-Defined Perimeter (SDP) solution which can offer
similar functionality.
- Microsoft Defender for Cloud Apps which serves as a cloud access security broker (CASB) service to monitor and
block user access to unapproved third-party SaaS applications.
- Your existing third-party application delivery controllers and networks.
Note: VPNs are commonly used to access legacy applications and often only have basic access control and limited
session monitoring.
Implementation and additional context:
AWS IAM:
https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security-threat-intelligence
Application security and DevSecOps: https://docs.microsoft.com/azure/cloud-
adoption-framework/organize/cloud-security-application-security-devsecops
Set up emergency access to ensure that you are not accidentally locked
out of your critical cloud infrastructure (such as your identity and access
management system) in an emergency.
Azure Active Directory (Azure AD) is Azure's default identity and access management service. The most critical built-in roles in
Azure AD are Global Administrator and Privileged Role Administrator, because users assigned to these two roles can delegate
administrator roles. With these privileges, users can directly or indirectly read and modify every resource in your Azure
environment:
- Global Administrator / Company Administrator: Users with this role have access to all administrative features in Azure AD as
as services that use Azure AD identities.
- Privileged Role Administrator: Users with this role can manage role assignments in Azure AD, as well as within Azure AD
Privileged Identity Management (PIM). In addition, this role allows management of all aspects of PIM and administrative units
Outside of Azure AD, Azure has built-in roles that can be critical for privileged access at the resource level.
- Owner: Grants full access to manage all resources, including the ability to assign roles in Azure RBAC.
- Contributor: Grants full access to manage all resources, but does not allow you to assign roles in Azure RBAC, manage
assignments in Azure Blueprints, or share image galleries.
- User Access Administrator: Lets you manage user access to Azure resources.
Note: You may have other critical roles that need to be governed if you use custom roles in the Azure AD level or resource leve
with certain privileged permissions assigned.
In addition, users with the following three roles in Azure Enterprise Agreement (EA) portal should also be restricted as they ca
used to directly or indirectly manage Azure subscriptions.
- Account Owner: Users with this role can manage subscriptions, including the creation and deletion of subscriptions.
- Enterprise Administrator: Users assigned with this role can manage (EA) portal users.
- Department Administrator: Users assigned with this role can change account owners within the department.
Lastly, ensure that you also restrict privileged accounts in other management, identity, and security systems that have
administrative access to your business-critical assets, such as Active Directory Domain Controllers (DCs), security tools, and sys
management tools with agents installed on business-critical systems. Attackers who compromise these management and secu
systems can immediately weaponize them to compromise business critical assets.
Enable just-in-time (JIT) privileged access to Azure resources and Azure AD using Azure AD Privileged Identity Management (PI
JIT is a model in which users receive temporary permissions to perform privileged tasks, which prevents malicious or unauthor
users from gaining access after the permissions have expired. Access is granted only when users need it. PIM can also generat
security alerts when there is suspicious or unsafe activity in your Azure AD organization.
Restrict inbound traffic to your sensitive virtual machines (VM) management ports with Microsoft Defender for Cloud's just-in
time (JIT) for VM access feature. This ensures privileged access to the VM is granted only when users need it.
Use Azure AD entitlement management features to automate access request workflows (for Azure resource groups). This enab
workflows for Azure resource groups to manage access assignments, reviews, expiration, and dual or multi-stage approval.
Use Permissions Management to detect, automatically right-size, and continuously monitor unused and excessive permissions
assigned to user and workload identities across multi-cloud infrastructures.
Review all privileged accounts and the access entitlements in Azure including Azure tenants, Azure services, VM/IaaS, CI/CD
processes, and enterprise management and security tools.
Use Azure AD access reviews to review Azure AD roles, Azure resource access roles, group memberships, and access to enterp
applications. Azure AD reporting can also provide logs to help discover stale accounts, or accounts which have not been used f
certain amount of time.
In addition, Azure AD Privileged Identity Management can be configured to alert when an excessive number of administrator
accounts are created for a specific role, and to identify administrator accounts that are stale or improperly configured.
To prevent being accidentally locked out of your Azure AD organization, set up an emergency access account (e.g., an account
with Global Administrator role) for access when normal administrative accounts cannot be used. Emergency access accounts a
usually highly privileged, and they should not be assigned to specific individuals. Emergency access accounts are limited to
emergency or "break glass"' scenarios where normal administrative accounts can't be used.
You should ensure that the credentials (such as password, certificate, or smart card) for emergency access accounts are kept
secure and known only to individuals who are authorized to use them only in an emergency. You may also use additional cont
such dual controls (e.g., splitting the credential into two pieces and giving it to separate persons) to enhance the security of th
process. You should also monitor the sign-in and audit logs to ensure that emergency access accounts are only used when
authorized.
Use Azure Active Directory, Microsoft Defender, and/or Microsoft Intune to deploy privileged access workstations (PAW) on-
premises or in Azure for privileged tasks. The PAW should be centrally managed to enforce secured configuration, including st
authentication, software and hardware baselines, and restricted logical and network access.
You may also use Azure Bastion which is a fully platform-managed PaaS service that can be provisioned inside your virtual
network. Azure Bastion allows RDP/SSH connectivity to your virtual machines directly from the Azure portal using a web brow
Use Azure role-based access control (Azure RBAC) to manage Azure resource access through role assignments. Through RBAC,
can assign roles to users, groups, service principals, and managed identities. There are pre-defined built-in roles for certain
resources, and these roles can be inventoried or queried through tools such as Azure CLI, Azure PowerShell, and the Azure por
The privileges you assign to resources through Azure RBAC should always be limited to what's required by the roles. Limited
privileges will complement the just-in-time (JIT) approach of Azure AD Privileged Identity Management (PIM), and those privile
should be reviewed periodically. If required, you can also use PIM to define a time-bound assignment, which is a condition in a
role assignment where a user can only activate the role within the specified start and end dates.
Note: Use Azure built-in roles to allocate permissions and only create custom roles when required.
In support scenarios where Microsoft needs to access your data, use Customer Lockbox to review and either approve or reject
each data access request made by Microsoft.
Implementation and additional context
Administrator role permissions in Azure AD:
https://docs.microsoft.com/azure/active-
directory/users-groups-roles/directory-assign-
admin-roles
If you are using Azure Active Directory (Azure AD) as the identity provider for AWS, refer to the Azure guidance for managing t
privileged roles in Azure AD.
Ensure that you also restrict privileged accounts in other management, identity, and security systems that have administrative
access to your business-critical assets, such as AWS Cognito, security tools, and system management tools with agents installe
on business critical systems. Attackers who compromise these management and security systems can immediately weaponize
them to compromise business critical assets.
Use AWS Security Token Service (AWS STS) to create temporary security credentials to access the resources through the AWS
API. Temporary security credentials work almost identically to the long-term access key credentials that your IAM users can us
with the following differences:
- Temporary security credentials have a short-term life, from minutes to hours.
- Temporary security credentials are not stored with the user but are generated dynamically and provided to the user when
requested.
Use AWS Access Advisor to pull the access logs for the user accounts and entitlements for resources. Build a manual or
automated workflow to integrate with AWS IAM to manage access assignments, reviews, and deletions.
Note: There are third-party solutions available on AWS Marketplace for managing the lifecycle of identities and entitlements.
Review all privileged accounts and the access entitlements in AWS including AWS accounts, services, VM/IaaS, CI/CD processe
and enterprise management and security tools.
Use IAM Access Advisor, Access Analyzer and Credential Reports to review resource access roles, group memberships, and
access to enterprise applications. IAM Access Analyzer and Credential Reports reporting can also provide logs to help discover
stale accounts, or accounts which have not been used for certain amount of time.
If you are using Azure Active Directory (Azure AD) as the identity provider for AWS, use Azure AD access review to review the
privileged accounts and access entitlements periodically.
AWS "root" accounts should not be used for regular administrative tasks. As the "root" account is highly privileged, it should n
be assigned to specific individuals. It's use should be limited to only emergency or "break glass” scenarios when normal
administrative accounts can't be used. For daily administrative tasks, separate privileged user accounts should be used and
assigned the appropriate permissions via IAM roles.
You should also ensure that the credentials (such as password, MFA tokens and access keys) for root accounts are kept secure
and known only to individuals who are authorized to use them only in an emergency. MFA should be enabled for the root
account, and you may also use additional controls, such as dual controls (e.g., splitting the credential into two pieces and givin
it to separate persons) to enhance the security of this process.
You should also monitor the sign-in and audit logs in CloudTrail or EventBridge to ensure that root access accounts are only us
when authorized.
Use Session Manager in AWS Systems Manager to create an access path (a connection session) to the EC2 instance or a brows
session to the AWS resources for privileged tasks. Session Manager allows RDP, SSH, and HTTPS connectivity to your destinatio
hosts through port forwarding.
You may also choose to deploy a privileged access workstations (PAW) centrally managed through Azure Active Directory,
Microsoft Defender, and/or Microsoft Intune. The central management should enforce secured configuration, including strong
authentication, software and hardware baselines, and restricted logical and network access.
Use AWS policy to manage AWS resource access. There are six types of policies: identity-based policies, resource-based policie
permissions boundaries, AWS Organizations service control policy (SCP), Access Control List, and session policies. You may use
AWS managed policies for common permission use cases. However, you should be mindful that managed policies may carry
excessive permissions that should not be assigned to the users.
You may also use AWS ABAC (attribute-based access control) to assign permissions based on attributes (tags) attached to IAM
resources, including IAM entities (users or roles) and AWS resources.
In support scenarios where AWS support teams need to access your data, create an account in the AWS Support portal to
request support. Review the available options such as providing read-only data access, or the screen sharing option for AWS
support to access to your data.
Implementation and additional context
AWS Best Practices for Root User:
https://docs.aws.amazon.com/accounts/latest/reference/best-practices-root-user.html
IAM Temporary credentials through AWS Security Token Service (AWS STS):
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
IAM Access Advisor:
https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_access-advisor-view-data.html
Credential report:
https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html
AWS ABAC:
https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security Operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security Operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Identity and key management: https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-identity-keys
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
DP-2 Data Prote13.3 - Monitor and Block 3.13 - Deploy a Data Loss AC-4: INFORMATION FLOW
Unauthorized Network Prevention Solution ENFORCEMENT
Traffic SI-4: INFORMATION SYSTEM
14.7 - Enforce Access MONITORING
Control to Data through
Automated Tools
DP-3 Data Prote14.4 - Encrypt All Sensitive 3.10 - Encrypt Sensitive SC-8: TRANSMISSION
Information in Transit Data In Transit CONFIDENTIALITY AND
INTEGRITY
DP-4 Data Prote14.8 - Encrypt Sensitive 3.11 - Encrypt Sensitive SC-28: PROTECTION OF
Information at Rest Data at Rest INFORMATION AT REST
DP-5 Data Prote14.8 - Encrypt Sensitive 3.11 - Encrypt Sensitive SC-12: CRYPTOGRAPHIC KEY
Information at Rest Data at Rest ESTABLISHMENT AND
MANAGEMENT
SC-28: PROTECTION OF
INFORMATION AT REST
A3.2 Monitor anomalies Monitor for anomalies around sensitive data, such as
and threats targeting unauthorized transfer of data to locations outside of
sensitive data enterprise visibility and control. This typically involves
monitoring for anomalous activities (large or unusual
transfers) that could indicate unauthorized data
exfiltration.
3.5 Encrypt sensitive data Protect the data in transit against 'out of band' attacks
3.6 in transit (such as traffic capture) using encryption to ensure that
4.1 attackers cannot easily read or modify the data.
3.4 Enable data at rest To complement access controls, data at rest should be
3.5 encryption by default protected against 'out of band' attacks (such as accessing
underlying storage) using encryption. This helps ensure that
attackers cannot easily read or modify the data.
3.4 Use customer- If required for regulatory compliance, define the use case
3.5 managed key option and service scope where customer-managed key option is
3.6 in data at rest needed. Enable and implement data at rest encryption
encryption when using customer-managed key in services.
required
3.6 Use a secure key Document and implement an enterprise cryptographic key
management process management standard, processes, and procedures to
control your key lifecycle. When there is a need to use
customer-managed key in the services, use a secured key
vault service for key generation, distribution, and storage.
Rotate and revoke your keys based on the defined schedule
and when there is a key retirement or compromise.
3.6 Use a secure Document and implement an enterprise certificate
certificate management standard, processes and procedures which
management process includes the certificate lifecycle control, and certificate
policies (if a public key infrastructure is needed).
Use Azure Information protection (AIP) to monitor the data that has been classified and labeled.
Use Microsoft Defender for Storage, Microsoft Defender for SQL, Microsoft Defender for open-
source relational databases, and Microsoft Defender for Cosmos DB to alert on anomalous
transfer of information that might indicate unauthorized transfers of sensitive data information.
Note: If required for compliance of data loss prevention (DLP), you can use a host-based DLP
solution from Azure Marketplace or a Microsoft 365 DLP solution to enforce detective and/or
preventative controls to prevent data exfiltration.
Enforce secure transfer in services such as Azure Storage, where a native data in transit
encryption feature is built in.
Enforce HTTPS for web application workloads and services by ensuring that any clients
connecting to your Azure resources use transport layer security (TLS) v1.2 or later. For remote
management of VMs, use SSH (for Linux) or RDP/TLS (for Windows) instead of an unencrypted
protocol.
For remote management of Azure virtual machines, use SSH (for Linux) or RDP/TLS (for Windows)
instead of an unencrypted protocol. For secure file transfer, use the SFTP/FTPS service in Azure
Storage Blob, App Service apps, and Function apps, instead of using the regular FTP service.
Note: Data in transit encryption is enabled for all Azure traffic traveling between Azure
datacenters. TLS v1.2 or later is enabled on most Azure services by default. And some services
such as Azure Storage and Application Gateway can enforce TLS v1.2 or later on the server side.
Many Azure services have data at rest encryption enabled by default at the infrastructure layer
using a service-managed key. These service-managed keys are generated on the customer’s
behalf and automatically rotated every two years.
Where technically feasible and not enabled by default, you can enable data at rest encryption in
the Azure services, or in your VMs at the storage level, file level, or database level.
Azure also provides an encryption option using keys managed by yourself (customer-managed
keys) for most services.
Azure Key Vault Standard, Premium, and Managed HSM are natively integrated with many Azure
Services for customer-managed key use cases. You may use Azure Key Vault to generate your key
or bring your own keys.
However, using the customer-managed key option requires additional operational effort to
manage the key lifecycle. This may include encryption key generation, rotation, revoke, and
access control, etc.
Use Azure Key Vault to create and control your encryption keys life cycle, including key
generation, distribution, and storage. Rotate and revoke your keys in Azure Key Vault and your
service based on the defined schedule and when there is a key retirement or compromise.
Require a certain cryptographic type and minimum key size when generating keys.
When there is a need to use customer-managed key (CMK) in the workload services or
applications, ensure you follow the best practices:
- Use a key hierarchy to generate a separate data encryption key (DEK) with your key encryption
key (KEK) in your key vault.
- Ensure keys are registered with Azure Key Vault and implemented via key IDs in each service or
application.
To maximize the key material lifetime and portability, bring your own key (BYOK) to the services
(i.e., importing HSM-protected keys from your on-premises HSMs into Azure Key Vault). Follow
the recommended guideline to perform the key generation and key transfer.
Note: Refer to the below for the FIPS 140-2 level for Azure Key Vault types and FIPS
compliance/validation level.
- Software-protected keys in vaults (Premium & Standard SKUs): FIPS 140-2 Level 1
- HSM-protected keys in vaults (Premium SKU): FIPS 140-2 Level 2
- HSM-protected keys in Managed HSM: FIPS 140-2 Level 3
Azure Key Vault Premium uses a shared HSM infrastructure in the backend. Azure Key Vault
Managed HSM uses dedicated, confidential service endpoints with a dedicated HSM for when
you need a higher level of key security.
Use Azure Key Vault to create and control the certificate lifecycle, including the creation/import,
rotation, revocation, storage, and purge of the certificate. Ensure the certificate generation
follows the defined standard without using any insecure properties, such as insufficient key size,
overly long validity period, insecure cryptography and so on. Setup automatic rotation of the
certificate in Azure Key Vault and supported Azure services based on the defined schedule and
when a certificate expires. If automatic rotation is not supported in the frontend application, use
a manual rotation in Azure Key Vault.
Avoid using a self-signed certificate and wildcard certificate in your critical services due to the
limited security assurance. Instead, you can create public signed certificates in Azure Key Vault.
The following Certificate Authorities (CAs) are the partnered providers that are currently
integrated with Azure Key Vault.
- DigiCert: Azure Key Vault offers OV TLS/SSL certificates with DigiCert.
- GlobalSign: Azure Key Vault offers OV TLS/SSL certificates with GlobalSign.
Note: Use only approved CA and ensure that known bad root/intermediate certificates issued by
these CAs are disabled.
Secure your cryptographic keys and certificates by hardening your Azure Key Vault service
through the following controls:
- Implement access control using RBAC policies in Azure Key Vault Managed HSM at the key level
to ensure the least privilege and separation of duties principles are followed. For example,
ensure separation of duties are in place for users who manage encryption keys so they do not
have the ability to access encrypted data, and vice versa. For Azure Key Vault Standard and
Premium, create unique vaults for different applications to ensure the least privilege and
separation of duties principles are followed.
- Turn on Azure Key Vault logging to ensure critical management plane and data plane activities
are logged.
- Secure the Azure Key Vault using Private Link and Azure Firewall to ensure minimal exposure of
the service
- Use managed identity to access keys stored in Azure Key Vault in your workload applications.
- When purging data, ensure your keys are not deleted before the actual data, backups and
archives are purged.
- Backup your keys and certificates using Azure Key Vault. Enable soft delete and purge
protection to avoid accidental deletion of keys.When keys need to be deleted, consider disabling
keys instead of deleting them to avoid accidental deletion of keys and cryptographic erasure of
data.
- For bring your own key (BYOK) use cases, generate keys in an on-premises HSM and import
them to maximize the lifetime and portability of the keys.
- Never store keys in plaintext format outside of the Azure Key Vault. Keys in all key vault services
are not exportable by default.
- Use HSM-backed key types (RSA-HSM) in Azure Key Vault Premium and Azure Managed HSM
for the hardware protection and the strongest FIPS levels.
Enable Microsoft Defender for Key Vault for Azure-native, advanced threat protection for Azure
Key Vault, providing an additional layer of security intelligence.
Implementation and additional context
Data classification overview:
https://docs.microsoft.com/azure/cloud-adoption-framework/govern/policy-
compliance/data-classification
You may also use the Azure Purview multi-cloud scanning connector to scan, classify and label the sensitive data
residing in a S3 storage bucket.
Note: You can also use third-party enterprise solutions from AWS marketplace for the purpose of data discovery
classification and labeling
Use AWS Macie to monitor the data that has been classified and labeled, and use GuardDuty to detect anomalous
activities on some resources (S3, EC2 or Kubernetes or IAM resources). Findings and alerts can be triaged, analyzed,
and tracked using EventBridge and forwarded to Microsoft Sentinel or Security Hub for incident aggregation and
tracking.
You may also connect your AWS accounts to Microsoft Defender for Cloud for compliance checks, container security,
and endpoint security capabilities.
Note: If required for compliance of data loss prevention (DLP), you can use a host-based DLP solution from AWS
Marketplace.
Enforce secure transfer in services such as Amazon S3, RDS and CloudFront, where a native data in transit encryption
feature is built in.
Enforce HTTPS (such as in AWS Elastic Load Balancer) for workload web application and services (either on the server
side or client side, or on both) by ensuring that any clients connecting to your AWS resources use TLS v1.2 or later.
For remote management of EC2 instances, use SSH (for Linux) or RDP/TLS (for Windows) instead of an unencrypted
protocol. For secure file transfer, use AWS Transfer SFTP or FTPS service instead of a regular FTP service.
Note: All network traffic between AWS data centers is transparently encrypted at the physical layer. All traffic within a
VPC and between peered VPCs across regions is transparently encrypted at the network layer when using supported
Amazon EC2 instance types. TLS v1.2 or later is enabled on most AWS services by default. And some services such as
AWS Load Balancer can enforce TLS v1.2 or later on the server side.
Many AWS services have data at rest encryption enabled by default at the infrastructure/platform layer using an AWS-
managed customer master key. These AWS-managed customer master keys are generated on the customer's behalf
and rotated automatically every three years.
Where technically feasible and not enabled by default, you can enable data at rest encryption in the AWS services, or
in your VMs at the storage level, file level, or database level
AWS also provides an encryption option using keys managed by yourself (customer-managed customer master key
stored in AWS Key Management Service) for certain services.
AWS Key Management Service (KMS) is natively integrated with many AWS services for customer-managed customer
master key use cases. You may either use AWS Key Management Service (KMS) to generate your master keys or bring
your own keys.
However, using the customer-managed key option requires additional operational efforts to manage the key lifecycle.
This may include encryption key generation, rotation, revoke, and access control, etc.
Use AWS Key Management Service (KMS) to create and control your encryption keys life cycle, including key
generation, distribution, and storage. Rotate and revoke your keys in KMS and your service based on the defined
schedule and when there is a key retirement or compromise.
When there is a need to use customer-managed customer master key in the workload services or applications, ensure
you follow the best practices:
- Use a key hierarchy to generate a separate data encryption key (DEK) with your key encryption key (KEK) in your KMS.
- Ensure keys are registered with KMS and implement via IAM policies in each service or application.
To maximize the key material lifetime and portability, bring your own key (BYOK) to the services (i.e., importing HSM-
protected keys from your on-premises HSMs into KMS or Cloud HSM). Follow the recommended guideline to perform
the key generation and key transfer.
Note: AWS KMS uses shared HSM infrastructure in the backend. Use AWS KMS Custom Key Store backed by AWS
CloudHSM when you need to manage your own key store and dedicated HSMs (e.g. regulatory compliance
requirement for higher level of key security) to generate and store your encryption keys.
Note: Refer to the below for the FIPS 140-2 level for FIPS compliance level in AWS KMS and CloudHSM
- AWS KMS default: FIPS 140-2 Level 2 validated
- AWS KMS using CloudHSM: FIPS 140-2 Level 3 (for certain services) validated
- AWS CloudHSM: FIPS 140-2 Level 3 validated
Note: For secrets management(credentials, password, API keys etc.), use AWS Secrets Manager.
Use AWS Certificate Manager (ACM) to create and control the certificate lifecycle, including creation/import, rotation,
revocation, storage, and purge of the certificate. Ensure the certificate generation follows the defined standard
without using any insecure properties, such as insufficient key size, overly long validity period, insecure cryptography
and so on. Setup automatic rotation of the certificate in ACM and supported AWS services based on the defined
schedule and when a certificate expires. If automatic rotation is not supported in the frontend application, use manual
rotation in ACM. In the meantime, you should always track your certificate renewal status to ensure the certificate
validity.
Avoid using a self-signed certificate and wildcard certificate in your critical services due to the limited security
assurance. Instead, create public-signed certificates (signed by the Amazon Certificate Authority) in ACM and deploy it
programmatically in services such as CloudFront, Load Balancers, API Gateway etc. You also can use ACM to establish
your private certificate authority (CA) to sign the private certificates.
Note: Use only an approved CA and ensure that known bad CA root/intermediate certificates issued by these CAs are
disabled.
For cryptographic keys security, secure your keys by hardening your AWS Key Management Service (KMS) service
through the following controls:
- Implement access control using key policies (key-level access control) in conjunction with IAM policies (identity-based
access control) to ensure the least privilege and separation of duties principles are followed. For example, ensure
separation of duties are in place for users who manage encryption keys so they do not have the ability to access
encrypted data, and vice versa.
- Use detective controls such as CloudTrails to log and track the usage of keys in KMS and alert you on critical actions.
- Never store keys in plaintext format outside of KMS.
- When keys need to be deleted, consider disabling keys in KMS instead of deleting them to avoid accidental deletion
of keys and cryptographic erasure of data.
- When purging data, ensure your keys are not deleted before the actual data, backups and archives are purged.
- For bring your own key (BYOK) uses cases, generate keys in an on-premise HSM and import them to maximize the
lifetime and portability of the keys.
For certificates security, secure your certificates by hardening your AWS Certificate Manager (ACM) service through the
following controls:
- Implement access control using resource-level policies in conjunction with IAM policies (identity-based access
control) to ensure the least privilege and separation of duties principles are followed. For example, ensure separation
of duties is in place for user accounts: user accounts who generate certificates are separate from the user accounts
who only require read-only access to certificates.
- Use detective controls such as CloudTrails to log and track the usage of the certificates in ACM, and alert you on
critical actions.
- Follow the KMS security guidance to secure your private key (generated for certificate request) used for service
certificate integration.
Implementation and additional context:
Data Classification Process:
https://docs.aws.amazon.com/whitepapers/latest/data-
classification/data-classification-process.html
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
AM-1 Asset Management 1.1 - Utilize an Active 1.1 - Establish and Maintain
Discovery Tool Detailed Enterprise Asset
1.2 - Use a Passive Asset Inventory
Discovery Tool 1.5 - Use a Passive Asset
1.4 - Maintain Detailed Discovery Tool
Asset Inventory 2.1 - Establish and Maintain
1.5 - Maintain Asset a Software Inventory
Inventory Information 2.4 - Utilize Automated
2.1 - Maintain Inventory of Software Inventory Tools
Authorized Software
AM-3 Asset Management 1.4 - Maintain Detailed 1.1 - Establish and Maintain
Asset Inventory Detailed Enterprise Asset
1.5 - Maintain Asset Inventory
Inventory Information 2.1 - Establish and Maintain
2.1 - Maintain Inventory of a Software Inventory
Authorized Software
2.4 - Track Software
Inventory Information
AM-4 Asset Management 14.6 - Protect Information 3.3 - Configure Data Access
Through Access Control Lists Control Lists
Track your asset inventory by query and discover all your cloud
resources. Logically organize your assets by tagging and grouping your
assets based on their service nature, location, or other characteristics.
Ensure your security organization has access to a continuously updated
inventory of assets.
Ensure your security organization can monitor the risks of the cloud
assets by always having security insights and risks aggregated centrally
Ensure that only approved cloud services can be used, by auditing and
restricting which services users can provision in the environment.
The Microsoft Defender for Cloud inventory feature and Azure Resource Graph can query for
and discover all resources in your subscriptions, including Azure services, applications, and
network resources. Logically organize assets according to your organization's taxonomy
using tags as well as other metadata in Azure (Name, Description, and Category).
Ensure that security organizations have access to a continuously updated inventory of assets
on Azure. Security teams often need this inventory to evaluate their organization's potential
exposure to emerging risks, and as an input for continuous security improvements.
Ensure security organizations are granted Security Reader permissions in your Azure tenant
and subscriptions so they can monitor for security risks using Microsoft Defender for Cloud.
Security Reader permissions can be applied broadly to an entire tenant (Root Management
Group) or scoped to management groups or specific subscriptions.
Note: Additional permissions might be required to get visibility into workloads and services.
Use Azure Policy to audit and restrict which services users can provision in your
environment. Use Azure Resource Graph to query for and discover resources within their
subscriptions. You can also use Azure Monitor to create rules to trigger alerts when a non-
approved service is detected.
Identify and remove Azure resources when they are no longer needed.
Azure Resource Manager is the deployment and management service for Azure. It provides a
management layer that enables you to create, update, and delete resources (assets) in
Azure. Use Azure AD Conditional Access to limit users' ability to interact with Azure Resource
Manager by configuring "Block access" for the "Microsoft Azure Management" App.
Use Azure Role-based Access Control (Azure RBAC) to assign roles to identities to control
their permissions and access to Azure resources. For example, a user with only the 'Reader'
Azure RBAC role can view all resources, but is not allowed to make any changes.
Use Microsoft Defender for Cloud adaptive application controls to discover and generate an
application allow list. You can also use ASC adaptive application controls to ensure that only
authorized software can executes, and all unauthorized software is blocked from executing
on Azure Virtual Machines.
Use Azure Automation Change Tracking and Inventory to automate the collection of
inventory information from your Windows and Linux VMs. Software name, version,
publisher, and refresh time information are available from the Azure portal. To get the
software installation date and other information, enable guest-level diagnostics and direct
the Windows Event Logs to a Log Analytics workspace.
Depending on the type of scripts, you can use operating system-specific configurations or
third-party resources to limit users' ability to execute scripts in Azure compute resources.
You can also use a third-party solution to discover and identify unapproved software.
Implementation and additional context
Use the AWS Systems Manager Inventory feature to query for and discover all resources in your EC2 instances, including
application level and operating system level details. In addition, use AWS Resource Groups - Tag Editor to browse AWS resourc
inventories.
Logically organize assets according to your organization's taxonomy using tags as well as other metadata in AWS (Name,
Description, and Category).
Ensure that security organizations have access to a continuously updated inventory of assets on AWS. Security teams often ne
this inventory to evaluate their organization's potential exposure to emerging risks, and as an input for continuous security
improvements.
Note: Additional permissions might be required to get visibility into workloads and services.
Use AWS Config to audit and restrict which services users can provision in your environment. Use AWS Resource Groups to
query for and discover resources within their accounts. You can also use CloudWatch and/or AWS Config to create rules to
trigger alerts when a non-approved service is detected.
Establish or update security policies/process that address asset lifecycle management processes for potentially high impact
modifications. These modifications include changes to identity providers and access, data sensitivity level, network
configuration, and administrative privilege assignment.
Identify and remove AWS resources when they are no longer needed.
Use AWS IAM to restrict access to a specific resource. You can specify allowed or deny actions as well as the conditions under
which actions are triggered. You may specify one condition or combine methods of resource-level permissions, resource-base
policies, tag-based authorization, temporary credentials, or service-linked roles to have a fine-grain control access control for
your resources.
Use the AWS Systems Manager Inventory feature to discover the applications installed in your EC2 instances. Use AWS Config
rules to ensure that non-authorized software is blocked from executing on EC2 instances.
You can also use a third-party solution to discover and identify unapproved software.
Implementation and additional context
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
LT-2 Logging 4.9 - Log and Alert on 8.11 - Conduct Audit Log AU-3: CONTENT OF AUDIT
and Unsuccessful Administrative Reviews RECORDS
threat Account Login AU-6: AUDIT REVIEW, ANALYSIS,
detection 6.7 - Regularly Review Logs AND REPORTING
16.13 - Alert on Account AU-12: AUDIT GENERATION
Login Behavior Deviation SI-4: INFORMATION SYSTEM
MONITORING
LT-3 Logging 6.2 - Activate Audit Logging 8.2 - Collect Audit Logs AU-3: CONTENT OF AUDIT
and 6.3 - Enable Detailed 8.5 - Collect Detailed Audit RECORDS
threat Logging Logs AU-6: AUDIT REVIEW, ANALYSIS,
detection 8.8 - Enable Command-Line 8.12 - Collect Service AND REPORTING
Audit Logging Provider Logs AU-12: AUDIT GENERATION
SI-4: INFORMATION SYSTEM
MONITORING
LT-4 Logging 6.2 - Activate Audit Logging 8.2 - Collect Audit Logs AU-3: CONTENT OF AUDIT
and 6.3 - Enable Detailed 8.5 - Collect Detailed Audit RECORDS
threat Logging Logs AU-6: AUDIT REVIEW, ANALYSIS,
detection 7.6 - Log All URL Requests 8.6 - Collect DNS Query AND REPORTING
8.7 - Enable DNS Query Audit Logs AU-12: AUDIT GENERATION
Logging 8.7 - Collect URL Request SI-4: INFORMATION SYSTEM
12.8 - Deploy NetFlow Audit Logs MONITORING
Collection on Networking 13.6 - Collect Network
Boundary Devices Traffic Flow Logs
LT-5 Logging 6.5 - Central Log 8.9 - Centralize Audit Logs AU-3: CONTENT OF AUDIT
and Management 8.11 - Conduct Audit Log RECORDS
threat 6.6 - Deploy SIEM or Log Reviews AU-6: AUDIT REVIEW, ANALYSIS,
detection Analytic tool 13.1 - Centralize Security AND REPORTING
6.7 - Regularly Review Logs Event Alerting AU-12: AUDIT GENERATION
8.6 - Centralize Anti- SI-4: INFORMATION SYSTEM
Malware Logging MONITORING
LT-6 Logging 6.4 - Ensure Adequate 8.3 - Ensure Adequate Audit AU-11: AUDIT RECORD
and Storage for Logs Log Storage RETENTION
threat 8.10 - Retain Audit Logs
detection
LT-7 Logging 6.1 - Utilize Three 8.4 - Standardize Time AU-8: TIME STAMPS
and Synchronized Time Sources Synchronization
threat
detection
PCI-DSS v3.2.RecommendationSecurity Principle
Enable threat To support threat detection scenarios, monitor all known
detection resource types for known and expected threats and anomalies.
capabilities Configure your alert filtering and analytics rules to extract high-
quality alerts from log data, agents, or other data sources to
reduce false positives.
10.6 Enable threat Detect threats for identities and access management by
10.8 detection for monitoring the user and application sign-in and access
A3.5 identity and anomalies. Behavioral patterns such as excessive number of
access failed login attempts, and deprecated accounts in the
management subscription, should be alerted.
10.1 Enable logging Enable logging for your cloud resources to meet the
10.2 for security requirements for security incident investigations and security
10.3 investigation response and compliance purposes.
10.8 Enable network Enable logging for your network services to support network-
logging for related incident investigations, threat hunting, and security
security alert generation. The network logs may include logs from
investigation network services such as IP filtering, network and application
firewall, DNS, flow monitoring and so on.
N/A Centralize Centralize logging storage and analysis to enable correlation
security log across log data. For each log source, ensure that you have
management assigned a data owner, access guidance, storage location, what
and analysis tools are used to process and access the data, and data
retention requirements.
10.5 Configure log Plan your log retention strategy according to your compliance,
10.7 storage regulation, and business requirements. Configure the log
retention retention policy at the individual logging services to ensure the
logs are archived appropriately.
10.4 Use approved Use approved time synchronization sources for your logging
time time stamp which include date, time and time zone
synchronization information.
sources
Azure Guidance
Use the threat detection capability of Microsoft Defender for Cloud for the respective Azure services.
For threat detection not included in Microsoft Defender services, refer to Microsoft Cloud Security
Benchmark service baselines for the respective services to enable the threat detection or security alert
capabilities within the service. Ingest alerts and log data from Microsoft Defender for Cloud, Microsoft 365
Defender, and log data from other resources into your Azure Monitor or Microsoft Sentinel instances to
build analytics rules, which hunt detect threats and create alerts that match specific criteria across your
environment.
For Operational Technology (OT) environments that include computers that control or monitor Industrial
Control System (ICS) or Supervisory Control and Data Acquisition (SCADA) resources, use Microsoft
Defender for IoT to inventory assets and detect threats and vulnerabilities.
For services that do not have a native threat detection capability, consider collecting the data plane logs
and analyze the threats through Microsoft Sentinel.
Azure AD provides the following logs that can be viewed in Azure AD reporting or integrated with Azure
Monitor, Microsoft Sentinel or other SIEM/monitoring tools for more sophisticated monitoring and
analytics use cases:
- Sign-ins: The sign-ins report provides information about the usage of managed applications and user
sign-in activities.
- Audit logs: Provides traceability through logs for all changes done by various features within Azure AD.
Examples of audit logs include changes made to any resources within Azure AD like adding or removing
users, apps, groups, roles and policies.
- Risky sign-ins: A risky sign-in is an indicator for a sign-in attempt that might have been performed by
someone who is not the legitimate owner of a user account.
- Users flagged for risk: A risky user is an indicator for a user account that might have been compromised.
Azure AD also provides an Identity Protection module to detect and remediate risks related to user
accounts and sign-in behaviors. Examples of risks include leaked credentials, sign-in from anonymous or
malware linked IP addresses, password spray. The policies in Azure AD Identity Protection allow you to
enforce risk-based MFA authentication in conjunction with Azure Conditional Access on user accounts.
In addition, Microsoft Defender for Cloud can be configured to alert on deprecated accounts in the
subscription and suspicious activities such as an excessive number of failed authentication attempts. In
addition to the basic security hygiene monitoring, Microsoft Defender for Cloud's Threat Protection
module can also collect more in-depth security alerts from individual Azure compute resources (such as
virtual machines, containers, app service), data resources (such as SQL DB and storage), and Azure service
layers. This capability allows you to see account anomalies inside the individual resources.
Note: If you are connecting your on-premises Active Directory for synchronization, use the Microsoft
Defender for Identity solution to consume your on-premises Active Directory signals to identify, detect,
and investigate advanced threats, compromised identities, and malicious insider actions directed at your
organization.
Enable logging capability for resources at the different tiers, such as logs for Azure resources, operating
systems and applications inside in your VMs and other log types.
Be mindful about different types of logs for security, audit, and other operational logs at the
management/control plane and data plane tiers. There are three types of the logs available at the Azure
platform:
- Azure resource log: Logging of operations that are performed within an Azure resource (the data plane).
For example, getting a secret from a key vault or making a request to a database. The content of resource
logs varies by the Azure service and resource type.
- Azure activity log: Logging of operations on each Azure resource at the subscription layer, from the
outside (the management plane). You can use the Activity Log to determine what, who, and when for any
write operations (PUT, POST, DELETE) taken on the resources in your subscription. There is a single Activity
log for each Azure subscription.
- Azure Active Directory logs: Logs of the history of sign-in activity and audit trail of changes made in the
Azure Active Directory for a particular tenant.
You can also use Microsoft Defender for Cloud and Azure Policy to enable resource logs and log data
collecting on Azure resources.
Enable and collect network security group (NSG) resource logs, NSG flow logs, Azure Firewall logs, and
Web Application Firewall (WAF) logs, and logs from virtual machines via the network traffic data collection
agent for security analysis to support incident investigations, and security alert generation. You can send
the flow logs to an Azure Monitor Log Analytics workspace and then use Traffic Analytics to provide
insights.
In addition, enable and onboard data to Microsoft Sentinel which provides security information event
management (SIEM) and security orchestration automated response (SOAR) capabilities.
Logs such as Azure Activity Logs are retained for 90 days and then deleted. You should create a diagnostic
setting and route the logs to another location (such as Azure Monitor Log Analytics workspace, Event Hubs
or Azure Storage) based on your needs. This strategy also applies to other resource logs and resources
managed by yourself such as logs in the operating systems and applications inside VMs.
Note: Microsoft Sentinel uses Log Analytics workspace as its backend for log storage. You should consider
a long-term storage strategy if you plan to retain SIEM logs for longer time.
Microsoft maintains time sources for most Azure PaaS and SaaS services. For your compute resources
operating systems, use a Microsoft default NTP server for time synchronization unless you have a specific
requirement. If you need to stand up your own network time protocol (NTP) server, ensure you secure the
UDP service port 123.
All logs generated by resources within Azure provide time stamps with the time zone specified by default.
Implementation and additional context
Introduction to Microsoft Defender for Cloud:
https://learn.microsoft.com/azure/defender-for-
cloud/defender-for-cloud-introduction
Configure AWS Config to check rules in SecurityHub for compliance monitoring such as configuration drift, and create findings
when needed.
For threat detection not included in GuardDuty and SecurityHub, enable threat detection or security alert capabilities within t
supported AWS services. Extract the alerts to your CloudTrail, CloudWatch, or Microsoft Sentinel to build analytics rules, which
hunt threats that match specific criteria across your environment.
You can also use Microsoft Defender for Cloud to monitor certain services in AWS such as EC2 instances.
For Operational Technology (OT) environments that include computers that control or monitor Industrial Control System (ICS)
Supervisory Control and Data Acquisition (SCADA) resources, use Microsoft Defender for IoT to inventory assets and detect
threats and vulnerabilities.
AWS IAM provides the following reporting the logs and reports for console user activities through IAM Access Advisor and IAM
credential report:
- Every successful sign-in and unsuccessful login attempts.
- Multi-factor authentication (MFA) status for each user.
- Dormant IAM user
For API level access monitoring and threat detection, use Amazon GuadDuty to identify the findings related to the IAM.
Examples of these findings include:
- An API used to gain access to an AWS environment and was invoked in an anomalous way, or was used to evade defensive
measures
- An API used to:
a) discover resources was invoked in an anomalous way
b) collect data from an AWS environment was invoked in an anomalous way.
b) tamper with data or processes in an AWS environment was invoked in an anomalous way.
c) gain unauthorized access to an AWS environment was invoked in an anomalous way.
d) maintain unauthorized access to an AWS environment was invoked in an anomalous way.
e) obtain high-level permissions to an AWS environment was invoked in an anomalous way.
f) be invoked from a known malicious IP address.
g) be invoked using root credentials.
- AWS CloudTrail logging was disabled.
- Account password policy was weakened.
- Multiple worldwide successful console logins were observed.
- Credentials that were created exclusively for an EC2 instance through an Instance launch role are being used from another
account within AWS.
- Credentials that were created exclusively for an EC2 instance through an Instance launch role are being used from an externa
IP address.
- An API was invoked from a known malicious IP address.
- An API was invoked from an IP address on a custom threat list.
- An API was invoked from a Tor exit node IP address.
Use AWS CloudTrail logging for management events (control plane operations) and data events (data plane operations) and
monitor these trails with CloudWatch for automated actions.
The Amazon CloudWatch Logs service allows you to collect and store logs from your resources, applications, and services in ne
real time. There are three main categories of logs:
- Vended logs: Logs natively published by AWS services on your behalf. Currently, Amazon VPC Flow Logs and Amazon Route 5
logs are the two supported types. These two logs are enabled by default.
- Logs published by AWS services: Logs from more than 30 AWS services publish to CloudWatch. They include Amazon API
Gateway, AWS Lambda, AWS CloudTrail, and many others. These logs can be enabled directly in the services and CloudWatch.
- Custom logs: Logs from your own application and on-premises resources. You may need to collect these logs by installing
CloudWatch Agent in your operating systems and forward them to CloudWatch.
While many services publish logs only to CloudWatch Logs, some AWS services can publish logs directly to AmazonS3 or Amaz
Kinesis Data Firehose where you can use different logging storage and retention policies.
Enable and collect network logs such as VPC Flow Logs, WAF Logs, and Route53 Resolver query logs for security analysis to
support incident investigations, and security alert generation. The logs can be exported to CloudWatch for monitoring or an S3
storage bucket for ingesting into the Microsoft Sentinel solution for centralized analytics.
Ensure that you are integrating your AWS logs into a centralized resource for storage and analysis. Use CloudWatch to query
and perform analytics, and to create alert rules using the logs aggregated from AWS services, services, endpoint devices,
network resources, and other security systems.
In addition, you can aggregate the logs in a S3 storage bucket and onboard the log data to Microsoft Sentinel which provides
security information event management (SIEM) and security orchestration automated response (SOAR) capabilities.
By default, logs are kept indefinitely and never expire in CloudWatch. You can adjust the retention policy for each log group,
keeping the indefinite retention, or choosing a retention period between 10 years and one day.
Use Amazon S3 for log archival from CloudWatch and apply object lifecycle management and archival policy to the bucket. Yo
can use Azure Storage for central log archival by transferring the files from Amazon S3 to Azure Storage.
AWS maintains time sources for most AWS services. For resources or services where the operating system time setting is
configured, use AWS default Amazon Time Sync Service for time synchronization unless you have a specific requirement. If you
need to stand up your own network time protocol (NTP) server, ensure you secure the UDP service port 123.
All logs generated by resources within AWS provide time stamps with the time zone specified by default.
Implementation and additional context
Amazon GuardDuty:
https://docs.aws.amazon.com/guardduty/latest/ug/what-is-guardduty.html
How Defender for Cloud Apps helps protect your Amazon Web Services (AWS) environment
https://docs.microsoft.com/en-us/defender-cloud-apps/protect-aws
https://docs.aws.amazon.com/whitepapers/latest/introduction-aws-security/monitoring-and-logging.html
https://aws.amazon.com/cloudwatch/features/
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html
Connect Microsoft Sentinel to Amazon Web Services to ingest AWS service log data:
https://docs.microsoft.com/en-us/azure/sentinel/connect-aws?tabs=s3
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Infrastructure and endpoint security: https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-infrastructure-endpoint
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
operations-center
IR-2 Incident Response 19.2 - Assign Job Titles and 17.1 - Designate Personnel
Duties for Incident Response to Manage Incident
19.3 - Designate Handling
Management Personnel to 17.3 - Establish and
Support Incident Handling Maintain an Enterprise
19.4 - Devise Organization- Process for Reporting
wide Standards for Incidents
Reporting Incidents 17.6 - Define Mechanisms
19.5 - Maintain Contact for Communicating During
Information For Reporting Incident Response
IR-3 Incident Response 19.8 - Create
Security Incident
Incidents 17.9 - Establish and
Scoring and Prioritization Maintain Security Incident
Schema Thresholds
IR-4 Incident Response N/A N/A
Regularly test the incident response plan and handling process to ensure they're up to date.
Ensure the security alerts and incident notification from the cloud service provider's
platform and your environments can be received by correct contact in your incident
response organization.
Ensure you have a process to create high-quality alerts and measure the quality of alerts.
This allows you to learn lessons from past incidents and prioritize alerts for analysts, so they
don't waste time on false positives.
High-quality alerts can be built based on experience from past incidents, validated
community sources, and tools designed to generate and clean up alerts by fusing and
correlating diverse signal sources.
Ensure the security operation team can query and use diverse data sources as they
investigate potential incidents, to build a full view of what happened. Diverse logs should be
collected to track the activities of a potential attacker across the kill chain to avoid blind
spots. You should also ensure insights and learnings are captured for other analysts and for
future historical reference.
Use the cloud native SIEM and incident management solution if your organization does not
have an existing solution to aggregate security logs and alerts information. Correlate
incident data based on the data sourced from different sources to facility the incident
investigations.
Provide context to security operations teams to help them determine which incidents ought
to first be focused on, based on alert severity and asset sensitivity defined in your
organization’s incident response plan.
Additionally, mark resources using tags and create a naming system to identify and
categorize your cloud resources, especially those processing sensitive data. It is your
responsibility to prioritize the remediation of alerts based on the criticality of the resources
and environment where the incident occurred.
Automate the manual, repetitive tasks to speed up response time and reduce the burden on
analysts. Manual tasks take longer to execute, slowing each incident and reducing how
many incidents an analyst can handle. Manual tasks also increase analyst fatigue, which
increases the risk of human error that causes delays and degrades the ability of analysts to
focus effectively on complex tasks.
Conduct lessons learned in your organization periodically and/or after major incidents, to
improve your future capability in incident response and handling.
Based on the nature of the incident, retain the evidence related to the incident for the
period defined in the incident handling standard for further analysis or legal actions.
Azure Guidance
Update your organization's incident response process to include the handling of incidents in the
Azure platform. Based on the Azure services used and your application nature, customize the
incident response plan and playbook to ensure they can be used to respond to the incident in
the cloud environment.
Set up security incident contact information in Microsoft Defender for Cloud. This contact
information is used by Microsoft to contact you if the Microsoft Security Response Center
(MSRC) discovers that your data has been accessed by an unlawful or unauthorized party. You
also have options to customize incident alerts and notification in different Azure services based
on your incident response needs.
Microsoft Defender for Cloud provides high-quality alerts across many Azure assets. You can use
the Microsoft Defender for Cloud data connector to stream the alerts to Microsoft Sentinel.
Microsoft Sentinel lets you create advanced alert rules to generate incidents automatically for
an investigation.
Export your Microsoft Defender for Cloud alerts and recommendations using the export feature
to help identify risks to Azure resources. Export alerts and recommendations either manually or
in an ongoing, continuous fashion.
Ensure your security operations team can query and use diverse data sources that are collected
from the in-scope services and systems. In addition, it sources can also include:
- Identity and access log data: Use Azure AD logs and workload (such as operating systems or
application level) access logs for correlating identity and access events.
- Network data: Use network security groups' flow logs, Azure Network Watcher, and Azure
Monitor to capture network flow logs and other analytics information.
- Incident related activity data of from snapshots of the impacted systems, which can be
obtained through:
a) The azure virtual machine's snapshots capability, to create a snapshot of the running system's
disk.
b) The operating system's native memory dump capability, to create a snapshot of the running
system's memory.
c) The snapshot feature of the other supported Azure services or your software's own capability,
to create snapshots of the running systems.
Microsoft Sentinel provides extensive data analytics across virtually any log source and a case
management portal to manage the full lifecycle of incidents. Intelligence information during an
investigation can be associated with an incident for tracking and reporting purposes.
Note: When incident related data is captured for investigation, ensure there is adequate
security in place to protect the data from unauthorized alteration, such as disabling logging or
removing logs, which can be performed by the attackers during an in-flight data breach activity.
Microsoft Defender for Cloud assigns a severity to each alert to help you prioritize which alerts
should be investigated first. The severity is based on how confident Microsoft Defender for
Cloud is in the finding or the analytics used to issue the alert, as well as the confidence level that
there was malicious intent behind the activity that led to the alert.
Similarly, Microsoft Sentinel creates alerts and incidents with an assigned severity and other
details based on analytics rules. Use analytic rule templates and customize the rules according
to your organization's needs to support incident prioritization. Use automation rules in
Microsoft Sentinel to manage and orchestrate threat response in order to maximize your
security operation's team efficiency and effectiveness, including tagging incidents to classify
them.
Use workflow automation features in Microsoft Defender for Cloud and Microsoft Sentinel to
automatically trigger actions or run a playbooks to respond to incoming security alerts.
Playbooks take actions, such as sending notifications, disabling accounts, and isolating
problematic networks.
Use the outcome from the lessons learned activity to update your incident response plan,
playbook (such as a Microsoft Sentinel playbook) and reincorporate findings into your
environments (such as logging and threat detection to address any gaps in logging) to improve
your future capability in detecting, responding, and handling of incidents in Azure.
Keep the evidence collected during the "Detection and analysis - investigate an incident step"
such as system logs, network traffic dumps and running system snapshots in storage such as an
Azure Storage account for immutable retention.
Implementation and additional context
Implement security across the enterprise environment:
https://docs.microsoft.com/azure/cloud-adoption-
framework/secure/security-top-10#4-process-update-
incident-response-processes-for-cloud
Set up security incident contact information in AWS Systems Manager Incident Manager (the
incident management center for AWS). This contact information is used for incident
management communication between you and AWS through the different channels (i.e., Email,
SMS, or Voice). You can define a contact's engagement plan and escalation plan to describe how
and when the Incident Manager engages the contact and to escalate if the contact(s) does not
response to an incident.
Use security tools like SecurityHub or GuardDuty and other third-party tools to send alerts to
Amazon CloudWatch or Amazon EventBridge so incidents can be automatically created in
Incident Manager based on the defined criteria and rule sets. You can also manually create
incidents in the Incident Manager for further incident handling and tracking.
If you use Microsoft Defender for Cloud to monitor your AWS accounts, you can also use
Microsoft Sentinel to monitor and alert the incidents identified by Microsoft Defender for Cloud
on AWS resources.
The data sources for investigation are the centralized logging sources that collect from the in-
scope services and running systems, but can also include:
- Identity and access log data: Use IAM logs and workload (such as operating systems or
application level) access logs for correlating identity and access events.
- Network data: Use VPC Flow Logs, VPC Traffic Mirrors, and Azure CloudTrail and CloudWatch
to capture network flow logs and other analytics information.
- Snapshots of running systems, which can be obtained through:
a) Snapshot capability in Amazon EC2(EBS) to create a snapshot of the running system's disk.
b) The operating system's native memory dump capability, to create a snapshot of the running
system's memory.
c) The snapshot feature of the AWS services or your software's own capability, to create
snapshots of the running systems.
If you aggregate your SIEM related data into Microsoft Sentinel, it provides extensive data
analytics across virtually any log source and a case management portal to manage the full
lifecycle of incidents. Intelligence information during an investigation can be associated with an
incident for tracking and reporting purposes.
Note: When incident related data is captured for investigation, ensure there is adequate
security in place to protect the data from unauthorized alteration, such as disabling logging or
removing logs, which can be performed by the attackers during an in-flight data breach activity.
For each incident created in the Incident Manager, assign an impact level based on your
organization's defined criteria, such as a measure of the severity of the incident and criticality
level of the assets impacted.
If you use Microsoft Sentinel to centrally manage your incident, you can also create automated
actions or run a playbooks to respond to incoming security alerts.
Alternatively, use automation features in AWS System Manager to automatically trigger actions
defined in the incident response plan, including notifying the contacts and/or running a runbook
to respond to alerts, such as disabling accounts, and isolating problematic networks.
Create incident analysis for a closed incident in Incident Manager using the standard incident
analysis template or your own custom template. Use the outcome from the lessons learned
activity to update your incident response plan, playbook (such as the AWS Systems Manager
runbook and Microsoft Sentinel playbook) and reincorporate findings into your environments
(such as logging and threat detection to address any gaps in logging) to improve your future
capability in detecting, responding, and handling of the incidents in AWS.
Keep the evidence collected during the "Detection and analysis - investigate an incident step"
such as system logs, network traffic dumps and running system snapshot in storage such as an
Amazon S3 bucket or Azure Storage account for immutable retention.
Implementation and additional context Customer Security Stakeholders:
AWS Security Incident Response Guide: Security operations:
https://docs.aws.amazon.com/whitepapers/latest/a https://docs.microsoft.com/azure/cloud-adoption-
ws-security-incident-response-guide/welcome.html framework/organize/cloud-security-operations-center
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-threat-intelligence
How Defender for Cloud Apps helps protect your Incident preparation: https://docs.microsoft.com/en-
Amazon Web Services (AWS) environment: us/azure/cloud-adoption-framework/organize/cloud-
https://docs.microsoft.com/en-us/defender-cloud- security-incident-preparation
apps/protect-aws
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-threat-intelligence
Traffic Mirroring: Security operations:
https://docs.aws.amazon.com/vpc/latest/ https://docs.microsoft.com/azure/cloud-adoption-
mirroring/traffic-mirroring-how-it-works.html framework/organize/cloud-security-operations-center
Creating EBS volume backups with AMIs and EBS Incident preparation: https://docs.microsoft.com/en-
snapshots: us/azure/cloud-adoption-framework/organize/cloud-
https://docs.aws.amazon.com/prescriptive- security-incident-preparation
guidance/latest/backup-recovery/ec2-backup.html
Threat intelligence:
https://docs.aws.amazon.com/whitepapers/latest/ https://docs.microsoft.com/azure/cloud-adoption-
aws-security-incident-response-guide/use- framework/organize/cloud-security-threat-intelligence
immutable-storage.html
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-threat-intelligence
AWS Systems Manager - runbooks and automation: Security operations:
https://docs.aws.amazon.com/incident-manager/ https://docs.microsoft.com/azure/cloud-adoption-
latest/userguide/runbooks.html framework/organize/cloud-security-operations-center
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-threat-intelligence
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-threat-intelligence
ID Control Domain CIS Controls v7.1 ID(s) CIS Controls v8 ID(s)
PV-1 Posture and 5.1 - Establish Secure 4.1 - Establish and Maintain
Vulnerability Configurations a Secure Configuration
Management 11.1 - Maintain Standard Process
Security Configurations for 4.2 - Establish and Maintain
Network Devices a Secure Configuration
Process for Network
Infrastructure
PV-2 Posture and 5.4 - Deploy System 4.1 - Establish and Maintain
Vulnerability Configuration Management a Secure Configuration
Management Tools Process
5.5 - Implement Automated 4.2 - Establish and Maintain
Configuration Monitoring a Secure Configuration
Systems Process for Network
11.3 - Use Automated Tools Infrastructure
to Verify Standard Device
Configurations and Detect
Changes
PV-3 Posture and 5.1 - Establish Secure 4.1 - Establish and Maintain
Vulnerability Configurations a Secure Configuration
Management 5.5 - Implement Automated Process
Configuration Monitoring
Systems
PV-4 Posture and 5.4 - Deploy System 4.1 - Establish and Maintain
Vulnerability Configuration Management a Secure Configuration
Management Tools Process
5.5 - Implement Automated
Configuration Monitoring
Systems
11.3 - Use Automated Tools
to Verify Standard Device
Configurations and Detect
Changes
PV-5 Posture and 3.1 - Run Automated 5.5 - Establish and Maintain
Vulnerability Vulnerability Scanning Tools an Inventory of Service
Management 3.3 - Protect Dedicated Accounts
Assessment Accounts 7.1 - Establish and Maintain
3.6 - Compare Back-to-back a Vulnerability Management
Vulnerability Scans Process
7.5 - Perform Automated
Vulnerability Scans of
Internal Enterprise Assets
7.6 - Perform Automated
Vulnerability Scans of
Externally-Exposed
Enterprise Assets
PV-6 Posture and 3.4 - Deploy Automated 7.2 - Establish and Maintain
Vulnerability Operating System Patch a Remediation Process
Management Management Tools 7.3 - Perform Automated
3.5 - Deploy Automated Operating System Patch
Software Patch Management
Management Tools 7.4 - Perform Automated
3.7 - Utilize a Risk-rating Application Patch
Process Management
7.7 - Remediate Detected
Vulnerabilities
Be aware of the potential risks associated with the privileged access used
by the vulnerability scanners. Follow the privileged access security best
practice to secure any administrative accounts used for the scanning.
Follow industry best practices to design, prepare and conduct this kind
of testing to ensure it will not cause damage or disruption to your
environment. This should always include discussing testing scope and
constraints with relevant stakeholders and resource owners.
Azure Guidance
Use the Microsoft Cloud Security Benchmark and service baseline to define your configuration baseline for each respective
Azure offering or service. Refer to the Azure reference architecture and Cloud Adoption Framework landing zone
architecture to understand the critical security controls and configurations that may be needed across Azure resources.
Use Azure landing zone (and Blueprints) to accelerate the workload deployment by setting up configuration of services and
application environments, including Azure Resource Manager templates, Azure RBAC controls, and Azure Policy.
Use Microsoft Defender for Cloud to configure Azure Policy to audit and enforce configurations of your Azure resources.
Use Azure Monitor to create alerts when there is a configuration deviation detected on the resources.
Use Azure Policy [deny] and [deploy if not exist] rules to enforce secure configuration across Azure resources.
For resource configuration audit and enforcement not supported by Azure Policy, you may need to write custom scripts or
use third-party tooling to implement the configuration audit and enforcement.
Use Azure recommended operating system security baselines (for both Windows and Linux) as a benchmark to define your
compute resource configuration baseline.
Additionally, you can use a custom VM image (using Azure Image Builder) or container image with Azure Automanage
Machine Configuration (formerly called Azure Policy Guest Configuration) and Azure Automation State Configuration to
establish the desired security configuration.
Use Microsoft Defender for Cloud and Azure Automanage Machine Configuration (formerly called Azure Policy Guest
Configuration) to regularly assess and remediate configuration deviations on your Azure compute resources, including VMs,
containers, and others. In addition, you can use Azure Resource Manager templates, custom operating system images, or
Azure Automation State Configuration to maintain the security configuration of the operating system. Microsoft VM
templates in conjunction with Azure Automation State Configuration can assist in meeting and maintaining security
requirements. Use Change Tracking and Inventory in Azure Automation to track changes in virtual machines hosted in
Azure, on-premises, and other cloud environments to help you pinpoint operational and environmental issues with
software managed by the Distribution Package Manager. Install the Guest Attestation agent on virtual machines to monitor
for boot integrity on confidential virtual machines.
Note: Azure Marketplace VM images published by Microsoft are managed and maintained by Microsoft.
Follow recommendations from Microsoft Defender for Cloud for performing vulnerability assessments on your Azure virtual
machines, container images, and SQL servers. Microsoft Defender for Cloud has a built-in vulnerability scanner for virtual
machines. Use a third-party solution for performing vulnerability assessments on network devices and applications (e.g.,
web applications)
Export scan results at consistent intervals and compare the results with previous scans to verify that vulnerabilities have
been remediated. When using vulnerability management recommendations suggested by Microsoft Defender for Cloud,
you can pivot into the selected scan solution's portal to view historical scan data.
When conducting remote scans, do not use a single, perpetual, administrative account. Consider implementing JIT (Just In
Time) provisioning methodology for the scan account. Credentials for the scan account should be protected, monitored,
and used only for vulnerability scanning.
Note: Microsoft Defender services (including Defender for servers, containers, App Service, Database, and DNS) embed
certain vulnerability assessment capabilities. The alerts generated from Azure Defender services should be monitored and
reviewed together with the result from Microsoft Defender for Cloud vulnerability scanning tool.
Note: Ensure you setup email notifications in Microsoft Defender for Cloud.
Use Azure Automation Update Management or a third-party solution to ensure that the most recent security updates are
installed on your Windows and Linux VMs. For Windows VMs, ensure Windows Update has been enabled and set to update
automatically.
For third-party software, use a third-party patch management solution or Microsoft System Center Updates Publisher for
Configuration Manager.
As required, conduct penetration testing or red team activities on your Azure resources and ensure remediation of all
critical security findings.
Follow the Microsoft Cloud Penetration Testing Rules of Engagement to ensure your penetration tests are not in violation of
Microsoft policies. Use Microsoft's strategy and execution of Red Teaming and live site penetration testing against
Microsoft-managed cloud infrastructure, services, and applications.
Implementation and additional context
Illustration of Guardrails implementation in
Enterprise Scale Landing Zone:
https://docs.microsoft.com/azure/cloud-
adoption-framework/ready/enterprise-scale/
architecture#landing-zone-expanded-definition
Azure Blueprints:
https://docs.microsoft.com/azure/
governance/blueprints/overview
Azure
How toAutomation
implement State Configuration
Microsoft Defender for
Overview:
Cloud vulnerability assessment
recommendations:
https://docs.microsoft.com/azure/security-
center/security-center-vulnerability-
assessment-recommendations
Use AWS CloudFormation templates and AWS Config rules in the AWS landing zone definition to automate deployment and
configuration of services and application environments.
Use AWS Config rules to audit configurations of your AWS resources. And you can choose to resolve the configuration drift
using AWS Systems Manager Automation associated with the AWS Config rule. Use Amazon CloudWatch to create alerts when
there is a configuration deviation detected on the resources.
For resource configuration audit and enforcement not supported by AWS Config, you may need to write custom scripts or use
third-party tooling to implement the configuration audit and enforcement.
You can also centrally monitor your configuration drifting by onboarding your AWS account to Microsoft Defender for Cloud.
Use EC2 AWS Machine Images (AMI) from trusted sources on marketplace as a benchmark to define your EC2 configuration
baseline.
Additionally, you can use EC2 Image Builder to build custom AMI template with a Systems Manager agent to establish the
desired security configuration.
Note: The AWS Systems Manager Agent is preinstalled on some Amazon Machine Images (AMIs) provided by AWS.
For workload applications running within your EC2 instances, AWS Lambda or containers environment, you may use AWS
System Manager AppConfig to establish the desired configuration baseline.
Use AWS System Manager's State Manager feature to regularly assess and remediate configuration deviations on your EC2
instances. In addition, you can use CloudFormation templates, custom operating system images to maintain the security
configuration of the operating system. AMI templates in conjunction with Systems Manager can assist in meeting and
maintaining security requirements.
You can also centrally monitor and manage the operating system configuration drift through Azure Automation State
Configuration and onboard the applicable resources to Azure security governance using the following methods :
- Onboard your AWS account into Microsoft Defender for Cloud
- Use Azure Arc for servers to connect your EC2 instances to Microsoft Defender for Cloud
For workload applications running within your EC2 instances, AWS Lambda or containers environment, you may use AWS
System Manager AppConfig to audit and enforce the desired configuration baseline.
Note: AMIs published by Amazon Web Services in AWS Marketplace are managed and maintained by Amazon Web Services.
Use Amazon Inspector to scan your Amazon EC2 instances and container images residing in Amazon Elastic Container Registry
(Amazon ECR) for software vulnerabilities and unintended network exposure. Use a third-party solution for performing
vulnerability assessments on network devices and applications (e.g., web applications)
Refer to control ES-1, "Use Endpoint Detection and Response (EDR)", to onboard your AWS account into Microsoft Defender
for Cloud and deploy Microsoft Defender for servers (with Microsoft Defender for Endpoint integrated) in your EC2 instances.
Microsoft Defender for servers provides a native threat and vulnerability management capability for your VMs. The
vulnerability scanning result will be consolidated in the Microsoft Defender for Cloud dashboard.
Track the status of vulnerability findings to ensure they are properly remediated or suppressed if they're considered false
positive.
When conducting remote scans, do not use a single, perpetual, administrative account. Consider implementing a temporary
provisioning methodology for the scan account. Credentials for the scan account should be protected, monitored, and used
only for vulnerability scanning.
Use AWS Systems Manager - Patch Manager to ensure that the most recent security updates are installed on your operating
systems and applications. Patch Manager supports patch baselines to allow you to define a list of approved and rejected
patches for your systems.
You can also use Azure Automation Update Management to centrally manage the patches and updates of your AWS EC2
Windows and Linux instances.
For third-party software, use a third-party patch management solution or Microsoft System Center Updates Publisher for
Configuration Manager.
As required, conduct penetration testing or red team activities on your AWS resources and ensure remediation of all critical
security findings.
Follow the AWS Customer Support Policy for Penetration Testing to ensure your penetration tests are not in violation of AWS
policies.
Implementation and additional context
AWS Control Tower:
https://docs.aws.amazon.com/controltower/latest/userguide/what-is-control-tower.html
Investigate weaknesses with Microsoft Defender for Endpoint's threat and vulnerability management:
https://docs.microsoft.com/en-us/azure/defender-for-cloud/deploy-vulnerability-assessment-tvm
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
posture-management
ES-2 Endpoint 8.1 - Utilize Centrally 10.1 - Deploy and Maintain SC-3: SECURITY FUNCTION
security Managed Anti-malware Anti-Malware Software ISOLATION
Software SI-2: FLAW REMEDIATION
SI-3: MALICIOUS CODE
PROTECTION
SI-16 MEMORY PROTECTION
ES-3 Endpoint 8.2 - Ensure Anti-Malware 10.2 - Configure Automatic SI-2: FLAW REMEDIATION
security Software and Signatures are Anti-Malware Signature SI-3: MALICIOUS CODE
Updated Updates PROTECTION
PCI-DSS v3.2.Recommendation Security Principle
11.5 Use Endpoint Enable Endpoint Detection and Response (EDR)
Detection and capabilities for VMs and integrate with SIEM and
Response (EDR) security operations processes.
Use Microsoft Defender for Cloud to deploy Microsoft Defender for servers on your
endpoints and integrate the alerts to your SIEM solution such as Microsoft Sentinel.
Microsoft Defender for Cloud can automatically identify the use of a number of popular anti-
malware solutions for your virtual machines and on-premises machines with Azure Arc
configured and report the endpoint protection running status and make recommendations.
Microsoft Defender Antivirus is the default anti-malware solution for Windows server 2016
and above. For Windows server 2012 R2, use Microsoft Antimalware extension to enable
SCEP (System Center Endpoint Protection). For Linux VMs, use Microsoft Defender for
Endpoint on Linux for the endpoint protection feature.
For both Windows and Linux, you can use Microsoft Defender for Cloud to discover and
assess the health status of the anti-malware solution.
Note: You can also use Microsoft Defender for Cloud's Defender for Storage to detect
malware uploaded to Azure Storage accounts.
Follow recommendations in Microsoft Defender for Cloud to keep all endpoints up to date
with the latest signatures. Microsoft Antimalware (for Windows) and Microsoft Defender for
Endpoint (for Linux) will automatically install the latest signatures and engine updates by
default.
For third-party solutions, ensure the signatures are updated in the third-party anti-malware
solution.
Implementation and additional context
Microsoft Defender for servers introduction:
https://docs.microsoft.com/azure/security-center/
defender-for-servers-introduction
Alternatively, use Amazon GuardDuty integrated threat intelligence capability to monitor and protect your EC2 instances.
Amazon GuardDuty can detect anomalous activities such as activity indicating an instance compromise, such as cryptocurrenc
mining, malware using domain generation algorithms (DGAs), outbound denial of service activity, unusually high volume of
network traffic, unusual network protocols, outbound instance communication with a known malicious IP, temporary Amazon
EC2 credentials use by an external IP address, and data exfiltration using DNS.
Onboard your AWS account into Microsoft Defender for Cloud to allow Microsoft Defender for Cloud to automatically identify
the use some popular anti-malware solutions for EC2 instances with Azure Arc configured and report the endpoint protection
running status and make recommendations.
Deploy Microsoft Defender Antivirus which is the default anti-malware solution for Windows server 2016 and above. For EC2
instances running Windows server 2012 R2, use Microsoft Antimalware extension to enable SCEP (System Center Endpoint
Protection). For EC2 instances running Linux, use Microsoft Defender for Endpoint on Linux for the endpoint protection featur
For both Windows and Linux, you can use Microsoft Defender for Cloud to discover and assess the health status of the anti-
malware solution.
Note: Microsoft Defender Cloud also supports certain third-party endpoint protection products for the discovery and health
status assessment.
With your AWS account onboarded into Microsoft Defender for Cloud, follow recommendations in Microsoft Defender for Clo
to keep all endpoints up to date with the latest signatures. Microsoft Antimalware (for Windows) and Microsoft Defender for
Endpoint (for Linux) will automatically install the latest signatures and engine updates by default.
For third-party solutions, ensure the signatures are updated in the third-party anti-malware solution.
Implementation and additional context
Protect your endpoints with Defender for Cloud's integrated EDR solution:
https://docs.microsoft.com/en-us/azure/defender-for-cloud/integration-defender-for-endpoint?tabs=windows
https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-ec2.html
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
compliance-management
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
compliance-management
Infrastructure and endpoint security: https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security
Threat intelligence:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
threat-intelligence
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
compliance-management
ID Control D CIS Controls v7.1 ID(s) CIS Controls v8 ID(s) NIST SP800-53 r4 ID(s)
BR-1 Backup 10.1 - Ensure Regular 11.2 - Perform Automated CP-2: CONTINGENCY PLAN
and Automated Backups Backups CP-4: CONTINGENCY PLAN
recovery TESTING
CP-9: INFORMATION SYSTEM
BACKUP
BR-2 Backup 10.4 - Ensure Protection of 11.3 - Protect Recovery CP-6: ALTERNATE STORAGE SITE
and Backups Data CP-9: INFORMATION SYSTEM
recovery BACKUP
BR-3 Backup 10.4 - Ensure Protection of 11.3 - Protect Recovery CP-9: INFORMATION SYSTEM
and Backups Data BACKUP
recovery
BR-4 Backup 10.3 - Test Data on Backup 11.5 - Test Data Recovery CP-4: CONTINGENCY PLAN
and Media TESTING
recovery CP-9: INFORMATION SYSTEM
BACKUP
PCI-DSS v3.2.Recommendation Security Principle
N/A Ensure regular Ensure backup of business-critical resources, either during resource
automated backups creation or enforced through policy for existing resources.
3.4 Protect backup and Ensure backup data and operations are protected from data exfiltration,
recovery data data compromise, ransomware/malware and malicious insiders. The
security controls that should be applied include user and network access
control, data encryption at-rest and in-transit.
N/A Monitor backups Ensure all business-critical protectable resources are compliant with the
defined backup policy and standard.
N/A Regularly test backup Periodically perform data recovery tests of your backup to verify that the
backup configurations and availability of the backup data meets the
recovery needs as per defined in the RTO (Recovery Time Objective) and
RPO (Recovery Point Objective).
Azure Guidance
For Azure Backup supported resources (such as Azure VMs, SQL Server, HANA databases, Azure PostgreSQL
Database, File Shares, Blobs or Disks), enable Azure Backup and configure the desired frequency and
retention period. For Azure VM, you can use Azure Policy to have backup automatically enabled using Azure
Policy.
For resources or services not supported by Azure Backup, use the native backup capability provided by the
resource or service. For example, Azure Key Vault provides a native backup capability.
For resources/services that are neither supported by Azure Backup nor have a native backup capability,
evaluate your backup and disaster needs, and create your own mechanism as per your business
requirements. For example:
- If you use Azure Storage for data storage, enable blob versioning for your storage blobs which will allow
you to preserve, retrieve, and restore every version of every object stored in your Azure Storage.
- Service configuration settings can usually be exported to Azure Resource Manager templates.
Use multi-factor-authentication and Azure RBAC to secure the critical Azure Backup operations (such as
delete, change retention, updates to backup config). For Azure Backup supported resources, use Azure
RBAC to segregate duties and enable fine grained access, and create private endpoints within your Azure
Virtual Network to securely backup and restore data from your Recovery Services vaults.
For Azure Backup supported resources, backup data is automatically encrypted using Azure platform-
managed keys with 256-bit AES encryption. You can also choose to encrypt the backups using a customer
managed key. In this case, ensure the customer-managed key in the Azure Key Vault is also in the backup
scope. If you use a customer-managed key, use soft delete and purge protection in Azure Key Vault to
protect keys from accidental or malicious deletion. For on-premises backups using Azure Backup,
encryption-at-rest is provided using the passphrase you provide.
Safeguard backup data from accidental or malicious deletion, such as ransomware attacks/attempts to
encrypt or tamper backup data. For Azure Backup supported resources, enable soft delete to ensure
recovery of items with no data loss for up to 14 days after an unauthorized deletion, and enable multifactor
authentication using a PIN generated in the Azure portal. Also enable geo-redundant storage or cross-
region restoration to ensure backup data is restorable when there is a disaster in primary region. You can
also enable Zone-redundant Storage (ZRS) to ensure backups are restorable during zonal failures.
Note: If you use a resource's native backup feature or backup services other than Azure Backup, refer to the
Microsoft Cloud Security Benchmark (and service baselines) to implement the above controls.
Monitor your Azure environment to ensure that all your critical resources are compliant from a backup
perspective. Use Azure Policy for backup to audit and enforce such controls. For Azure Backup supported
resources, Backup Center helps you centrally govern your backup estate.
Ensure critical backup operations (delete, change retention, updates to backup config) are monitored,
audited, and have alerts in place. For Azure Backup supported resources, monitor overall backup health, get
alerted to critical backup incidents, and audit triggered user actions on vaults.
Note: Where applicable, also use built-in policies (Azure Policy) to ensure that your Azure resources are
configured for backup.
Periodically perform data recovery tests of your backup to verify that the backup configurations and
availability of the backup data meets the recovery needs as defined in the RTO and RPO.
You may need to define your backup recovery test strategy, including the test scope, frequency and
method as performing the full recovery test each time can be difficult.
Implementation and additional context
How to enable Azure Backup:
https://docs.microsoft.com/azure/backup/
For resources/services not supported by AWS Backup, such as AWS KMS, enable the native backup feature as part of its resou
creation.
For resources/services that are neither supported by AWS Backup nor have a native backup capability, evaluate your backup a
disaster needs, and create your own mechanism as per your business requirements. For example:
- If Amazon S3 is used for data storage, enable S3 versioning for your storage backet which will allow you to preserve, retrieve
and restore every version of every object stored in your S3 bucket.
- Service configuration settings can usually be exported to CloudFormation templates.
Use AWS IAM access control to secure AWS Backup. This includes securing the AWS Backup service access and backup and
restore points. Example controls include:
- Use multi-factor authentication (MFA) for critical operations such as deletion of a backup/restore point.
- Use Secure Sockets Layer (SSL)/Transport Layer Security (TLS) to communicate with AWS resources.
- Use AWS KMS in conjunction with AWS Backup to encrypt the backup data either using customer-managed CMK or an AWS-
managed CMK associated with the AWS Backup service.
- Use AWS Backup Vault Lock for immutable storage of critical data.
- Secure S3 buckets through access policy, disabling public access, enforcing data at-rest encryption, and versioning control.
AWS Backup works with other AWS tools to empower you to monitor its workloads. These tools include the following:
- Use AWS Backup Audit Manager to monitor the backup operations to ensure the compliance.
- Use CloudWatch and Amazon EventBridge to monitor AWS Backup processes.
- Use CloudWatch to track metrics, create alarms, and view dashboards.
- Use EventBridge to view and monitor AWS Backup events.
- Use Amazon Simple Notification Service (Amazon SNS) to subscribe to AWS Backup-related topics such as backup, restore, an
copy events.
Periodically perform data recovery tests of your backup to verify that the backup configurations and availability of the backup
data meets the recovery needs as defined in the RTO and RPO.
You may need to define your backup recovery test strategy, including the test scope, frequency and method as performing the
full recovery test each time can be difficult.
Implementation and additional context
AWS Backup supported resources and third-party applications:
https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html
Amazon S3 versioning:
https://docs.aws.amazon.com/AmazonS3/latest/userguide/Versioning.html
Audit backups and create reports with AWS Backup Audit Manager:
https://docs.aws.amazon.com/aws-backup/latest/devguide/aws-backup-audit-manager.html
Restoring a backup:
https://docs.aws.amazon.com/aws-backup/latest/devguide/restoring-a-backup.html
Customer Security Stakeholders:
Policy and standards:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
policy-standards
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Incident preparation:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
incident-preparation
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
Incident preparation:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
incident-preparation
Incident preparation: https://docs.microsoft.com/en-us/azure/cloud-adoption-
framework/organize/cloud-security-incident-preparation
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-security-
architecture
DS-2 DevOps Security 18.3 - Verify That 16.4 - Establish and SA-12: SUPPLY CHAIN
Acquired Software is Manage an PROTECTION
Still Supported Inventory of Third- SA-15: DEVELOPMENT
18.4 - Only Use Up-to- Party Software PROCESS,
Date And Trusted Components STANDARDS, AND
Third-Party 16.6 - Establish and TOOLS
Components Maintain a Severity
18.8 - Establish a Rating System and
Process to Accept and Process for
Address Reports of Application
Software Vulnerabilities
Vulnerabilities 16.11 - Leverage
Vetted Modules or
Services for
Application Security
Components
DS-3 DevOps Security 18.11 - Use Standard 16.7 - Use Standard CM-2: BASELINE
Hardening Hardening CONFIGURATION
Configuration Configuration CM-6:
Templates for Templates for CONFIGURATION
Databases Application SETTINGS
Infrastructure AC-2: ACCOUNT
MANAGEMENT
AC-3: ACCESS
ENFORCEMENT
AC-6: LEAST
PRIVILEGE
DS-4 DevOps Security 18.7 - Apply Static and 16.12 - Implement SA-11: DEVELOPER
Dynamic Code Analysis Code-Level Security TESTING AND
Tools Checks EVALUATION
DS-5 DevOps Security 18.7 - Apply Static and 16.12 - Implement SA-11: DEVELOPER
Dynamic Code Analysis Code-Level Security TESTING AND
Tools Checks EVALUATION
DS-6 DevOps Security 5.2 - Deploy System 7.5 - Perform CM-2: BASELINE
Configuration Automated CONFIGURATION
Management Tools Vulnerability Scans CM-6:
5.3 - Securely Store of Internal CONFIGURATION
Master Images Enterprise Assets SETTINGS
5.4 - Deploy System 7.6 - Perform AC-2: ACCOUNT
Configuration Automated MANAGEMENT
Management Tools Vulnerability Scans AC-3: ACCESS
5.5 - Implement of Externally- ENFORCEMENT
Automated Exposed Enterprise AC-6: LEAST
Configuration Assets PRIVILEGE
Monitoring Systems 7.7 - Remediate
18.1 - Establish Secure Detected
Coding Practices Vulnerabilities
16.1 - Establish and
Maintain a Secure
Application
Development
Process
16.7 - Use Standard
Hardening
Configuration
Templates for
Application
Infrastructure
DS-7 DevOps Security 6.2 - Activate audit 8.2 Collect Audit AU-3: CONTENT OF
logging Logs AUDIT RECORDS
6.3 - Enable Detailed 8.5 Collect Detailed AU-6: AUDIT REVIEW,
Logging Audit Logs ANALYSIS, AND
6.5 - Central Log 8.9 Centralize Audit REPORTING
Management Logs AU-12: AUDIT
6.6 - Deploy SIEM or 8.11 Conduct Audit GENERATION
Log Analytic tool Log Reviews SI-4: INFORMATION
6.7 - Regularly Review SYSTEM MONITORING
Logs
6.8 - Regularly Tune
SIEM
PCI-DSS v3.2.1 ID(s) Recommendation
6.5 Conduct threat
12.2 modeling
Ensure your enterprise’s SDLC (Software Development Lifecycle) or process include a set of
security controls to govern the in-house and third-party software components (including both
proprietary and open-source software) where your applications have dependencies. Define
gating criteria to prevent vulnerable or malicious components being integrated and deployed
into the environment.
The software supply chain security controls should at least include the following aspects:
- Artifact repositories that store source code, built packages and images, project artifacts and
business data.
- Servers, services, and tooling that host CI/CD pipelines.
- CI/CD pipeline configuration.
Ensure static application security testing (SAST) fuzzy testing, interactive testing, mobile
application testing, are part of the gating controls in the CI/CD workflow. The gating can be
set based on the testing results to prevent vulnerable packages from committing into the
repository, building into the packages, or deploying into the production.
Ensure dynamic application security testing (DAST) are part of the gating controls in the CI/CD
workflow. The gating can be set based on the testing results to prevent vulnerability from
building into the packages or deploying into the production.
Ensure the workload is secured throughout the entire lifecycle in development, testing, and
deployment stage. Use Microsoft Cloud Security Benchmark to evaluate the controls (such as
network security, identity management, privileged access and so on) that can be set as
guardrails by default or shift left prior to the deployment stage. In particular, ensure the
following controls are in place in your DevOps process:
- Automate the deployment by using Azure or third-party tooling in the CI/CD workflow,
infrastructure management (infrastructure as code), and testing to reduce human error and
attack surface.
- Ensure VMs, container images and other artifacts are secure from malicious manipulation.
- Scan the workload artifacts (in other words, container images, dependencies, SAST and
DAST scans) prior to the deployment in the CI/CD workflow
- Deploy vulnerability assessment and threat detection capability into the production
environment and continuously use these capabilities in the run-time.
Ensure your logging and monitoring scope includes non-production environments and CI/CD
workflow elements used in DevOps (and any other development processes). The
vulnerabilities and threats targeting these environments can introduce significant risks to
your production environment if they are not monitored properly. The events from the CI/CD
build, test and deployment workflow should also be monitored to identify any deviations in
the CI/CD workflow jobs.
Follow Microsoft Cloud Security Benchmark – Logging and Threat Detection as the guideline
to implement your logging and monitoring controls for workload.
Azure Guidance
Use threat modeling tools such as the Microsoft threat modeling tool with the Azure threat model template
embedded to drive your threat modeling process. Use the STRIDE model to enumerate the threats from
both internal and external and identify the controls applicable. Ensure the threat modeling process includes
the threat scenarios in the DevOps process, such as malicious code injection through an insecure artifacts
repository with misconfigured access control policy.
If using a threat modeling tool is not applicable, you should, at minimum, use a questionnaire-based threat
modeling process to identify the threats.
Ensure the threat modeling or analysis results are recorded and updated when there is a major security-
impact change in your application or in the threat landscape.
For the GitHub platform, ensure the software supply chain security through the following capability or tools
from GitHub Advanced Security or GitHub’s native feature:- Use Dependency Graph to scan, inventory and
identify all your project’s dependencies and related vulnerabilities through Advisory Database.
- Use Dependabot to ensure that the vulnerable dependency is tracked and remediated, and ensure your
repository automatically keeps up with the latest releases of the packages and applications it depends on.
- Use GitHub's native code scanning capability to scan the source code when sourcing the code externally.
- Use Microsoft Defender for Cloud to integrate vulnerability assessment for your container image in the
CI/CD workflow.
For Azure DevOps, you can use third-party extensions to implement similar controls to inventory, analyze
and remediate the third-party software components and their vulnerabilities
As part of applying the Microsoft Cloud Security Benchmark to your DevOps infrastructure security controls,
prioritize the following controls:
- Protect artifacts and the underlying environment to ensure the CI/CD pipelines don’t become avenues to
insert malicious code. For example, review your CI/CD pipeline to identify any misconfiguration in core
areas of Azure DevOps such as Organization, Projects, Users, Pipelines (Build & Release), Connections, and
Build Agent to identify any misconfigurations such as open access, weak authentication, insecure
connection setup and so on. For GitHub, use similar controls to secure the Organization permission levels.
- Ensure your DevOps infrastructure is deployed consistently across development projects. Track
compliance of your DevOps infrastructure at scale by using Microsoft Defender for Cloud (such as
Compliance Dashboard, Azure Policy, Cloud Posture Management) or your own compliance monitoring
tools.
- Configure identity/role permissions and entitlement policies in Azure AD, native services, and CI/CD tools
in your pipeline to ensure changes to the pipelines are authorized.
- Avoid providing permanent “standing” privileged access to the human accounts such as developers or
testers by using features such as Azure managed identifies and just-in-time access.
- Remove keys, credentials, and secrets from code and scripts used in CI/CD workflow jobs and keep them in
a key store or Azure Key Vault.
- If you run self-hosted build/deployment agents, follow Microsoft Cloud Security Benchmark controls
including network security, posture and vulnerability management, and endpoint security to secure your
environment.
Note: Refer to the Logging and Threat Detection, DS-7, and the Posture and Vulnerability Management
sections to use services such as Azure Monitor and Microsoft Sentinel to enable governance, compliance,
operational auditing, and risk auditing for your DevOps infrastructure.
Integrate SAST into your pipeline (e.g., in your infrastructure as code template) so the source code can be
scanned automatically in your CI/CD workflow. Azure DevOps Pipeline or GitHub can integrate the below
tools and third-party SAST tools into the workflow.
- GitHub CodeQL for source code analysis.
- Microsoft BinSkim Binary Analyzer for Windows and *nix binary analysis.
- Azure DevOps Credential Scanner (Microsoft Security DevOps extension) and GitHub native secret
scanning for credential scan in the source code.
Integrate DAST into your pipeline so the runtime application can be tested automatically in your CI/CD
workflow set in Azure DevOps or GitHub. The automated penetration testing (with manual assisted
validation) should also be part of the DAST.
Azure DevOps Pipeline or GitHub supports the integration of third-party DAST tools into the CI/CD
workflow.
For Azure serverless services, adopt similar controls to ensure security controls "shift-left" to the stage prior
to deployment.
Enable and configure the audit logging capabilities in non-production and CI/CD tooling environments (such
as Azure DevOps and GitHub) used throughout the DevOps process.
The events generated from Azure DevOps and the GitHub CI/CD workflow, including the build, test and
deployment jobs, should also be monitored to identify any anomalous results.
Ingest the above logs and events into Microsoft Sentinel or other SIEM tools through a logging stream or
API to ensure the security incidents are properly monitored and triaged for handling.
Azure Implementation and additional context
Threat Modeling Overview:
https://www.microsoft.com/
securityengineering/sdl/threatmodeling
GitHub Dependabot:
https://docs.github.com/en/code-security/
supply-chain-security/keeping-your-
dependencies-updated-automatically/about-
dependabot-version-updates
GitHub CodeQL:
https://codeql.github.com/docs/
GitHub logging:
https://docs.github.com/en/organizations/
keeping-your-organization-secure/reviewing-
the-audit-log-for-your-organization
AWS Guidance
Use threat modeling tools such as the Microsoft threat modeling tool with the Azure threat model template
embedded to drive your threat modeling process. Use the STRIDE model to enumerate the threats from both internal
and external and identify the controls applicable. Ensure the threat modeling process includes the threat scenarios in
the DevOps process, such as malicious code injection through an insecure artifacts repository with misconfigured
access control policy.
If using a threat modeling tool is not applicable, you should, at minimum, use a questionnaire-based threat modeling
process to identify the threats.
Ensure the threat modeling or analysis results are recorded and updated when there is a major security-impact change
in your application or in the threat landscape.
If you use AWS CI/CD platforms such as CodeCommit or CodePipeline, ensure the software supply chain security using
CodeGuru Reviewer to scan the source code (for Java and Python) through the CI/CD workflows. Platforms such as
CodeCommit and CodePipeline also supports third-party extensions to implement similar controls to inventory,
analyze and remediate the third-party software components and their vulnerabilities.
If you manage your source code through the GitHub platform, ensure the software supply chain security through the
following capability or tools from GitHub Advanced Security or GitHub’s native feature:
- Use Dependency Graph to scan, inventory and identify all your project’s dependencies and related vulnerabilities
through Advisory Database.
- Use Dependabot to ensure that the vulnerable dependency is tracked and remediated, and ensure your repository
automatically keeps up with the latest releases of the packages and applications it depends on.
- Use GitHub's native code scanning capability to scan the source code when sourcing the code externally.
- If applicable, use Microsoft Defender for Cloud to integrate vulnerability assessment for your container image in the
CI/CD workflow.
As part of applying the Microsoft Cloud Security Benchmark to the security controls of your DevOps infrastructure,
such as GitHub, CodeCommit, CodeArtifact, CodePipeline, CodeBuild and CodeDeploy, prioritize the following controls:
- Refer to this guidance and the AWS Well-architected Framework security pillar to secure your DevOps environments
in AWS.
- Protect artifacts and the underlying supporting infrastructure to ensure the CI/CD pipelines don’t become avenues to
insert malicious code.
- Ensure your DevOps infrastructure is deployed and sustained consistently across development projects. Track
compliance of your DevOps infrastructure at scale by using AWS Config or your own compliance check solution.
- Use CodeArtifact to securely store and share software packages used for application development. You can use
CodeArtifact with popular build tools and package managers such as Maven, Gradle, npm, yarn, pip, and twine.
- Configure identity/role permissions and permission policies in AWS IAM, native services, and CI/CD tools in your
pipeline to ensure changes to the pipelines are authorized.
- Remove keys, credentials, and secrets from code and scripts used in CI/CD workflow jobs and keep them in key store
or AWS KMS
- If you run self-hosted build/deployment agents, follow Microsoft Cloud Security Benchmark controls including
network security, posture and vulnerability management, and endpoint security to secure your environment. Use AWS
Inspector for vulnerability scanning for vulnerabilities in EC2 or containerized environment as the build environment.
Note: Refer to the Logging and Threat Detection, DS-7, and the and Posture and Vulnerability Management sections to
use services such as AWS CloudTrail, CloudWatch and Microsoft Sentinel to enable governance, compliance,
operational auditing, and risk auditing for your DevOps infrastructure.
Integrate SAST into your pipeline so the source code can be scanned automatically in your CI/CD workflow.
If using AWS CodeCommit, use AWS CodeGuru Reviewer for Python and Java source code analysis. AWS Codepipeline
can also support integration of third-part SAST tools into the code deployment pipeline.
If using GitHub, the below tools and third-party SAST tools can be integrated into the workflow.
- GitHub CodeQL for source code analysis.
- Microsoft BinSkim Binary Analyzer for Windows and *nix binary analysis.
- GitHub native secret scanning for credential scan in the source code.
- AWS CodeGuru Reviewer for Python and Java source code analysis.
Integrate DAST into your pipeline so the runtime application can be tested automatically in your CI/CD workflow set in
AWS CodePipeline or GitHub. The automated penetration testing (with manual assisted validation) should also be part
of the DAST.
AWS CodePipeline or GitHub supports integration of third-party DAST tools into the CI/CD workflow.
Use Amazon Elastic Container Registry to share and control access to your images by different users and roles within
your organization. And Use AWS IAM to ensure that only authorized users can access your custom images.
Define the secure configuration baselines for the EC2 AMI images to eliminate unnecessary credentials, permissions,
and packages. Deploy and enforce configurations baselines through custom AMI images, CloudFormation templates,
and/or AWS Config Rules.
Use AWS Inspector for vulnerability scanning of VM's and Containerized environments, securing them from malicious
manipulation.
For AWS serverless services, use AWS CodePipeline in conjunction with AWS AppConfig to adopt similar controls to
ensure security controls "shift left" to the stage prior to deployment.
Enable and configure AWS CloudTrail for audit logging capabilities in non-production and CI/CD tooling environments
(such as AWS CodePipeline, AWS CodeBuild, AWS CodeDeploy, AWS CodeStar) used throughout the DevOps process.
The events generated from the AWS CI/CD environments (such as AWS CodePipeline, AWS CodeBuild, AWS
CodeDeploy, AWS CodeStar) and the GitHub CI/CD workflow, including the build, test and deployment jobs, should
also be monitored to identify any anomalous results.
Ingest the above logs and events into AWS CloudWatch, Microsoft Sentinel or other SIEM tools through a logging
stream or API to ensure the security incidents are properly monitored and triaged for handling.
AWS Implementation and additional context
Microsoft Threat Modeling Tool:
https://docs.microsoft.com/en-us/azure/security/develop/
threat-modeling-tool
GitHub Dependabot:
https://docs.github.com/en/code-security/supply-chain-
security/keeping-your-dependencies-updated-
automatically/about-dependabot-version-updates
DevOps in AWS:
https://aws.amazon.com/devops/
AWS Inspector:
https://docs.aws.amazon.com/inspector/latest/user/
getting_started_tutorial.html
AWS AppConfig:
https://docs.aws.amazon.com/appconfig/latest/userguide/
getting-started-with-appconfig.html
GitHub Logging:
https://docs.github.com/en/organizations/keeping-your-
organization-secure/reviewing-the-audit-log-for-your-
organization
Customer Security Stakeholders:
Policy and standards:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-policy-standards
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Application security and DevSecOps:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-application-security-
devsecops
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-architecture
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Application security and DevSecOps:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-application-security-
devsecops
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Posture management:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-posture-
management
Security architecture:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-architecture
Security operations:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-operations-center
Incident preparation:
https://docs.microsoft.com/azure/cloud-adoption-
framework/organize/cloud-security-incident-preparation
ID Control Domain CIS Controls v7.1 ID(s) CIS Controls v8 ID(s)
GS-1 Governance and 17.2 - Deliver Training to Fill 14.9 - Conduct Role-Specific
Strategy the Skills Gap Security Awareness and
Skills Training
GS-3 Governance and 14.1 - Segment the Network 3.1 - Establish and Maintain
Strategy Based on Sensitivity a Data Management
Process
3.7 - Establish and Maintain
a Data Classification Scheme
3.12 - Segment Data
Processing and Storage
Based on Sensitivity
GS-4 Governance and 12.1 - Maintain an Inventory 12.2 - Establish and
Strategy of Network Boundaries Maintain a Secure Network
Infrastructure
12.4 - Establish and
Maintain Architecture
Diagram(s)
GS-5 Governance and 5.1 - Establish Secure 4.1 - Establish and Maintain
Strategy Configurations a Secure Configuration
Process
4.2 - Establish and Maintain
a Secure Configuration
Process for Network
Infrastructure
GS-6 Governance and 4.5 - Use Multifactor 5.6 - Centralize Account
Strategy Authentication For All Management
Administrative Access 6.5 - Require MFA for
16.2 - Configure Centralized Administrative Access
Point of Authentication 6.7 - Centralize Access
Control
GS-7 Governance and 6.2 -Activate audit logging 8.1 - Establish and Maintain
Strategy 6.3 - Enable Detailed an Audit Log Management
Logging Process
6.6 - Deploy SIEM or Log 13.1 - Centralize Security
Analytic tool Event Alerting
6.7 - Regularly Review Logs 17.2 - Establish and
19.1 - Document Incident Maintain Contact
Response Procedures Information for Reporting
19.5 - Maintain Contact Security Incidents
Information For Reporting 17.4 - Establish and
Security Incidents Maintain an Incident
19.7 - Conduct Periodic Response Process
Incident Scenario Sessions 17.7 - Conduct Routine
for Personnel Incident Response Exercises
GS-10 Governance and 5.1 - Establish Secure 4.1 - Establish and Maintain
Strategy Configurations a Secure Configuration
18.1 - Establish Secure Process
Coding Practices 4.2 - Establish and Maintain
18.8 - Establish a Process to a Secure Configuration
Accept and Address Reports Process for Network
of Software Vulnerabilities Infrastructure
16.1 - Establish and
Maintain a Secure
Application
Development Process
16.2 - Establish and
Maintain a Process to
Accept and Address
Software Vulnerabilities
GS-11 Governance and N/A N/A
Strategy
NIST SP800-53 r4 ID(s) PCI-DSS v3.2.1 ID(s) Recommendation
PL-9: CENTRAL MANAGEMENT 12.4 Align organization roles, responsibilities and
PM-10: SECURITY accountabilities
AUTHORIZATION PROCESS
PM-13: INFORMATION SECURITY
WORKFORCE
AT-1: SECURITY AWARENESS
AND TRAINING POLICY AND
PROCEDURES
AT-3: ROLE-BASED SECURITY
TRAINING
CP-1: CONTINGENCY PLANNING 3.4 Define and implement backup and recovery
POLICY AND PROCEDURES strategy
CP-9: INFORMATION SYSTEM
BACKUP
CP-10: INFORMATION SYSTEM
RECOVERY AND
RECONSTITUTION
SI-2: FLAW REMEDIATION 5.1 Define and implement endpoint security
SI-3: MALICIOUS CODE 5.2 strategy
PROTECTION 5.3
SC-3: SECURITY FUNCTION 5.4
ISOLATION 11.5
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
N/A
General Guidance
Ensure that you define and communicate a clear strategy for roles and responsibilities in your security organization. Prioritize
providing clear accountability for security decisions, educating everyone on the shared responsibility model, and educate
technical teams on technology to secure the cloud.
Establish an enterprise-wide strategy to segment access to assets using a combination of identity, network, application,
subscription, management group, and other controls.
Carefully balance the need for security separation with the need to enable daily operation of the systems that need to
communicate with each other and access data.
Ensure that the segmentation strategy is implemented consistently in the workload, including network security, identity and
access models, and application permission/access models, and human process controls.
Establish a policy, procedure and standard to ensure the security configuration management and vulnerability management a
in place in your cloud security mandate.
The security configuration management in cloud should include the following areas:
- Define the secure configuration baselines for different resource types in the cloud, such as the web portal/console,
management and control plane, and resources running in the IaaS, PaaS and SaaS services.
- Ensure the security baselines address the risks in different control areas such as network security, identity management,
privileged access, data protection and so on.
- Use tools to continuously measure, audit, and enforce the configuration to prevent configuration deviating from the baseline
- Develop a cadence to stay updated with security features, for instance, subscribe to the service updates.
- Utilize a security health or compliance check mechanism (such as Secure Score, Compliance Dashboard in Microsoft Defende
for Cloud) to regularly review security configuration posture and remediate the gaps identified.
The vulnerability management in the cloud should include the following security aspects:
- Regularly assess and remediate vulnerabilities in all cloud resource types, such as cloud native services, operating systems, an
application components.
- Use a risk-based approach to prioritize assessment and remediation.
- Subscribe to the relevant CSPM's security advisory notices and blogs to receive the latest security updates.
- Ensure the vulnerability assessment and remediation (such as schedule, scope, and techniques) meet the regularly complian
requirements for your organization.
Establish a cloud identity and privileged access approach as part of your organization’s overall security access control strategy
This strategy should include documented guidance, policy, and standards for the following aspects:
- Centralized identity and authentication system (such as Azure AD) and its interconnectivity with other internal and external
identity systems
- Privileged identity and access governance (such as access request, review and approval)
- Privileged accounts in emergency (break-glass) situation
- Strong authentication (passwordless authentication and multifactor authentication) methods in different use cases and
conditions
- Secure access by administrative operations through web portal/console, command-line and API.
For exception cases, where an enterprise system isn’t used, ensure adequate security controls are in place for identity,
authentication and access management, and governed. These exceptions should be approved and periodically reviewed by th
enterprise team. These exceptions are typically in cases such as:
- Use of a non-enterprise designated identity and authentication system, such as cloud-based third-party systems (may introdu
unknown risks)
- Privileged users authenticated locally and/or use non-strong authentication methods
Establish a logging, threat detection and incident response strategy to rapidly detect and remediate threats and meet
compliance requirements. Security operations (SecOps / SOC) team should prioritize high quality alerts and seamless experien
so that they can focus on threats rather than log integration and manual steps.
This strategy should include documented policy, procedure and standards for the following aspects:
- The security operations (SecOps) organization's role and responsibilities
- A well-defined and regularly tested incident response plan and handling process aligning with NIST SP 800-61 (Computer
Security Incident Handling Guide) or other industry frameworks.
- Communication and notification plan with your customers, suppliers, and public parties of interest.
- Simulate both expected and unexpected security events within your cloud environment to understand the effectiveness of y
preparation. Iterate on the outcome of your simulation to improve the scale of your response posture, reduce time to value, a
further reduce risk.
- Preference of using extended detection and response (XDR) capabilities such as Azure Defender capabilities to detect threats
the various areas.
- Use of cloud native capability (e.g., as Microsoft Defender for Cloud) and third-party platforms for incident handling, such as
logging and threat detection, forensics, and attack remediation and eradication.
- Prepare the necessary runbooks, both manual and automated, to ensure reliable and consistent responses.
- Define key scenarios (such as threat detection, incident response, and compliance) and set up log capture and retention to
meet the scenario requirements.
- Centralized visibility of and correlation information about threats, using SIEM, native cloud threat detection capability, and
other sources.
- Post-incident activities, such as lessons learned and evidence retention.
Establish a backup and recovery strategy for your organization. This strategy should include documented guidance, policy, and
standards in the following aspects:
- Recovery time objective (RTO) and recovery point objective (RPO) definitions in accordance with your business resiliency
objectives, and regulatory compliance requirements.
- Redundancy design (including backup, restore and replication) in your applications and infrastructure for both in cloud and o
premises. Consider regional, region-pairs, cross-regional recovery and off-site storage location as part of your strategy.
- Protection of backup from unauthorized access and tempering using controls such as data access control, encryption and
network security.
- Use of backup and recovery to mitigate the risks from emerging threats, such as ransomware attack. And also secure the
backup and recovery data itself from these attacks.
- Monitoring the backup and recovery data and operations for audit and alerting purposes.
Establish a cloud endpoint security strategy which includes the following aspects:
- Deploy the endpoint detection and response and antimalware capability into your endpoint and integrate with the threat
detection and SIEM solution and security operations process.
- Follow Microsoft Cloud Security Benchmark to ensure endpoint related security settings in other respective areas (such as
network security, posture vulnerability management, identity and privileged access, and logging and threat detections) are als
in place to provide a defense-in-depth protection for your endpoint.
- Prioritize the endpoint security in your production environment but ensure the non-production environments (such as test a
build environment used in the DevOps process) are also secured and monitored, as these environment can also be used to
introduce the malware and vulnerabilities into the production.
Mandate the security controls as part of the organization’s DevOps engineering and operation standard. Define the security
objectives, control requirements, and tooling specifications in accordance with enterprise and cloud security standards in your
organization.
Encourage the use of DevOps as an essential operating model in your organization for its benefits in rapidly identifying and
remediating vulnerabilities using different type of automations (such as infrastructure as code provision, and automated SAST
and DAST scan) throughout the CI/CD workflow. This ‘shift left’ approach also increases visibility and ability to enforce consiste
security checks in your deployment pipeline, effectively deploying security guardrails into the environment ahead of time to
avoid last minute security surprises when deploying a workload into production.
When shifting security controls left into the pre-deployment phases, implement security guardrails to ensure the controls are
deployed and enforced throughout your DevOps process. This technology could include resource deployment templates (such
Azure ARM template) to define guardrails in the IaC (infrastructure as code), resource provisioning and audit to restrict which
services or configurations can be provisioned into the environment.
For the run-time security controls of your workload, follow the Microsoft Cloud Security Benchmark to design and implement
effective the controls, such as identity and privileged access, network security, endpoint security, and data protection inside y
workload applications and services.
Ensure a multi-cloud strategy is defined in your cloud and security governance, risk management, and operation process which
should include the following aspects:
- Multi-cloud adoption: For organizations that operate multi-cloud infrastructure and Educate your organization to ensure team
understand the feature difference between the cloud platforms and technology stack. Build, deploy, and/or migrate solutions
that are portable. Allow for ease of movement between cloud platforms with minimum vendor lock-in while utilizing cloud
native features adequately for the optimal result from the cloud adoption.
- Cloud and security operations: Streamline security operations to support the solutions across each cloud, through a central s
of governance and management processes which share common operations processes, regardless of where the solution is
deployed and operated.
- Tooling and technology stack: Choose the appropriate tooling that supports multi-cloud environment to help with establishin
unified and centralized management platforms which may include all the security domains discussed in this security benchma
Implementation and additional context
Azure Security Best Practice 1 – People: Educate Teams on Cloud
Security Journey:
https://docs.microsoft.com/azure/cloud-adoption-framework/
security/security-top-10#1-people-educate-teams-about-the-cloud-
security-journey
Secure DevOps:
https://www.microsoft.com/securityengineering/devsecops
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions
All stakeholders:
https://docs.microsoft.com/azure/cloud-adoption-framework/organize/cloud-
security#security-functions