はじめに
プライベートレジストリからコンテナイメージをPullする際に、ユーザー名やパスワードなどを登録してImagePullSecretsを作りますが、その中身を確認します。
確認
$ kubectl get secret image-pull-secret -o yaml
apiVersion: v1
data:
.dockerconfigjson: eyJhdXRocyI6eyJucnQub2Npci5pbyI6eyJ1c2VybmFtZSI6Im5yemtmNWtycm93My9BdXRoRG9tYWluL2djb2NpZ2VuZXJhbHVzZXJAZ21haWwuY29tIiwicGFzc3dvcmQiOiJbdilubVhaN083NTJjbClVMVlFQiIsImVtYWlsIjoiYWFAZXhhbXBsZS5jb20iLCJhdXRoIjoiYm5KNmEyWTFhM0p5YjNjekwwRjFkR2hFYjIxaGFXNHZaMk52WTJsblpXNWxjxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx==
kind: Secret
metadata:
creationTimestamp: "2024-07-25T01:38:13Z"
name: image-pull-secret
namespace: default
resourceVersion: "9662178"
uid: 63da924b-f76e-4fd4-9c37-6949c315b6cd
type: kubernetes.io/dockerconfigjson
Base64でエンコードされてます。
.dockerconfigjson
をデコードします。
$ kubectl get secret image-pull-secret --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d
{"auths":{"nrt.ocir.io":{"username":"nrzkxxxxxxx/xxxxDomain/aa@example.com","password":"XXXXXXXXXX","email":"aa@example.com","auth":"bnJ6a2Y1a3Jyb3czL0F1dGhEb21haW4vZ2NvY2lnZW5lcmFsdXNlckBnbWFpbC5jb206W3XXXXXXXXXX="}}}
ユーザー名やパスワード(トークン)などが確認できます。
auth
以下の値をさらにデコードすると、ユーザー名:パスワード(トークン)
の形式で出力されます。
$ echo "bnJ6a2Y1a3Jyb3czL0F1dGhEb21haW4vZ2NvY2lnZW5lcmFsdXNlckBnbWFpbC5jb206W3YpbXXXXXXXXXXXX=" | base64 -d
nrzkxxxxxxx/xxxxDomain/aa@example.com:XXXXXXXXXXXXX
簡単に確認できますので、暗号化などの対応が必要ですね。