Last active
November 18, 2021 12:54
-
-
Save mbentley/9e0dc63b713102a54576ecd2f40cd9e7 to your computer and use it in GitHub Desktop.
Docker Content Trust Delegation Script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# set environment variables to make the commands below portable | |
export DTR_URL="dtr.demo.dckr.org" | |
export NOTARY_OPTS="-d ${HOME}/.docker/trust -s https://${DTR_URL} --tlscacert ${HOME}/.docker/tls/${DTR_URL}/ca.crt" | |
export NAMESPACE="demo" | |
export REPO="dcttest" | |
export ROLE="dev" | |
# create directory and download CA from DTR for self-signed | |
mkdir -p ${HOME}/.docker/tls/${DTR_URL} | |
curl -sSLk https://${DTR_URL}/ca > ${HOME}/.docker/tls/${DTR_URL}/ca.crt | |
# remove data; local and remote | |
notary ${NOTARY_OPTS} delete ${DTR_URL}/${NAMESPACE}/${REPO} --remote | |
# initialize repository in notary | |
notary ${NOTARY_OPTS} init ${DTR_URL}/${NAMESPACE}/${REPO} | |
# publish locally staged changes | |
notary ${NOTARY_OPTS} publish ${DTR_URL}/${NAMESPACE}/${REPO} | |
# rotate snapshot key and change it to server managed | |
notary ${NOTARY_OPTS} key rotate ${DTR_URL}/${NAMESPACE}/${REPO} snapshot --server-managed | |
# create delegation for 'targets/releases' role | |
notary ${NOTARY_OPTS} delegation add -p ${DTR_URL}/${NAMESPACE}/${REPO} targets/releases --all-paths cert.pem | |
# create delegation for 'targets/${ROLE}' role | |
notary ${NOTARY_OPTS} delegation add -p ${DTR_URL}/${NAMESPACE}/${REPO} targets/${ROLE} --all-paths cert.pem | |
# show delegations | |
notary ${NOTARY_OPTS} delegation list ${DTR_URL}/${NAMESPACE}/${REPO} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# set environment variables to make the commands below portable | |
$env:DTR_URL = "dtr.demo.dckr.org" | |
$env:NAMESPACE = "demo" | |
$env:REPO = "dcttest" | |
$env:ROLE = "dev" | |
# remove data; local and remote | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} delete ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} --remote | |
# initialize repository in notary | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} init ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} | |
# publish locally staged changes | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} publish ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} | |
# rotate snapshot key and change it to server managed | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} key rotate ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} snapshot --server-managed | |
# create delegation for 'targets/releases' role | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} delegation add -p ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} targets/releases --all-paths cert.pem | |
# create delegation for 'targets/${ROLE}' role | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} delegation add -p ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} targets/${env:ROLE} --all-paths cert.pem | |
# show delegations | |
notary -d ${HOME}\.docker\trust -s https://${env:DTR_URL} delegation list ${env:DTR_URL}/${env:NAMESPACE}/${env:REPO} | |
# import key | |
notary -d ${HOME}\.docker\trust key import key.pem | |
$env:DOCKER_CONTENT_TRUST = "1" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment