앱 데이터 보안 설정

앱 보안의 핵심으로, 앱에 개인 식별 정보(PII)와 같은 민감한 데이터나 기밀 데이터가 포함되지 않은 경우에도 모든 앱의 데이터에 보안을 설정할 수 있습니다.

보안 조치를 사용하여 데이터 보안 설정

  1. 사용자 또는 개발자로 앱 실행(앱 배포를 게시하는 사람) — 앱의 사용 사례에 맞는 적절한 실행 ID를 선택하여 다음을 결정합니다.

    • 사용자가 액세스할 수 있는 Google 드라이브 파일 — 앱 게시자의 파일 및 데이터 또는 사용자의 파일 및 데이터

    • 사용자가 액세스할 수 있는 G Suite 데이터 — 앱 게시자의 파일 및 데이터 또는 사용자의 파일 및 데이터

    • 메일 전송 및 캘린더 항목 만들기와 같은 Google Apps Script 서비스에 대한 API 호출의 ID

  2. 모델의 레코드에 대한 작업 보안 설정 — 레코드 작업에 역할, 스크립트, 소유자 액세스 권한(만들기, 저장, 로드, 삭제)을 사용합니다. 이를 통해 특정 사용자가 모델의 레코드에 특정 유형의 작업을 수행할 수 있습니다. 레코드에 대한 모든 유형의 작업에 하나의 액세스 권한 유형을 사용하거나 서로 다른 액세스 권한 유형을 사용할 수 있습니다.

  3. 모델 간 관계 보안 설정 — 관계(또는 일부 조합)에 상속, 역할 또는 스크립트 액세스 권한을 사용합니다. 이를 통해 특정 사용자가 권한의 양쪽에서 레코드를 연결할 수 있습니다.

권장사항

  1. 데이터 보안을 위해 UI 보안 사용 안함 — UI 보안 조치(페이지 보안 및 UI 요소의 공개 상태 제어)는 데이터 보안을 설정하지 않습니다. UI 보안은 누가 UI를 통해 무엇을 할 수 있는지를 제어합니다.
  2. 데이터 보안을 위해 클라이언트 스크립트 또는 애플리케이션 시작 스크립트 사용 안함 — 클라이언트 스크립트는 본질적으로 안전하지 않습니다. 스크립트 기반 보안은 서버에서 실행해야 합니다.

레코드에 대한 작업 보안 설정

앱에서 데이터 보안이 필요한 모델의 경우, 레코드를 만들고 로드, 저장, 삭제할 수 있는 사용자를 지정합니다. 이렇게 하면 결합 및 클라이언트 스크립트를 통한 레코드 액세스에 보안이 설정됩니다. 관리자만, 전체, 역할, 스크립트, 소유자 액세스 권한을 사용하여 레코드에 대한 작업에 보안을 설정할 수 있습니다.

예를 들어 모든 직원이 다른 직원의 연락처 정보를 검색하도록 허용할 수 있지만 직원 레코드를 만들고 수정 및 삭제하는 기능은 HR 부서의 관리자로 제한할 수 있습니다.

보안 설정에서 누구에게도 액세스를 허용하지 않는 경우에도 앱 관리자는 항상 모든 레코드에 대한 액세스 권한이 있습니다.

동일한 액세스 권한을 사용하여 모든 작업에 보안 설정

  1. App Maker를 열고 앱으로 이동합니다.

  2. 왼쪽 사이드바에서 작업에 보안을 설정할 모델을 클릭합니다.

  3. 보안 탭에서 고급 체크박스를 선택 해제합니다.

  4. 모델 권한에서 적용할 액세스 권한을 선택합니다(예: 관리자만, 전체, 역할, 스크립트, 소유자 또는 역할).

  5. 역할, 스크립트, 소유자에 대한 추가 정보를 제공합니다.

    • 역할 — 각 역할에 대해 역할 추가를 클릭하고 목록에서 기존 역할을 선택합니다. 새 역할 만들기를 수행해야 하는 경우 역할 관리를 클릭할 수도 있습니다.

    • 스크립트 — 스크립트 편집기에서 서버 승인 스크립트를 입력하거나 붙여넣습니다.

    • 소유자 — 결합 선택도구에서 필드를 선택합니다.

    • 소유자 또는 역할 — 결합 선택도구에서 필드를 선택합니다. 하나 이상의 역할을 추가합니다.

  6. 저장을 클릭하여 변경사항을 확인합니다.

다른 액세스 권한을 사용하여 만들기, 로드, 저장, 삭제 작업에 보안 설정

  1. App Maker를 열고 앱으로 이동합니다.
  2. 왼쪽 사이드바에서 작업에 보안을 설정할 모델을 클릭합니다.
  3. 보안 탭에서 고급 체크박스를 선택합니다.
  4. 만들기, 로드, 저장, 삭제에서 적용할 액세스 권한을 선택합니다(예: 관리자만, 전체, 역할, 스크립트, 소유자).
  5. 역할, 스크립트, 소유자에 대한 추가 정보를 제공합니다.

    • 역할 — 각 역할에 대해 역할 추가를 클릭하고 목록에서 역할을 선택합니다. 새 역할 만들기를 수행해야 하는 경우 역할 관리를 클릭할 수도 있습니다.

    • 스크립트 — 스크립트 편집기에서 서버 승인 스크립트를 입력하거나 붙여넣습니다.

    • 소유자 — 결합 선택도구에서 필드를 선택합니다.

    • 소유자 또는 역할 — 결합 선택도구에서 필드를 선택합니다. 하나 이상의 역할을 추가합니다.

  6. 저장을 클릭하여 변경사항을 확인합니다.

  7. 다른 유형의 작업에 대해 4~6단계를 반복합니다.

모델 간 관계 보안 설정

모델에 기밀 데이터가 포함되어 있는 경우 관계에 보안 설정이 되어 있는지 확인해야 합니다. 관계에 보안을 설정하지 못할 경우 사용자는 볼 수 없어야 하는 데이터에 액세스할 수 있게 됩니다.

관리자가 아닌 사용자가 관계가 있는 레코드를 요청할 때마다 App Maker는 레코드에 대한 로드 권한을 검사합니다. 사용자가 모든 모델에 대한 액세스 권한이 없는 경우 쿼리가 거부됩니다. 또한 관리자가 아닌 사용자가 관계에서 연결을 변경하는 경우 App Maker가 변경을 허용하기 전에 관계 권한을 확인합니다.

관리자만, 전체, 역할, 스크립트, 상속 액세스 권한을 사용하여 관계에 보안을 설정할 수 있습니다.

  • 상속 권한 — 관계의 양쪽에 레코드를 저장할 수 있는 사용자는 관계 전반에서 레코드를 연결할 수 있습니다(예: 직원 레코드를 부서 레코드와 연결).
  • 소유자 권한 — 관계에 필드가 없으므로 관계에 직접 사용할 수 없습니다. 그러나 관계의 한쪽에서 저장 작업에 소유자 권한을 사용하는 경우 레코드를 연결하는 기능은 해당 관계에 대한 소유자 권한으로 관리합니다. (관계의 양쪽에서 저장 작업에 소유자 권한을 지정할 수 있습니다.)

예를 들면 다음과 같습니다.

  1. HRAdmins 역할을 만들고 직원 모델과 부서 모델 간의 관계에 대한 역할 보안에 해당 역할을 추가합니다.
  2. 앱 배포를 수정하여 구성원을 HRAdmins 역할에 추가합니다.

    • HRAdmins 역할의 구성원은 직원 모델의 레코드와 부서 모델의 레코드를 연결할 수 있습니다.

    • 다른 사용자는 이러한 레코드를 연결할 수 없습니다.

관계 보안 설정

  1. App Maker를 열고 앱으로 이동합니다.
  2. 왼쪽 사이드바에서 관계에 보안을 설정할 모델을 클릭합니다.
  3. 관계 권한에서 보안을 설정할 관계를 찾습니다.
  4. 적용할 액세스 권한(예: 관리자만, 전체, 역할, 스크립트, 상속)을 선택합니다.
  5. 역할 및 스크립트에 대한 추가 정보를 제공합니다.
    • 역할 — 각 역할에 대해 역할 추가를 클릭하고 목록에서 역할을 선택합니다. 역할을 선택하기 전에 역할 추가를 수행해야 합니다.
    • 스크립트 — 스크립트 편집기에서 서버 승인 스크립트를 입력하거나 붙여넣습니다.
  6. 저장을 클릭하여 변경사항을 확인합니다.

레코드 소유권에 따라 데이터 보안 설정

포럼 샘플을 사용하면 사용자가 포럼을 만들어서 메시지를 포럼에 게시할 수 있습니다. 포럼을 만드는 사용자가 포럼의 소유자입니다.

소유자 액세스 권한을 사용하려면 다음 단계를 따르세요.

  1. 데이터 모델에서 레코드 소유자의 이메일 주소를 포함할 필드를 추가합니다(예: 소유자라는 문자열 필드).
  2. 데이터 모델에 대한 보안에서 레코드에 대한 작업(만들기, 저장, 로드, 삭제)에 레코드 소유자로 제한해야 하는 소유자 액세스 권한을 선택합니다. 소유자 권한은 관계에 직접 사용할 수 없습니다. 그러나 관계의 한쪽에서 저장 작업에 소유자 권한을 사용하는 경우 레코드를 연결하는 기능은 해당 관계에 대한 소유자 권한으로 관리합니다. (관계의 양쪽에서 저장 작업에 소유자 권한을 지정할 수 있습니다.)

  3. 레코드(예: 레코드에 대한 onCreate 이벤트)에서 소유자 필드의 값을 사용자의 이메일 주소로 설정합니다. 포럼 샘플의 포럼 데이터 모델에서 저장 및 삭제 작업에 대한 소유자 액세스 권한은 소유자만 포럼을 수정하거나 삭제할 수 있도록 지정합니다.