앱 플랫폼: 환경 변수에서 파일 주입

1786 단어
App Platform 앱(dockerfiles를 사용하지 않음)은 Cloud Native Build Packs을 사용하여 빌드되며, 이는 코드를 안전한 공유 Kubernetes 인스턴스에서 실행되는 OCI 이미지로 변환합니다. 앱 플랫폼은 앱에 환경 변수를 적용하는 기능을 제공합니다. 많은 경우 앱 암호는 이러한 환경 변수에 저장되며 덜 일반적인 경우 앱은 이러한 암호가 파일 시스템에 파일로 존재하도록 요구합니다.

이를 가능하게 하는 몇 가지 옵션은 다음과 같습니다.


  • 앱 git 리포지토리에 암호를 커밋하여 빌드가 발생할 때 표시되도록 합니다.
  • 여기서 명백한 단점은 비밀이 git 및 git 기록에 있다는 것입니다. 이것은 대부분의 경우 허용되지 않습니다.

  • dockerfile을 사용하도록 앱을 변환하고 환경 변수를 dockerfile과 함께 디스크에 반영합니다.
  • 첫 번째 옵션보다 약간 나은 이 방법은 여전히 ​​OCI 이미지에 비밀을 유지합니다.

  • 마지막으로 실행 명령을 명시적으로 인계받아 런타임에 파일을 삽입합니다.
  • 이 방법은 암호화되지 않은 방식으로 비밀을 유지하지 않습니다.
  • 암호의 올바른 버전이 있는지 확인합니다.
  • 단점은 앱run_command을 수동으로 설정해야 한다는 것입니다.


  • 어떻게 해야 할까요?



    1. 앱에 환경 변수를 추가하고 Encrypt 확인란을 선택합니다.

    2. 암호가 필요한 구성 요소를 선택하고 Edit 다음과 같은 명령을 선택합니다.

    echo "${APP_CERT}" > jwt.cer && <your_apps_run_command>
    
    


    이 스니펫에서는 APP_CERT라는 파일에 jwt.cer 환경 변수를 작성한 다음 앱 실행 코드를 실행합니다.

    추가 고려 사항



    경우에 따라 파일을 환경 변수로 저장하기 전에 파일을 인코딩해야 할 수 있습니다. 이 경우 디코딩이 필요합니다.

    base64를 사용하여 파일 인코딩


    base64 도구는 기본적으로 Linux 및 MacOS와 함께 제공되며 다음을 통해 파일의 base64 표현을 가져올 수 있습니다.

    cat <your_file> | base64
    
    


    이는 또한 파일을 디스크에 쓰기 전에 디코딩해야 함을 의미합니다. 다음과 같이 실행 명령을 업데이트합니다.

    echo "${APP_CERT}" | base64 --decode > jwt.cer && <your_apps_run_command>
    
    

    좋은 웹페이지 즐겨찾기