Cloud Run 비밀 참조가 파일 대신 디렉터리로 마운트됩니다.

Cloud Run 비밀 참조가 파일 대신 디렉터리로 마운트됩니다.

Secret Manager를 사용하는 Cloud Run에 도움이 필요합니다. 보안 비밀 2개를 볼륨(파일만)으로 마운트해야 합니다. 다음은 Cloud Run의 yaml입니다.

        volumeMounts:
        - name: secret-2f1d5ec9-d681-4b0f-8a77-204c5f853330
          readOnly: true
          mountPath: /root/key/mtls/client_auth.p12
        - name: secret-29c1417a-d9fe-4c37-8cb0-562c97f3c827
          readOnly: true
          mountPath: /root/key/firebase/myapp-d2a0f-firebase-adminsdk-irfes-a699971a4d.json
      volumes:
      - name: secret-2f1d5ec9-d681-4b0f-8a77-204c5f853330
        secret:
          secretName: myapp_mtls_key
          items:
          - key: latest
            path: myapp_mtls_key
      - name: secret-29c1417a-d9fe-4c37-8cb0-562c97f3c827
        secret:
          secretName: myapp_firebase_token
          items:
          - key: latest
            path: myapp_firebase_token

mtls 비밀(p12 파일)은 파일로 제대로 마운트되지만 대신 Firebase 비밀(json 파일)이 디렉터리로 마운트됩니다.

java.io.FileNotFoundException: /root/key/firebase/myapp-d2a0f-firebase-adminsdk-irfes-a699971a4d.json (Is a directory)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:216)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:111)
    at com.myapp.gcp.GCPInit.init(GCPInit.java:39)

도커 규칙에 따라 호스트에서 파일을 찾을 수 없으면 디렉토리로 마운트되지만 이 경우 호스트 경로나 파일 가용성을 제어할 수 없으므로 버그일 수 있습니까?

볼륨 마운트를 사용하여 Docker 컨테이너에서 배포를 테스트할 때 모든 것이 잘 작동하므로 애플리케이션에 결함이 없다고 확신합니다.

이 문제에 대한 지침을 부탁드립니다.

감사해요

답변1

여기에 무엇이 잘못되었는지가 있습니다.

컨테이너 볼륨 사양은 다음과 같이 해석됩니다.

  • spec->image->volumeMounts 아래의 'mountPath'는 '상위' 디렉토리 경로를 지정합니다.
  • spec->volumes->secret->items 아래의 'path'가 추가됩니다.

따라서 우리의 경우 실제 경로는 다음과 같습니다:- /root/key/firebase/myapp-d2a0f-firebase-adminsdk-irfes-a699971a4d.json/myapp_firebase_token

버전에서 볼륨 마운트를 확인하는 것은 제품 설명서 https://cloud.google.com/run/docs/configuring/secrets#viewing에 설명된 대로 실제 마운트 경로를 확인하는 방법입니다.

HTH

관련 정보