我正在尝试推送到AWS注册表(通过Kaniko)。我的帐户应该在注册帐户中扮演一个角色functional
。因此,我尝试通过以下方式生成.docker/config.json
:
set -o errexit -o nounset -o pipefail
export HOME=/root
mkdir -p "/root/.aws/"
cat <<EOF > /root/.aws/credentials
[functional]
role_arn = arn:aws:iam::359685361593:role/functional
source_profile = default
[default]
aws_access_key_id=$AWS_ACCESS_KEY_ID
aws_secret_access_key=$AWS_SECRET_ACCESS_KEY
EOF
export AWS_DEFAULT_REGION=eu-central-1
export AWS_SDK_LOAD_CONFIG=true
export AWS_PROFILE=functional
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
docker_cmd=$(aws ecr get-login --no-include-email)
url=$(echo "$docker_cmd" | sed -rn 's/docker login -u (.*) -p (.*) (.*)/\3/p')
auth=$(echo "$docker_cmd" | sed -rn 's/docker login -u (.*) -p (.*) (.*)/\1:\2/p')
auth=$(echo -n "$auth" | base64 -w 0)
cat <<EOF > /kaniko/.docker/config.json
{
"auths": {
"$url": {
"auth": "$auth"
}
}
}
EOF
最后,我得到一个config.json
,但它不起作用。
Kaniko打印status code 401; Not Authorized
。
现在我假设,该角色假设以某种方式失败了。但是我不知道该如何扮演一个假设的角色config.json
。
是否有任何方法可以调试此角色,或者有更简单的方法来承担角色?