You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/trivy-on-gcpp/_index.md
+25-13Lines changed: 25 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,14 @@
1
1
---
2
-
title: Secure Multi-Architecture Containers with Trivy on Azure Cobalt 100 (Arm64)
3
-
4
-
draft: true
5
-
cascade:
6
-
draft: true
2
+
title: Scan multi-architecture containers with Trivy on Azure Cobalt 100
7
3
8
4
minutes_to_complete: 45
9
5
10
-
who_is_this_for: This learning path is designed for developers and DevOps engineers who want to integrate security scanning into CI/CD pipelines for multi-architecture container images.
6
+
who_is_this_for: This learning path is for developers and DevOps engineers who want to integrate security scanning into CI/CD pipelines for multi-architecture container images.
11
7
12
8
learning_objectives:
13
-
- Provision an Azure Arm64 virtual machine using Azure console, with Ubuntu Pro 24.04 LTS as the base image
14
-
- Build multi-architecture (amd64/arm64) container images for Azure Cobalt 100
15
-
- Install and configure Trivy on Arm64 Ubuntu systems
16
-
- Scan container images for vulnerabilities locally and in CI
17
-
- Configure self-hosted GitHub Actions Arm runners
18
-
- Enforce security gates in CI/CD pipelines based on vulnerability severity
19
-
- Generate and analyze JSON reports for compliance and audit purposes
9
+
- Build and scan multi-architecture container images using Trivy on Azure Cobalt 100
10
+
- Configure self-hosted GitHub Actions Arm runners for CI/CD pipelines
11
+
- Enforce security gates in CI pipelines based on vulnerability severity
20
12
21
13
prerequisites:
22
14
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 based instances (Dpsv6)
@@ -71,3 +63,23 @@ weight: 1
71
63
layout: "learningpathall"
72
64
learning_path_main_page: "yes"
73
65
---
66
+
67
+
Trivy is an open-source security scanner that helps detect vulnerabilities in container images, filesystems, and infrastructure configurations. When you integrate Trivy into your CI/CD pipelines, you can shift security left by identifying issues early in the development process. This Learning Path shows you how to build multi-architecture container images and scan them using Trivy on Azure Cobalt 100 Arm-based processors.
68
+
69
+
## Before you begin
70
+
71
+
Before you start, ensure you have:
72
+
73
+
- A [Microsoft Azure](https://azure.microsoft.com/) account with access to Cobalt 100 based instances (Dpsv6)
74
+
- Docker installed and basic knowledge of containerization
75
+
- Familiarity with CI/CD concepts
76
+
- Basic knowledge of Linux command-line operations
77
+
78
+
## What you'll learn
79
+
80
+
By the end of this Learning Path, you will be able to:
81
+
82
+
- Build and scan multi-architecture (amd64/arm64) container images using Trivy
83
+
- Configure self-hosted GitHub Actions Arm runners on Azure Cobalt 100
84
+
- Enforce automated security gates in CI/CD pipelines based on vulnerability severity
85
+
- Generate and analyze vulnerability reports for compliance and audit purposes
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/trivy-on-gcpp/background.md
+10-1Lines changed: 10 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,8 +14,17 @@ To learn more, see the Microsoft blog [Announcing the preview of new Azure virtu
14
14
15
15
## Trivy
16
16
17
-
Trivy is an open-source vulnerability scanner designed to detect security issues in container images, filesystems, and infrastructure configurations. It is widely used in modern DevSecOps workflows to identify known vulnerabilities in operating system packages and application dependencies.
17
+
Trivy is an open-source vulnerability scanner designed to detect security issues in container images, filesystems, and infrastructure configurations. It's widely used in modern DevSecOps workflows to identify known vulnerabilities in operating system packages and application dependencies.
18
18
19
19
You can use Trivy to perform fast and reliable security scans on container images built for multiple architectures, including Arm64. It helps teams shift security left by detecting vulnerabilities early in the development and CI/CD pipeline.
20
20
21
21
Learn more at the [Trivy official website](https://trivy.dev/) and in the [Trivy documentation](https://trivy.dev/docs/).
22
+
23
+
## What you've accomplished and what's next
24
+
25
+
You now understand the core technologies in this Learning Path:
26
+
27
+
- Azure Cobalt 100, Microsoft's first-generation Arm-based processor built on Neoverse-N2 architecture
28
+
- Trivy, an open-source security scanner for detecting vulnerabilities in container images
29
+
30
+
Next, you'll create an Azure Cobalt 100 virtual machine to begin building and scanning multi-architecture container images.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/trivy-on-gcpp/instance.md
+26-12Lines changed: 26 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,47 +20,61 @@ This Learning Path focuses on general-purpose virtual machines in the Dpsv6 seri
20
20
21
21
While the steps to create this instance are included here for convenience, you can also refer to the [Deploy a Cobalt 100 virtual machine on Azure Learning Path](/learning-paths/servers-and-cloud-computing/cobalt/).
22
22
23
-
## Create an Arm-based Azure virtual machine
23
+
## Create an Arm-based Azure virtual machine
24
24
25
-
Creating a virtual machine based on Azure Cobalt 100 is no different to creating any other virtual machine in Azure. Follow the steps below to create an Azure virtual machine:
25
+
Creating a virtual machine based on Azure Cobalt 100 is no different to creating any other virtual machine in Azure. To create an Azure virtual machine:
26
26
27
27
- Launch the Azure portal and navigate to **Virtual Machines**.
28
28
- Select **Create**, and select **Virtual Machine** from the drop-down list.
29
29
- Inside the **Basic** tab, fill in the instance details such as **Virtual machine name** and **Region**.
30
30
- Select the image for your virtual machine (for example, Ubuntu Pro 24.04 LTS) and select **Arm64** as the VM architecture.
31
-
- In the **Size** field, select **See all sizes** and select the D-Series v6 family of virtual machines.
31
+
- In the **Size** field, select **See all sizes** and select the D-Series v6 family of virtual machines.
32
32
- Select **D4ps_v6** from the list as shown in the diagram below:
33
33
34
-

34
+

35
35
36
-
- For **Authentication type**, select **SSH public key**. {{% notice Note %}}
36
+
- For **Authentication type**, select **SSH public key**.
37
+
38
+
{{% notice Note %}}
37
39
Azure generates an SSH key pair for you and lets you save it for future use. This method is fast, secure, and easy for connecting to your virtual machine.
38
40
{{% /notice %}}
41
+
39
42
- Fill in the **Administrator username** for your VM.
40
-
- Select **Generate new key pair**, and select **RSA SSH Format** as the SSH Key Type. {{% notice Note %}}
43
+
- Select **Generate new key pair**, and select **RSA SSH Format** as the SSH Key Type.
44
+
45
+
{{% notice Note %}}
41
46
RSA offers better security with keys longer than 3072 bits.
42
-
{{% /notice %}}
47
+
{{% /notice %}}
48
+
43
49
- Give your SSH key a key pair name.
44
50
- In the **Inbound port rules**, select **HTTP (80)** and **SSH (22)** as the inbound ports, as shown below:
45
51
46
-

52
+

47
53
48
54
- Now select the **Review + Create** tab and review the configuration for your virtual machine. It should look like the following:
49
55
50
-

56
+

51
57
52
58
- When you are happy with your selection, select the **Create** button and then **Download Private key and Create Resource** button.
53
59
54
-

60
+

55
61
56
62
Your virtual machine should be ready and running in a few minutes. You can SSH into the virtual machine using the private key, along with the public IP details.
57
63
58
-

64
+

59
65
60
66
{{% notice Note %}}
61
67
62
68
To learn more about Arm-based virtual machine in Azure, see “Getting Started with Microsoft Azure” in [Get started with Arm-based cloud instances](/learning-paths/servers-and-cloud-computing/csp/azure).
63
69
64
70
{{% /notice %}}
65
71
66
-
Your Azure Cobalt 100 Arm64 virtual machine is now ready. Continue to the next step to install and configure Trivy.
72
+
## What you've accomplished and what's next
73
+
74
+
You've successfully:
75
+
76
+
- Created an Azure Cobalt 100 Arm-based virtual machine using the D-Series v6 (Dpsv6) family
77
+
- Selected Ubuntu Pro 24.04 LTS as the operating system
78
+
- Configured SSH authentication for secure access
79
+
80
+
Your Azure Cobalt 100 Arm64 virtual machine is now ready. Next, you'll build and scan multi-architecture container images using Docker and Trivy.
- This behavior is GOOD and expected in real-world CI/CD pipelines
298
+
### Is This Behavior Good or Bad?
299
+
300
+
This behavior is GOOD and expected in real-world CI/CD pipelines.
288
301
289
302
Modern DevSecOps practices integrate security tools like Trivy directly into Continuous Integration to automatically detect vulnerabilities.
290
303
291
304
The pipeline is designed to:
292
305
293
306
- Stop insecure container images early in the development lifecycle
294
-
-Prevent vulnerable software from reaching staging or production environments
307
+
-Prevent vulnerable software from reaching staging or production environments
295
308
- Enforce security and compliance policies automatically
296
309
297
-
**What a Failing Pipeline Means**
310
+
### What a Failing Pipeline Means
298
311
299
312
When the Trivy scan fails the job:
300
313
301
314
- Trivy successfully detected HIGH or CRITICAL vulnerabilities in the container image
302
315
- The security gate blocked the insecure image
303
316
- The CI pipeline protected downstream environments
304
317
305
-
**Why This Matters in Enterprise CI/CD**
318
+
### Why This Matters in Enterprise CI/CD
306
319
307
320
In enterprise environments, automated security enforcement is mandatory.
308
321
309
-
- Failing fast on vulnerabilities ensures:
322
+
Failing fast on vulnerabilities ensures:
323
+
310
324
- Faster remediation
311
325
- Reduced security risk
312
326
- Strong compliance posture
313
327
314
328
This behavior confirms that your Arm-based CI pipeline is working correctly.
329
+
330
+
## What you've accomplished and what's next
331
+
332
+
You've successfully:
333
+
334
+
- Set up a self-hosted GitHub Actions runner on Azure Cobalt 100 Arm64
335
+
- Configured GitHub secrets for secure authentication
336
+
- Created a CI/CD pipeline that automatically scans container images with Trivy
337
+
- Implemented security gates that fail builds when HIGH or CRITICAL vulnerabilities are detected
338
+
- Generated and uploaded vulnerability reports as CI artifacts
339
+
340
+
You now have a complete DevSecOps workflow that runs natively on Arm infrastructure. This setup enables you to shift security left in your development process, catching vulnerabilities before they reach production environments. You can extend this workflow by adding remediation steps, integrating with notification systems, or customizing the security policies to match your organization's requirements.
0 commit comments