Cloud Functions 보안

이 페이지에서는 Cloud Functions 리소스를 사용하여 상호작용을 제어하는 방법에 대한 간략한 개요를 제공합니다.

액세스 제어

Cloud Functions에 대한 액세스를 제어하는 방법에는 두 가지가 있습니다.

ID로 액세스 보안

Cloud Functions에 대한 액세스를 제어하는 한 가지 방법은 다음과 같습니다.

  • 항목이 제시하는 사용자 인증 정보를 평가하여 실제 항목인지 확인(Authentication)
  • ID에 부여된 권한을 기반으로 해당 항목이 리소스에 액세스하도록 허용(Authorization)

Cloud Functions는 Identity and Access Management(IAM)와 OAuth 2.0이라는 두 가지 유형의 인증 및 승인을 지원합니다.

Identity and Access Management 사용

IAM은 Cloud Functions에서 가장 일반적으로 사용되는 액세스 제어입니다. 두 가지 유형의 ID와 연동됩니다.

  • 서비스 계정: 함수, 애플리케이션, VM과 같이 사람이 아닌 사용자의 ID로 사용되는 특수 계정입니다. 이 방법을 사용하면 이러한 사람이 아닌 사용자를 인증하고 API를 호출하는 등의 작업을 수행할 수 있는 권한을 부여할 수 있습니다.
  • 사용자 계정: 이 계정은 개인 Google 계정 소유자 또는 Google 그룹과 같은 Google이 관리하는 항목에 속하는 사용자와 같은 사람을 나타냅니다.

설정 중에 요청하는 ID에 적절한 역할을 부여합니다. 역할은 리소스 컨텍스트에서 ID의 권한을 정의합니다. 이 프로세스의 설정 방법에 대한 자세한 내용은 IAM을 통한 액세스 승인을 참조하세요.

OAuth 2.0 사용

OAuth 2.0은 승인을 위한 개방형 표준입니다. IAM을 사용할 수 없는 상황이나 경우에 따라 적합한 경우에 사용할 수 있습니다. 두 가지 방법 중에서 선택하는 방법에 대한 자세한 내용은 서비스 계정 사용 및 관리 권장사항을 참조하세요.

Google Cloud Console을 사용하여 사용자 인증 정보로 사용되는 클라이언트 애플리케이션의 OAuth 2.0 클라이언트 ID(경우에 따라 클라이언트 보안 비밀번호)를 만듭니다.

클라이언트 애플리케이션은 access token을 제공하는 Google 승인 서버로 이 사용자 인증 정보를 전송합니다. 이 토큰을 사용하면 리소스에 액세스할 수 있습니다. 권한은 IAM에서와 같이 역할이 아닌 scope라는 값을 기반으로 합니다.

네트워크 기반 액세스 제어

개별 함수의 네트워크 설정을 지정하여 액세스를 제한할 수도 있습니다. 이를 통해 함수에서의 네트워크 인그레스 및 이그레스를 세밀하게 제어할 수 있습니다.

격리 및 샌드박스

내부적으로 함수 인스턴스는 gVisor 샌드박스 플랫폼을 사용하여 상호 격리됩니다. 기본적으로 함수는 다른 함수의 운영 환경에 액세스할 수 없습니다.