앱 보안 설정

앱 프로젝트, 앱 배포, 앱 데이터 보안을 필요에 맞춰 설정하여 앱 보안을 유지하고 개인정보 보호 요구사항을 준수하세요.

사용자 또는 앱 개발자 중 앱 실행자를 누구로 지정할지를 고민해 보세요(실행 ID).

앱 프로젝트 보안 설정

앱 프로젝트는 App Maker에서 개발, 공유, 배포하는 앱입니다. 앱 프로젝트는 앱 구성 방법을 설명합니다.

앱 프로젝트 소유자 파악

앱 프로젝트 소유자는 처음에 프로젝트를 만드는 사람을 말합니다. 프로젝트 소유자는 강력한 권한을 갖으며 앱 프로젝트 및 앱 배포를 완전히 제어할 수 있습니다. 프로젝트 관리자도 보안 설정에 관계없이 모든 앱 배포의 데이터에 대한 전체 액세스 권한이 있습니다. 앱 프로젝트 소유권은 다음 두 가지 방법으로 변경할 수 있습니다.

  1. 앱 프로젝트 소유자가 다른 드라이브 파일과 마찬가지로 앱 프로젝트의 소유권을 다른 사람에게 이전할 수 있습니다.
  2. G Suite 관리자가 소유권을 이전할 수 있습니다.

앱 프로젝트에 대한 액세스 권한 수정 제한

철저히 신뢰하는 사람에게만 앱 프로젝트 액세스 권한을 부여하세요. 앱 편집자는 다음을 변경할 수 있습니다.

  • 앱 UI
  • 권한
  • 스크립트
  • 데이터 액세스 권한

드라이브, 문서, 스프레드시트에서 파일을 공유하는 것과 같은 방식으로 앱 프로젝트를 특정 사용자(Google 계정) 및 그룹(Google 그룹스)과 공유할 수 있습니다. 프로젝트 공유는 아래의 액세스 수준에서 가능합니다.

  • 수정 가능수정 가능 액세스 권한이 있는 사용자는 앱을 개발하고 앱 배포를 게시할 수 있습니다. 또한 모든 앱 배포의 모든 데이터에 대한 전체 액세스 권한이 있습니다.
  • 보기 가능보기 가능 액세스 권한이 있는 사용자는 앱 프로젝트에 대한 읽기 전용 액세스 권한이 있습니다. 앱을 미리 보거나 앱 배포를 게시할 수 없지만, 전체 앱 배포의 모든 데이터에 대한 읽기 액세스 권한이 있습니다.

다음 표를 참고하여 사용자 및 그룹에 적합한 권한을 결정합니다.

작업프로젝트 소유자수정 권한보기 권한
배포 목록 보기
배포 게시
배포 수정 배포 소유자인 경우 배포 소유자인 경우
배포 다시 게시 배포 소유자인 경우 배포 소유자인 경우
배포 삭제 배포 소유자인 경우
배포에 데이터 가져오기 배포 소유자인 경우 배포 소유자인 경우
배포 데이터 내보내기 배포 소유자인 경우 배포 소유자인 경우

앱 프로젝트 파일의 안전한 내보내기, 공유, 가져오기

앱 프로젝트를 앱 프로젝트 파일에 내보낼 수 있습니다. 앱 프로젝트 파일을 공유하고 가져올 수 있습니다.

앱 프로젝트 파일은 앱 구성 방법에 대한 전체 레코드입니다. 여기에는 다음이 포함됩니다.

  • 데이터 모델
  • 사용자 인터페이스
  • 스크립트
  • 역할 정보(배포에 정의된 역할 멤버십은 아님)
  • 인스턴스 이름(앱이 커스텀 Cloud SQL 데이터베이스를 사용하는 경우)

여기에 앱 데이터(배포에 있음)는 포함되지 않습니다.

앱 프로젝트 파일은 공유 앱 프로젝트 대비 보안상의 우려가 적습니다. 개발자는 앱 프로젝트 파일을 가져오면 원래 앱 프로젝트와 시각적으로, 기능적으로 동일한 새 앱을 만듭니다. 하지만 가져온 앱은 원래 데이터베이스와 연결되어 있지 않고 보안 설정에 사용자 또는 그룹 이름을 포함하지 않습니다.

앱 프로젝트 보안에 대한 권장사항

  • 개발을 시작하기 전에 프로젝트 소유자를 파악하세요.
  • 개발자 및 사용자 액세스 요구사항에 따라 앱 액세스를 제한하세요.
  • 앱 프로젝트 및 앱 프로젝트 파일을 신뢰하는 사용자와만 공유하세요.
  • 앱 프로젝트 파일을 공유하는 것이 프로젝트 파일을 공유하는 것보다 더 안전할 수 있습니다.
  • 신뢰하는 사용자에게서만 앱 프로젝트 파일을 가져오세요.
  • 가져온 내용을 이해하고 있는지 확인하세요. 앱 프로젝트는 앱 보안 및 데이터 액세스의 일부 특징을 정의합니다.

앱 보안 설정

앱 보안 설정이 보안의 핵심입니다.

사용자 또는 개발자로 앱 실행

App Maker는 앱의 서버 부분을 실행할 때 앱 사용자 계정 또는 앱을 게시하는 개발자 계정과 같은 특정 계정을 사용합니다. App Maker는 앱이 서버 스크립트를 실행할 때와 Google Apps Script 서비스(G Suite 서비스, 스크립트 서비스, 고급 Google 서비스)에 대한 API 호출을 수행할 때 계정을 사용합니다.

자세한 내용은 사용자 또는 개발자로 실행을 참조하세요.

기본 관리자 역할 사용

기본 관리자 역할은 생성되는 역할과 다릅니다.

특징 관리자 역할 기타 역할
기본 제공

앱 프로젝트에 기타 역할을 추가합니다.
모델 생성 시 기본 데이터 보안

App Maker에서 레코드에 대한 모든 작업의 모델 권한은 관리자만에게만 주어집니다.

이 기본값은 상속 액세스 권한을 통해 레코드를 연결하는 데도 적용됩니다.


모델 권한은 다른 모델 권한을 설정할 때까지 관리자에게만주어집니다.

역할 액세스 권한을 변경하고 다른 역할을 추가할 수 있습니다.
기본 페이지 보안

기본 액세스 권한은 전체입니다.
모델, 관계, 페이지에 역할 기반 보안 추가
(App Maker 모델 및 페이지 편집기)
모델, 관계, 페이지에 역할 기반 보안 추가
(스크립트 및 결합 표현식)
작업 역할 및 작업 태스크 관리자에게 유용
(예: 작업 태스크가 다른 부서의 관리자)
다른 관리자가 모든 앱 기능 및 데이터에 동일한 방식으로 액세스할 때만 가능합니다.
앱 미리보기 App Maker는 개발자를 관리자 역할에 추가합니다.
미리보기에는 관리자 역할만 있고 이 역할은 앱 소유자만 해당됩니다.

권한을 테스트하려면 애플리케이션의 배포를 게시하고 역할 멤버십을 지정해야 합니다.
앱 게시하기 처음으로 앱 배포를 게시하면 App Maker는 앱 게시자를 관리자 역할에 추가합니다.

배포를 게시하는 동안 또는 이후에 관리자 역할의 구성원을 변경할 수 있습니다.
배포를 게시하는 동안 또는 이후에 다른 역할의 구성원을 지정할 수 있습니다.

역할 정의 및 사용

역할은 역할 기반 액세스 제어를 구현하는 데 사용할 수 있는 사용자 집합입니다. 여기에는 개별 Google 계정 및 Google 그룹스가 포함될 수 있습니다.

역할을 사용해 아래의 작업을 수행하세요.

  • 앱 배포 데이터에 액세스할 수 있는 사용자를 지정할 수 있습니다. 자세한 내용은 데이터 보안 설정을 참조하세요.
  • 특정 페이지에 액세스할 수 있고 특정 UI 요소를 볼 수 있는 사용자를 지정할 수 있습니다. 자세한 내용은 UI 보안 설정을 참조하세요.
  • 서버 스크립트를 통해 데이터에 대한 액세스를 제어할 수 있습니다. 역할은 액세스 권한을 사용하여 사용자 액세스를 제어하는 3가지 접근 방식 중 하나입니다. 다른 접근 방식은 스크립트 권한소유자 권한입니다. 역할 권한을 사용하지 않는 경우 역할을 추가할 필요가 없습니다.

역할 추가

  1. App Maker를 열고 앱 프로젝트로 이동합니다.
  2. 설정 settings chevron_right App Settings(앱 설정)를 클릭합니다.
  3. Security(보안) chevron_right Access Roles(액세스 역할)에 역할 이름을 입력합니다.

역할 사용 방법

역할을 정의하고 다음을 기반으로 사용자 및 그룹을 추가하세요.

  • 직무
  • 조직 내 사용자가 수행할 수 있는 태스크
  • 조직 내 사용자가 액세스 권한을 필수적으로 보유해야 하는 데이터

예를 들어 직원은 자신의 연락처 정보를 수정할 수 있고, 관리자는 휴가 요청을 승인할 수 있으며, 재무 부서 직원은 미수금 및 미지급금을 볼 수 있습니다.

역할은 앱 프로젝트에서 만들지만 해당 구성원은 앱 배포에서 지정합니다. 이렇게 하면 역할 멤버십이 다른 여러 버전(예: 테스트 버전 및 프로덕션 버전)의 앱을 게시할 수 있습니다. 앱을 다시 게시하지 않고 게시된 앱의 역할 멤버십을 수정할 수 있습니다.

역할을 사용하여 앱 보안을 제어하려면 다음을 수행하세요.

  1. 직무, 사용자가 수행하는 태스크, 데이터 액세스에 관한 요구사항을 기반으로 앱에 적합한 역할 결정
  2. 역할 추가
  3. 레코드에 대한 작업 보안 설정
  4. 모델 간 관계 보안 설정
  5. 페이지 보안 설정
  6. 서버 스크립트 보안 설정
  7. (선택사항) UI 요소의 공개 상태 제어
  8. 앱 게시역할에 구성원 추가

액세스 권한 설정

액세스 권한을 설정하여 특정 사용자에게 특정 데이터 및 앱 UI에 대한 액세스 권한을 부여할 수 있습니다. 액세스 권한을 설정하면 다음을 제어할 수 있습니다.

  • 사용자가 액세스할 수 있는 데이터 및 보유한 액세스 유형
  • 사용자가 볼 수 있는 페이지
  • 위젯 공개 상태(예: 사용자 페이지에서 관리자 페이지로 연결되는 링크로 관리자 역할 테스트 가능)

액세스 권한 적용 위치

  • 만들기, 로드, 저장, 삭제 작업의 경우 액세스 모델의 레코드 액세스. 고급 체크박스를 선택하면 만들기, 로드, 저장, 삭제 작업에 대한 액세스 권한을 각각 설정할 수 있습니다. 고급 체크박스를 선택 취소하면 모든 작업에 대한 액세스 권한을 설정할 수 있습니다.
  • 한 관계의 양측에서 모두 모델 또는 데이터 모델의 레코드를 연결할 수 있는 권한
  • 앱 UI에서 페이지에 대한 액세스

액세스 권한 유형

액세스 권한은 앱을 실행할 수 있는 특정 사용자에게 특정 데이터 및 앱 UI의 특정 페이지에 대한 액세스 권한을 부여합니다. 배포 설정에서 애플리케이션 액세스 권한으로 앱을 실행할 수 있는 사용자를 제한할 수 있습니다.

명시된 경우를 제외하고 레코드 작업(만들기, 로드, 저장, 삭제), 관계(특히 관계가 적용되는 레코드 연결용), 페이지의 다음 액세스 권한 중에서 선택할 수 있습니다.

권한설명
관리자만 앱의 배포 설정에서 관리자 역할에 추가된 사용자만 액세스 권한이 있습니다.
데이터 모델을 만들 때 App Maker는 관리자만을 레코드 작업 및 관계에 대한 기본 권한으로 사용합니다. 이렇게 하면 앱에 적합한 데이터 보안을 구현할 때까지 어느 정도의 데이터 보안이 가능합니다.
전체 조직 내 모든 사용자가 앱을 실행할 수 있는 경우 모두 액세스 권한이 있습니다. 그렇지 않으면 앱 배포를 실행할 수 있는 사용자만 액세스 권한을 갖게 됩니다. 배포 설정에서 애플리케이션 액세스 권한으로 앱을 실행할 수 있는 사용자를 지정합니다.
역할 지정된 역할의 구성원만 액세스 권한이 있습니다. 앱 프로젝트에서 역할을 추가합니다. 앱의 배포 설정에서 역할에 사용자를 추가합니다.
스크립트 서버 승인 스크립트에서 액세스 권한을 부여받은 사용자만 액세스 권한이 있습니다. 이 액세스 권한 유형을 선택할 때 표시되는 스크립트 편집기에서 스크립트를 작성합니다.
소유자 또는 역할 레코드 작업의 경우 레코드 소유자 또는 지정된 역할 구성원만 액세스 권한이 있습니다. App Maker가 사용자의 이메일 주소가 레코드의 필드 내용과 일치하는지 비교하여 사용자가 레코드 소유자인지 여부를 결정합니다. 사용할 필드를 지정합니다.
상속 관계의 경우 관계의 양쪽에서 데이터 모델에 레코드를 저장할 수 있는 사용자가 레코드를 연결할 수 있습니다.

앱에서 둘 이상의 권한 유형을 사용할 수 있습니다. 동일한 유형의 개별 인스턴스에도 마찬가지입니다. 예를 들어 잘 알려진 데이터 등의 데이터 모델은 모든 레코드 작업에 전체 권한을 사용할 수 있고, 개인 식별 정보를 포함하는 동일한 앱의 데이터 모델은 역할 또는 스크립트 권한을 사용할 수 있습니다.

기본 액세스 권한 사용

앱의 다음 요소를 만들 때 App Maker가 기본 권한을 부여합니다.

  • 모델관리자만. 데이터 소스를 통한 모델 레코드에 대한 액세스를 관리자 역할이 있는 구성원으로 제한합니다.
  • 관계상속. 관계가 적용되는 레코드를 연결할 수 있는 권한을 관계의 양측 모두 모델 또는 데이터 모델의 레코드를 저장할 수 있는 사용자로 제한합니다.
  • 페이지전체. 모든 사용자가 페이지를 볼 수 있습니다.

액세스 권한의 예

템플릿 및 샘플은 액세스 권한을 사용합니다.

  • 레코드 소유권 기반 액세스 — 사용자가 포럼 샘플을 사용하여 포럼을 만들고 메시지를 포럼에 게시할 수 있습니다. 포럼을 만드는 사용자가 포럼의 소유자입니다. 포럼 데이터 모델의 레코드에 대한 onCreate 이벤트는 레코드의 소유자 필드 값을 사용자의 이메일 주소로 설정합니다. 저장 및 삭제 작업에 대한 소유자 액세스 권한은 소유자만 포럼을 수정하거나 삭제할 수 있도록 지정합니다.

  • 관리자용 페이지기본 앱머티리얼 갤러리 템플릿에는 관리라고 하는 페이지가 있습니다. 이 페이지는 관리자만 권한을 사용하여 페이지에 대한 액세스를 관리자 역할이 있는 구성원으로 제한합니다. 역할 멤버십은 배포 수정을 통해 정의됩니다.

데이터 보안 설정

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

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

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

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

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

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

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

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

권장사항

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

UI 보안 설정

앱 보안의 일환으로, 페이지 및 UI 요소(위젯 또는 위젯 일부)에 보안을 설정할 수 있습니다. UI의 보안은 사용자가 어떤 요소를 볼 수 있는지(또는 스크린 리더에서 들을 수 있는지) 여부를 결정합니다.

App Maker를 사용하면 다음 두 가지 접근 방식 중 하나를 사용하여 앱의 UI에 보안을 설정할 수 있습니다.

  • 페이지 보안 설정 — 페이지 보안을 사용하여 사용자가 볼 수 있는 페이지를 제어합니다. 속성 편집기 editSecurity(보안)에서 Roles(역할) 또는 Script(스크립트) 액세스 권한을 각 페이지에 적용합니다.
  • UI 요소 보안 설정visible 속성을 사용하여 사용자가 페이지에서 볼 수 있는 요소를 제어합니다. 공개 속성은 위젯 및 복합 위젯 일부에 사용할 수 있습니다. 속성 편집기 editDisplay(디스플레이)에서 true(공개) 또는 false(비공개)로 확인되는 UI 요소의 결합 표현식을 정의합니다.

UI 보안 설정에 대한 추가 정보와 절차는 여기에서 참조하세요.

서버 스크립트 보안 설정

앱에서 민감한 데이터에 액세스하는 경우 서버 스크립트에 보안을 설정해야 합니다. 예를 들어 서버 스크립트는 데이터를 요청받은 사용자가 세션에서 활성 사용자임을 보장할 수 있습니다. App Maker는 서버 스크립트를 실행할 때 액세스 권한을 자동으로 검사하지 않습니다.

다음 조치 중 하나 또는 둘 모두를 사용하여 서버 스크립트에 보안을 설정하세요.

  • 서버 스크립트 숨기기 — UI에서 함수를 호출하지 않더라도 모든 앱 사용자가 서버 스크립트에서 정의한 모든 함수를 사용할 수 있습니다. 서버 스크립트에서만 호출할 수 있는 유틸리티 함수를 작성하려면 함수 이름에 밑줄을 추가합니다.
  • 숨기지 않은 서버 스크립트에서 보안 구현 — 숨기지 않은 서버 스크립트에서 액세스 권한 검사를 구현합니다.

배포 보안 설정

앱 배포는 사용자가 실행하는 앱입니다. 앱 배포는 앱 프로젝트에서 일부 보안 조치를 상속합니다.

배포에 보안을 설정하려면 다음을 지정합니다.

권장사항

  • 앱 배포 소유자 파악 — 앱이 배포되면 앱 게시자는 앱 소유자가 아닌 배포 소유자입니다. 앱 소유자는 배포의 소유권을 획득할 수 있습니다.
  • 올바른 앱 버전을 게시 또는 다시 게시하는지 확인 — 버전을 파악할 수 있도록 앱 버전에 태그를 지정합니다.
  • 앱을 게시하기 전과 게시한 후에 철저하게 테스트 — 테스트에는 권한이 다른 사용자로 앱 실행이 포함되어야 합니다. UI 보안 우회도 포함해야 합니다.

앱 배포를 실행할 수 있는 사용자 지정

기본적으로 조직 내 모든 사용자가 앱 배포를 실행할 수 있습니다.

앱 배포(Google 계정에서 또는 Google 그룹스를 통해 그룹에서 직접 식별)를 실행할 수 있는 특정 사용자 허용 목록을 만들 수 있습니다. 앱을 실행할 수 없는 사용자에게 앱에 대한 액세스 권한이 없다는 메시지가 표시됩니다.

특정 사용자가 앱 배포를 실행하도록 허용하려면 다음을 수행하세요.

  1. App Maker를 열고 앱 프로젝트로 이동합니다.
  2. 설정 settings Deployments(배포)를 클릭합니다.
  3. 배포 행에서 수정을 클릭합니다.
  4. 애플리케이션 액세스에서 특정 사용자에게만 액세스 허용을 선택합니다.
  5. 특정 사용자(Google 계정), 그룹(Google 그룹스) 또는 둘 모두의 이메일 주소를 입력합니다.
  6. 저장을 클릭합니다. App Maker가 자동으로 배포를 다시 게시합니다.

역할에 구성원 추가

역할 액세스 권한을 사용하여 데이터 또는 페이지에 보안을 설정하는 경우 역할에 구성원을 추가해야 합니다. 개인(Google 계정), 그룹(Google 그룹스) 또는 둘 모두의 이메일 주소를 지정합니다.

역할에 구성원을 추가하려면 다음을 수행하세요.

  1. App Maker를 열고 배포에서 Google 스프레드시트로 데이터를 내보내려는 앱으로 이동합니다.
  2. 설정 settings chevron_right Deployments(배포)를 클릭합니다.
  3. 역할에 구성원을 추가할 배포에 대한 테이블 항목에서 수정을 클릭합니다.
  4. 역할 액세스 권한이 있는 사용자 섹션에서 특정 사용자(Google 계정) 또는 그룹(Google 그룹스)의 이메일 주소를 입력합니다.
  5. 저장을 클릭합니다. App Maker가 앱 배포를 다시 게시합니다. 다시 게시된 배포의 역할 멤버십이 변경되었습니다.

앱 미리보기

미리보기에 다음 보안 기능이 포함됩니다.

  • 비공개 미리보기 URL — 앱을 미리 보는 개발자만 해당 미리보기를 볼 수 있습니다. 미리보기 URL을 사용하면 다른 사용자가 미리보기 배포를 실행할 수 없습니다.
  • 미리보기-상주 데이터 — Cloud SQL의 데이터가 미리보기에 포함됩니다. 공유 앱 프로젝트를 미리 보는 여러 개발자가 각자의 데이터로 서로 다른 미리보기를 만듭니다(개발자가 데이터를 추가하지 않은 경우에는 데이터 없음).

앱 게시

앱을 게시하면 앱을 실행할 수 있는 사용자에 대한 제한사항에 따라 다른 사용자가 앱을 실행할 수 있습니다. 사용자가 앱에서 수행할 수 있는 작업과 사용자가 볼 수 있는 데이터는 앱 개발자가 추가하는 보안 조치에 따라 달라질 수 있습니다.

보안상의 이유로, 데이터 보안이 설정되지 않은 게시된 앱에서 레코드에 대한 작업의 초기 액세스 권한은 관리자만입니다.

데이터 가져오기 및 내보내기

App Maker를 사용하면 배포를 게시한 사용자가 데이터를 배포로 가져오고 데이터를 배포에서 내보낼 수 있습니다. 예를 들어 데이터에 개인 식별 정보(PII)와 같은 민감한 데이터나 기밀 데이터가 포함된 경우 이러한 작업 모두 보안 위험을 초래할 수 있습니다.

  • 데이터 가져오기 — Google 스프레드시트에서 App Maker의 배포에 있는 모델로 데이터를 가져오면 모든 데이터를 배포로 가져옵니다. Google 스프레드시트에 민감한 데이터나 기밀 데이터가 포함되어 있는 경우 앱 배포에도 해당 정보가 포함됩니다.
  • 데이터 내보내기 — 모델에서 App Maker 앱으로 데이터를 내보내면 모든 데이터를 Google 스프레드시트로 내보냅니다. 모델에 민감한 데이터나 기밀 데이터가 포함되어 있는 경우 스프레드시트에도 해당 정보가 포함됩니다.