Installing and Using the CTE Signing Tool
To use this tool to gather signatures from other container images and then push them to CipherTrust Manager, complete the following steps:
-
Download a container image:
a. From a public repository, type:
./cte-sign --cdi --image=<image name> --tag=<image version>b. From a private repository, type:
./cte-sign --cdi --image=<image name with url> --tag=<image version> --repo-user=<repo username> --repo-password=<repo password> -
Get a list of signature set IDs from CipherTrust Manager, type:
./cte-sign --cm --signature-sets list --ip=<CM IP> --user=<CM username> --password=<CM password> --cm-domain=<CM Domain> -
Create a signature set for the process set or Container Image Digest set, type:
./cte-sign --cm --signature-sets create --sigset-name=<signature-set-name> --sigset-type=<signature-set-type> --ip=<CM IP> --user=<CM username> --password=<CM password> --cm-domain=<CM Domain> -
Send the signatures collected from the downloaded container image to CipherTrust Manager in a signature set ID, type:
./cte-sign --cm --signature-sets add-signatures --sigset-name=<signature-set-name> --path=<source-path> --ip=<CM IP> --user=<CM username> --password=<CM password> --cm-domain=<CM Domain> -
Cleanup and remove the image directory, type:
./cte-sign --cleanup -
Retrieve container image digests
a. Retrieve digests for pod spec yaml file:
./cte-sign --digest --podspec=<pod spec file name> --kubeconfig=<kubeconfig file path>b. Retrieve digest for public image:
./cte-sign --digest --image=<image name> --tag=<image tag>c. Retrieve digest for private image:
./cte-sign --digest --image=<image name> --tag=<image tag> --repo-user=<repo username> --repo-password=<repo password> -
Retrieve and push Container Image Digest to CipherTrust Manager
a. Retrieve and push for public image:
./cte-sign --digest --push-to-cm --image=<image name> --tag=<image tag> --ip=<CM IP> --user=<CM username> --password=<CM password> --sigset-name=<signature-set-name> --cm-domain=<CM Domain>b. Retrieve and push for private image:
./cte-sign --digest --push-to-cm --image=<image name> --tag=<image tag> --repo-user=<repo username> --repo-password=<repo password> --ip=<CM IP> --user=<CM username> --password=<CM password> --sigset-name=<signature-set-name>--cm-domain=<CM Domain>c. Retrieve and push for public/private images using pod spec yaml file:
./cte-sign --digest --push-to-cm --podspec=<pod spec file name> --ip=<CM IP> --user=<CM username> --password=<CM password> --sigset-name=<signature-set-name> --cm-domain=<CM Domain>
CLI Argument Definitions
| Argument | Definition |
|---|---|
| --cleanup | Delete the container image files and directories. |
| --cm-domain | (Optional) Provide this option only if an operation belongs to a specific domain, other than the root domain. |
| --image | Container image name/URL. |
| --ip | CipherTrust Manager IP address. |
| --kubeconfig | kubeconfig file for retrieving pod digests. |
| --password | Password of CipherTrust Manager credential. |
| --path | The binary path from the downloaded container image, for the files that need to be pushed to CipherTrust Manager. ex: /usr/bin |
| --podspec | Pod specification yaml file. |
| --repo-password | Password/AccessToken for the private repository. |
| --repo-user | Username for private repository access. |
| --sigset-name | The signature set name where signatures will be contained. |
| --sigset-type | The signature set type. Application: for process signatures. Container-Image for container image signature. |
| --tag | Container image version. |
| --user | Username of CipherTrust Manager credential. |