Expel's Azure Kubernetes Service (AKS) offering consumes audit logs from the Azure platform via Azure Log Analytics (aka Azure Monitor). Additionally, via a read-only Azure Role, Expel is able to communicate with AKS clusters. This visibility allows Expel to identify activity of interest in AKS, investigate, and notify organizations when action is recommended.
Important
Before you begin onboarding for Azure Kubernetes Service, ensure you meet the following prerequisite.
The steps below outline creating a storage account for AKS logs. Expel integrates with this storage bucket to consume logs.
-
Log in to the Azure Portal
-
Navigate to the Storage accounts page
-
Click Create storage account and fill out the required fields. Assign the storage account to a subscription / resource group and then name it.
-
Leave all other settings to the defaults. Optionally, you can restrict network access to Expel’s egress IPs:
-
34.75.13.114
-
34.75.152.7
-
35.243.190.98
-
104.196.158.205
-
34.75.81.28
-
34.75.210.18
-
-
Create the storage account
The steps below outline enabling the required audit logging for onboarding AKS with Expel Workbench.
-
Log in to the Azure Portal
-
Navigate to the Kubernetes service page.
-
Select your Kubernetes cluster(s) and navigate to Diagnostic settings.
-
Select Add diagnostic setting to begin configuring audit logging for the cluster.
-
Select kube-audit only, and choose the destination Storage account. Select the storage account we created earlier. Specify a minimum of 7 days as the retention period (this can optionally be extended).
Note
Additional diagnostic logs can optionally be enabled, but are not used by Expel for security monitoring and can incur additional Azure cost.
-
Click Save.
The steps below outline how to grant Expel access to Kubernetes audit log data in Azure Log Analytics for onboarding with Expel Workbench.
-
Log in to the Azure Portal
-
Navigate to Azure Active Directory.
-
Select App registrations and then + New registration.
-
Name the application registration, and leave Supported account types to the default selection.
-
Copy the Application (client) ID and Directory (tenant) ID for later.
-
Navigate to API permissions and then click Add a permission.
-
Select APIs my organization uses and then search for Log Analytics API.
-
Select Application permissions and check Data.Read and then Add permissions.
-
Navigate to Certificates & secrets and select New client secret.
-
Add a description for the secret, choose an expiration, and select Add.
-
Copy the secret value after it’s created.
Expel requires a custom Azure IAM role to grant finely grained read-only access to AKS clusters. This access is used to investigate security alerts as well as for proactive risk management.
-
Navigate to Subscriptions and select the subscription to be monitored.
-
Select Access control (IAM) and then click the Plus (+) button to select Custom role.
-
On the next screen, choose Start from JSON and upload ExpelAKSRole.json which will preload Expel’s required permissions for the role.
-
On the Permissions tab, review the permissions for the custom role. You see 2 permissions of type Action followed by a list of DataAction permissions.
-
On the Assignable scopes tab, add any scopes where this role will be assigned. For example, any subscriptions or management groups where AKS clusters exist that Expel will monitor.
-
Finally, on the Review + create tab, click Create.
Step 5a: Grant required permissions for each monitored subscription
For each Azure subscription with AKS clusters to be monitored, we need to add:
Do the following steps for each subscription:
-
Navigate to Subscriptions and select the subscription to be monitored.
-
Select Access control (IAM) and then select the Role assignments tab.
-
Select Add to add a new role assignment.
-
Assign to Azure AD user, group or application, and select the Expel application registration that was created earlier.
-
Assign the Log Analytics Reader role.
Step 5b: Grant access to the storage blob
To grant Expel access to the storage blob containing AKS logs, we need to create an additional role assignment.
-
Navigate to the subscription where the storage account exists and select Access control (IAM) & Role assignments.
-
Press Create role assignment.
-
Select Add to add a new role assignment.
-
Select the Storage Blob Data Reader role.
-
Assign the role to the Expel application created earlier.
-
On the Conditions (optional) page, create a new condition that allows All data read operations when the resource (the storage account) name equals the storage account created earlier. This ensures Expel can only read from that specific storage account.
-
Finally, Review + Assign the role assignment.
The steps below outline how to finish onboarding AKS in Expel Workbench.
-
Log in to Expel Workbench
-
Navigate to Settings & Security devices.
-
Select Add security device.
-
Select Azure Kubernetes Service.
-
Name the device, provide a description, and fill in the Application (client) ID, Directory (tenant) ID, Application secret, and Storage account name.
-
Save the device.
Comments
0 comments
Article is closed for comments.