0

私は次のことを達成しようとしています:

Azure ユーザー割り当てマネージド ID (UAMI) を使用して、スプリング ブート アプリケーション (AKS 内にデプロイ) からコンテナー (Azure にデプロイ) への認証を行うことができます

スタック: openjdk 8 、スプリング ブート 2.5.4 、spring-cloud-starter-vault-config 3.0.3、AKS

Azureにhashicorpボールトがインストールされています。以下のドキュメントは、この場合 UAMI を使用してボールトへの認証を行うことができることを示唆しています。https://cloud.spring.io/spring-cloud-vault/reference/html/参照

Spring Boot アプリケーション構成:

アプリケーション.yml:

server:
  port: 8090

spring:
  application:
     name: my application-service
  cloud:
    config:
      import: vault://secret/somepath_to_secrets
    vault:
      uri: https://my-vault-uri
      scheme: https
      namespace: myapp
      authentication: AZURE_MSI
      azure-msi:
        role: pod_identity_role_name

ログには、上記のボールト URI にアクセスして接続しようとしていることが示されているため、ローカルでは少し問題なく動作します。もちろん、azure MSI のためにローカル エンド ツー エンドでこれをテストすることはできません。ユーザー割り当てマネージド ID (UAMI) を使用しています。

しかし、これを Azure Kubernetes クラスターにデプロイすると、次のエラーが発生し、ボールトに接続しようとさえしません。トークンとしての認証を期待しているようです:

Error creating bean with name 'clientAuthentication' defined in class path resource
caused by java.lang.IllegalArgumentException: Token(spring.cloud.vault.token) must not be empty

ローカル ログと AKS ログはまったく異なるため、これは意味がありません。local と AKS の両方の JKS にルート証明書があります。

誰かがこれについて私を助けてくれませんか。いろいろ調べてみましたがどれも古いようです。

4

1 に答える 1