Red Hat Advanced Cluster Security can be easily integrated into an existing GitHub actions pipeline through the existing Stackrox suite of open source actions. The roxctl
cli can be used to scan images for vulnerabilities or common misconfigurations.
Red Hat Advanced Cluster Security for Kubernetes (RHACS) provides the ability to configure short-lived access to the user interface and API calls.
You can configure this by exchanging OpenID Connect (OIDC) identity tokens for a RHACS-issued token.
We recommend this especially for Continuous Integration (CI) usage, where short-lived access is preferable over long-lived API tokens.
Refer: https://docs.openshift.com/acs/4.5/operating/manage-user-access/configure-short-lived-access.html
An example pipeline is included below and in this repository.
---
name: Secure image build
on: workflow_dispatch
permissions:
contents: read
jobs:
build-and-push-image:
name: Build and push image
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build image
uses: redhat-actions/buildah-build@v2
with:
image: quay.io/rh_ee_jablair/ubi9
tags: v0.0.1-${{ github.sha }}
containerfiles: |
./2024-08-28-rhacs-actions-pipeline/Containerfile
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ubi9
tags: v0.0.1-${{ github.sha }}
registry: quay.io/rh_ee_jablair
username: ${{ secrets.QUAY_USERNAME }}
password: ${{ secrets.QUAY_PASSWORD }}
scan-image:
runs-on: ubuntu-latest
needs: build-and-push-image
permissions:
id-token: write
steps:
- name: Rhacs login
uses: stackrox/central-login@v1
with:
endpoint: ${{ secrets.CENTRAL_ENDPOINT }}
skip-tls-verify: true
- name: Install roxctl
uses: stackrox/roxctl-installer-action@v1
with:
central-endpoint: ${{ secrets.CENTRAL_ENDPOINT }}
central-token: ${{ secrets.ROX_API_TOKEN }}
skip-tls-verify: true
- name: Scan image with roxctl
shell: bash
run: |
roxctl image scan --output=table --image="quay.io/rh_ee_jablair/ubi9:v0.0.1-${{ github.sha }}" --insecure-skip-tls-verify
roxctl image check --output=table --image="quay.io/rh_ee_jablair/ubi9:v0.0.1-${{ github.sha }}" --insecure-skip-tls-verify