Dieser Inhalt ist in der von Ihnen ausgewählten Sprache nicht verfügbar.
Chapter 7. Using buildah-ns Tekton task
The buildah-ns
Tekton task builds Open Container Initiative (OCI) images without requiring a container runtime daemon, such as the Docker daemon. The task uses buildah
and applies user namespace isolation to provide enhanced security.
After a successful build, the task produces the following results:
- The fully qualified image name
- The SHA256 digest of the image
The buildah-ns
task is functionally identical to the standard buildah
Tekton task, but applies additional security mechanisms to improve container isolation at the kernel level.
7.1. Differences between buildah and buildah-ns tasks Link kopierenLink in die Zwischenablage kopiert!
The buildah-ns task extends the standard buildah task with the following security-focused changes:
-
Task name: The task is named
buildah-ns
instead ofbuildah
. Annotations: The task includes security annotations that enable automatic user namespace mapping:
io.kubernetes.cri-o.userns-mode: "auto" io.openshift.builder: "true"
io.kubernetes.cri-o.userns-mode: "auto" io.openshift.builder: "true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Security model: User namespace separation improves privilege isolation and limits the impact of potential container escape vulnerabilities.
7.2. Security model of the buildah-ns task Link kopierenLink in die Zwischenablage kopiert!
The buildah-ns
task applies user namespace isolation to provide privilege separation between containers and the host system.
7.2.1. UID mapping behavior Link kopierenLink in die Zwischenablage kopiert!
When the task runs with namespace annotations, user IDs (UIDs) are mapped as follows:
- Inside the container: Processes run as UID 0, which appears as the root user.
- Outside the container: The same processes run as a non-zero UID on the host system.
This mapping allows processes inside the container to behave as if they have root privileges while restricting their privileges on the host system.
7.2.2. Security benefits Link kopierenLink in die Zwischenablage kopiert!
User namespace isolation provides the following security advantages:
- Kernel-level isolation: Adds an extra isolation boundary between containers.
- Reduced privilege exposure: Limits the impact of compromised workloads by running them as non-root users on the host.
- Container escape protection: Helps mitigate potential vulnerabilities that allow escaping from the container runtime environment.
7.3. Workspaces, parameters, and results for the buildah-ns task Link kopierenLink in die Zwischenablage kopiert!
The buildah-ns
task requires a workspace, accepts several parameters for image build customization, and provides results that contain information about the built image.
7.3.1. Workspace Link kopierenLink in die Zwischenablage kopiert!
Name | Required | Description |
---|---|---|
source | Yes |
The build context for the container image. Typically contains application source code and a |
7.3.2. Parameters Link kopierenLink in die Zwischenablage kopiert!
Name | Type | Default | Description |
---|---|---|---|
IMAGE | string | Required | Fully qualified name of the image to build, including tag. |
CONTAINERFILE_PATH | string | Containerfile | Path to the container build file relative to the source workspace. |
TLS_VERIFY | string | true |
Whether to verify TLS when pushing images. Setting this value to |
VERBOSE | string | false | Enables verbose build output. |
SUBDIRECTORY | string | . | Subdirectory in the workspace to use as the build context. |
STORAGE_DRIVER | string | overlay | Storage driver for Buildah, aligned with the cluster node configuration. |
BUILD_EXTRA_ARGS | string | Empty |
Additional flags for the |
PUSH_EXTRA_ARGS | string | Empty |
Additional flags for the |
SKIP_PUSH | string | false |
If set to |
7.3.3. Results Link kopierenLink in die Zwischenablage kopiert!
Name | Description |
---|---|
IMAGE_URL | Fully qualified name of the built image. |
IMAGE_DIGEST | SHA256 digest of the built image. |
7.4. Running the buildah-ns task Link kopierenLink in die Zwischenablage kopiert!
You can run the buildah-ns
task as part of a PipelineRun
resource.
If the target container registry requires authentication, configure a Kubernetes secret for registry access and link it to the service account that runs the TaskRun
or PipelineRun
resources.
Additional resources