실행 환경 보안

이 페이지에서는 gcloud functions 명령어 또는 Cloud Functions v2 API를 사용하여 만든 함수의 보안 업데이트 정책에 관한 추가 정보를 제공합니다.

언어 런타임, OS 패키지, 운영체제를 비롯한 기본 이미지의 자동 업데이트를 설정하는 방법에 관한 자세한 내용은 Cloud Run 문서 기본 이미지 자동 업데이트 구성을 참조하세요.

런타임 이미지

각 런타임에는 Artifact Registry의 공개 저장소에 연결된 런타임 이미지(실행 이미지라고도 함)가 있습니다. 런타임 ID 및 런타임 이미지 목록은 런타임을 참조하세요.

런타임 이미지 식별

함수의 빌드 로그를 검사하여 함수를 만드는 데 사용되는 런타임 이미지를 식별할 수 있습니다.

빌드 로그 내에서 google.run-image를 검색합니다. 그러면 함수를 빌드하는 데 사용되는 런타임 이미지 버전을 설명하는 빌드 단계의 로그 항목이 제공됩니다. 예를 들어 Nodejs 함수의 로그 항목은 다음과 같습니다.

{
  ...
  "textPayload": "Step #2 - \"build\": Adding image label google.run-image:
    us-central1-docker.pkg.dev/serverless-runtimes/google-22-full/runtimes/nodejs22:nodejs20_20230924_20_6_1_RC00",
  ...
}

보안 업데이트 정책

다음 보안 업데이트 정책 중 하나를 선택할 수 있습니다.

  • 자동 업데이트(기본값): 런타임 환경에 대한 업데이트 및 보안 패치가 런타임 이미지의 새 버전으로 게시됩니다. 안정성과 신뢰성을 테스트한 후 업데이트된 런타임이 모든 함수에 출시되어 다운타임 없이 업데이트됩니다. 자동 보안 업데이트는 Cloud Run Functions(1세대) 및 Cloud Run Functions에서 사용할 수 있습니다. 언어 수준의 보안 수정사항을 적용하려면 Go 또는 Java와 같은 컴파일된 언어를 사용하는 함수를 다시 빌드해야 할 수 있습니다.

  • 배포 시 업데이트: 별도로 명시되지 않는 한 업데이트 및 보안 패치는 함수가 배포되거나 재배포될 때만 런타임에 적용됩니다. 배포 시 업데이트는 Cloud Run Functions(1세대) 및 Cloud Run Functions에서 모두 사용할 수 있습니다.

런타임 업데이트 정책은 gcloud functions deploy 명령어에서 --runtime-update-policy 플래그를 사용하여 변경할 수 있습니다.

기본적으로 다음을 사용하여 배포된 함수에는 자동 보안 업데이트가 사용 설정되어 있습니다.

함수의 업데이트 정책 설정

다음 명령어를 사용하여 함수의 업데이트 정책을 변경할 수 있습니다.

  gcloud functions deploy FUNCTION_NAME \
    --runtime-update-policy=POLICY ...

다음과 같이 바꿉니다.

  • FUNCTION_NAME을 함수 이름으로 바꿉니다.
  • POLICYautomatic 또는 on-deploy로 바꿉니다.

함수의 업데이트 정책 검사

다음 명령어를 사용하여 함수의 업데이트 정책을 검사할 수 있습니다.

  gcloud functions describe FUNCTION_NAME \

여기서 FUNCTION_NAME은 함수 이름입니다.

  • 자동 보안 업데이트가 사용 설정된 함수에는 automaticUpdatePolicy 키가 있습니다.
  • 배포 시 업데이트되는 함수에는 onDeployUpdatePolicy 키가 있습니다.

Cloud Run Functions의 보안 스캔

자동 업데이트가 사용 설정된 Cloud Run Functions는 scratch 이미지를 기반으로 빌드됩니다. 따라서 Artifact Registry에서 함수를 나타내는 컨테이너에는 기본 이미지가 없으며 배포 시 업데이트를 사용하는 함수보다 크기가 상당히 작습니다. 런타임 시 기본 이미지가 함수 이미지와 결합되어 완전한 함수가 생성됩니다. 자세한 내용은 scratch에서 빌드를 참조하세요.