10.7.2.6. 認証とシークレットの取得
デモアプリケーションを使用して SPIFFE Workload API から JWT トークンを取得し、それを使用して Vault にログインしてシークレットを取得します。
手順
実行中のクライアント Pod 内で次のコマンドを実行して、JWT-SVID を取得します。
$ oc -n $APP_NAMESPACE exec -it $(oc get pod -o=jsonpath='{.items[*].metadata.name}' -l app=$APP_NAME -n $APP_NAMESPACE) \ -- /opt/spire/bin/spire-agent api fetch jwt \ -socketPath /run/spire/sockets/spire-agent.sock \ -audience $AUDIENCE出力からトークンをコピーし、次のコマンドを実行してローカルマシン上で環境変数としてエクスポートします。
$ export IDENTITY_TOKEN=<Your-JWT-Token>次のコマンドを実行して、新しい環境変数を作成します。
$ export ROLE="${NAME}-role"次のコマンドを実行して、
curlを使用して JWT トークンを Vault ログインエンドポイントに送信し、Vault クライアントトークンを取得します。$ VAULT_TOKEN=$(curl -s --request POST --data '{ "jwt": "'"${IDENTITY_TOKEN}"'", "role": "'"${ROLE}"'"}' "${VAULT_ADDR}"/v1/auth/jwt/login | jq -r '.auth.client_token')
検証
次のコマンドを実行し、新しく取得した Vault トークンを使用してキー/値ストアからシークレットを読み取ります。
$ curl -s -H "X-Vault-Token: $VAULT_TOKEN" $VAULT_ADDR/v1/secret/$NAME | jq出力にシークレットの内容 (
"version": "v0.1.0") が表示されます。これにより、ワークフロー全体が成功したことを確認できます。