Commit 120d09d5 authored by Dominic Bauer's avatar Dominic Bauer Committed by Russell Dickenson

Update Container Scanning usage instructions

parent 983e4443
...@@ -47,19 +47,9 @@ To enable container scanning in your pipeline, you need the following: ...@@ -47,19 +47,9 @@ To enable container scanning in your pipeline, you need the following:
- An image matching the [supported distributions](#supported-distributions). - An image matching the [supported distributions](#supported-distributions).
- [Build and push](../../packages/container_registry/index.md#build-and-push-by-using-gitlab-cicd) - [Build and push](../../packages/container_registry/index.md#build-and-push-by-using-gitlab-cicd)
the Docker image to your project's container registry. the Docker image to your project's container registry.
- The name of the Docker image to scan, in the `DOCKER_IMAGE` [configuration variable](#available-cicd-variables).
- If you're using a third-party container registry, you might need to provide authentication - If you're using a third-party container registry, you might need to provide authentication
credentials through the `DOCKER_USER` and `DOCKER_PASSWORD` [configuration variables](#available-cicd-variables). credentials through the `DOCKER_USER` and `DOCKER_PASSWORD` [configuration variables](#available-cicd-variables).
For example, if you are connecting to AWS ECR, you might use the following: For more details on how to use these variables, see [authenticate to a remote registry](#authenticate-to-a-remote-registry).
```yaml
export AWS_ECR_PASSWORD=$(aws ecr get-login-password --region region)
include:
- template: Security/Container-Scanning.gitlab-ci.yml
DOCKER_USER: AWS
DOCKER_PASSWORD: "$AWS_ECR_PASSWORD"
```
## Configuration ## Configuration
...@@ -87,23 +77,19 @@ The following is a sample `.gitlab-ci.yml` that builds your Docker image, pushes ...@@ -87,23 +77,19 @@ The following is a sample `.gitlab-ci.yml` that builds your Docker image, pushes
registry, and scans the image: registry, and scans the image:
```yaml ```yaml
build:
image: docker:latest
stage: build
services:
- docker:dind
variables:
IMAGE: $CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG:$CI_COMMIT_SHA
script:
- docker info
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build -t $IMAGE .
- docker push $IMAGE
include: include:
- template: Jobs/Build.gitlab-ci.yml
- template: Security/Container-Scanning.gitlab-ci.yml - template: Security/Container-Scanning.gitlab-ci.yml
container_scanning:
variables:
CS_DEFAULT_BRANCH_IMAGE: $CI_REGISTRY_IMAGE/$CI_DEFAULT_BRANCH:$CI_COMMIT_SHA
``` ```
Setting `CS_DEFAULT_BRANCH_IMAGE` avoids duplicate vulnerability findings when an image name differs across branches.
The value of `CS_DEFAULT_BRANCH_IMAGE` indicates the name of the scanned image as it appears on the default branch.
For more details on how this deduplication is achieved, see [Setting the default branch image](#setting-the-default-branch-image).
### Customizing the container scanning settings ### Customizing the container scanning settings
There may be cases where you want to customize how GitLab scans your containers. For example, you There may be cases where you want to customize how GitLab scans your containers. For example, you
...@@ -124,6 +110,42 @@ variables: ...@@ -124,6 +110,42 @@ variables:
SECURE_LOG_LEVEL: 'debug' SECURE_LOG_LEVEL: 'debug'
``` ```
#### Scan an image in a remote registry
To scan images located in a registry other than the project's, use the following `.gitlab-ci.yml`:
```yaml
include:
- template: Security/Container-Scanning.gitlab-ci.yml
container_scanning:
variables:
DOCKER_IMAGE: example.com/user/image:tag
```
##### Authenticate to a remote registry
Scanning an image in a private registry requires authentication. Provide the username in the `DOCKER_USER`
variable, and the password in the `DOCKER_PASSWORD` configuration variable.
For example, to scan an image from AWS Elastic Container Registry:
```yaml
container_scanning:
before_script:
- curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" --output "awscliv2.zip"
- unzip awscliv2.zip
- ./aws/install
- aws --version
- export AWS_ECR_PASSWORD=$(aws ecr get-login-password --region region)
include:
- template: Security/Container-Scanning.gitlab-ci.yml
DOCKER_IMAGE: <aws_account_id>.dkr.ecr.<region>.amazonaws.com/<image>:<tag>
DOCKER_USER: AWS
DOCKER_PASSWORD: "$AWS_ECR_PASSWORD"
```
#### Available CI/CD variables #### Available CI/CD variables
You can [configure](#customizing-the-container-scanning-settings) analyzers by using the following CI/CD variables: You can [configure](#customizing-the-container-scanning-settings) analyzers by using the following CI/CD variables:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment