AppSheet security

AppSheet의 보안 강화

Security : The Essentials

앱시트 편집기 Security tab(보안 탭)에는 보안 영역을 사용자 정의할 수 있는 여러 섹션이 있습니다.
로그인 필요 섹션에서 사용자가 앱을 사용하기 위해 로그인 하도록 요구할 수 있습니다.
보안 필터를 사용하고, 도메인 통합 탭의 도메인 그룹을 사용하여 사용자 액세스를 제어할 수 있습니다.

AppSheet 보안은 다음을 기반으로 합니다.

1. Authentication(인증) : 애플리케이션의 사용자를 안정적으로 식별할 수 있습니다.
2. Application access control(애플리케이션 액세스 제어) : 애플리케이션을 실행할 수 있는 사람을 제어할 수 있습니다.
3. Data access control(데이터 액세스 제어) : 각 사용자에게 표시되는 데이터를 제어할 수 있습니다.
4. Auditing(감사) : 애플리케이션 사용을 모니터링 할 수 있습니다.

Understanding AppSheet Security(AppSheet 보안 이해하기)

AppSheet 보안이 어떻게 작동하는지 알아보겠습니다.
AppSheet로 만든 앱은
1) AppSheet의 아키텍처
2) 클라우드 및 모바일 기술의 기본 보안 인프라
3) 사용자가 제어할 수 있는 보안 옵션으로 인해 안전합니다.

보안 관점에서 AppSheet 아키텍처 요약

Cloud data(클라우드 데이터)
데이터는 클라우드 데이터 공급자(Google Drive, Dropbox, Box, Smartsheet, Office365 등)에 저장됩니다. AppSheet는 데이터를 저장하지 않습니다.

Authorization(권한 부여)
애플리케이션을 생성할 때 클라우드 저장소 계정으로 AppSheet에 로그인하고 AppSheet에 사용자를 대신하여 클라우드 저장소 데이터를 읽고 쓸 수 있는 권한을 부여합니다. 이 과정에서 업계 표준 OAuth 프로토콜이 사용됩니다. 이 문서에서 클라우드 제공자에 대한 권한에 대해 자세히 알아볼 수 있습니다.

클라우드 제공자에 대한 AppSheet 권한
AppSheet는 업계 표준 OAuth 프로토콜을 사용하여 클라우드 파일 시스템에 대한 액세스를 보호합니다.
Google 계정을 통해 AppSheet에 가입할 때의 프로세스를 설명하겠습니다. 계정이 Dropbox, Box 등을 사용하는 경우 프로세스는 유사합니다.
앱 제작자(앱을 만드는 사람)와 앱 사용자(브라우저 또는 기기에서 해당 앱을 사용하는 사람)에게 요청되는 권한이 다릅니다.

어떤 경우에도 AppSheet는

권한을 사용하여 관련 없는 정보를 읽지 않습니다.

이 정보를 다른 당사자에게 판매하지 않습니다.

앱 플랫폼 서비스를 제공하는 것 이외의 어떤 이유로든 이러한 권한을 활용하지 않습니다.

앱 제작자
당사 웹사이트에 가입하면 요청된 권한 집합으로 AppSheet를 승인할 의향이 있는지 묻는 Google 페이지로 리디렉션됩니다.

동의하는 내용과 이유는 다음과 같습니다.

AppSheet가 귀하의 신원을 확인하도록 합니다. 이는 고유한 ID를 각 사용자와 연결할 수 있도록 하기 위한 것입니다.

AppSheet에 이메일을 알립니다. 이는 귀하가 앱을 만들 때 이메일을 보낼 수 있도록 하기 위한 것입니다.

AppSheet가 파일과 폴더를 읽도록 합니다. 앱에서 사용할 스프레드시트와 이미지를 선택할 수 있도록 하기 위함입니다.

AppSheet가 클라우드 파일 시스템에 데이터 복사본을 만들고 해당 데이터를 편집할 수 있도록 합니다.
이것은 앱의 복사본을 만들 수 있도록 하기 위한 것입니다.

AppSheet가 스프레드시트를 읽고 쓸 수 있도록 합니다.


우리는 사용자의 데이터에 대한 권한을 요청하는 것을 원하지 않으며 유용한 기능을 제공하면서 최소한의 권한을 유지하기 위해 노력했습니다. 인증 프로세스를 거치면 Google과 AppSheet는 내부 식별자(액세스 토큰이라고 함)를 사용하여 AppSheet 소프트웨어가 사용자를 대신할 수 있도록 합니다.

이것을 간단히 설명하자면 :

앱 중 하나가 사용될 때마다 AppSheet는 Google에서 데이터를 읽고 써야 합니다. 액세스 토큰을 사용하여 이 작업을 수행합니다.
귀하의 액세스 토큰은 다른 사람의 앱과 함께 사용되지 않으므로 귀하의 데이터가 적절하게 보호됩니다.

Google 드라이브 옵션으로 이동하고 AppSheet를 비활성화하여 권한을 완전히 취소할 수 있습니다.

앱 사용자
앱이 공용 앱인 경우 사용자에게 로그인하라는 메시지가 표시되지 않으며 AppSheet에서 권한을 요청하지 않습니다.
앱에 로그인이 필요한 경우(예: Google 계정을 통해) 로그인의 일부로 사용자에게 AppSheet에 일부 권한을 제공하라는 메시지가 표시됩니다.

동의하는 내용과 이유는 다음과 같습니다.

그들은 AppSheet가 자신의 신원을 확인하도록 합니다. 이는 고유한 ID를 각 사용자와 연결할 수 있도록 하기 위함 입니다.

그들은 AppSheet에 이메일을 알립니다. 이는 귀하의 앱에 대한 보안 및 액세스 제어를 제공하기 위해 그들의 계정을 귀하의 앱 사용자 목록과 일치시킬 수 있도록 하기 위한 것입니다. 이를 "기본" 인증 범위라고 하며 현재 Google 드라이브, Office365 및 Dropbox 제공업체에 대해 구현되어 있습니다.
다른 공급자는 앱 사용자에게 앱 작성자와 동일한 권한(전체 범위)을 요청할 것입니다.


앱이 특정 기능(예: Private Tables 또는 As-App-User 실행)을 사용하는 경우 AppSheet는 사용자에게 앱 작성자와 동일한 권한을 요청해야 합니다.
이러한 기능은 자주 사용되지 않습니다.
앱은 클라우드의 데이터를 기반으로 구축됩니다
생성한 애플리케이션은 AppSheet가 보안 클라우드 데이터베이스에서 유지 관리하는 애플리케이션 정의에 저장됩니다.
AppSheet 클라우드 서비스와 클라우드 스토리지 공급자 간의 통신은 보안 웹 프로토콜(HTTPS)을 사용합니다.

앱은 모바일 장치에서 실행됩니다
모바일 장치와 AppSheet 클라우드 서비스 간의 통신은 HTTPS(보안 웹 프로토콜)를 사용합니다.

Local data storage(로컬 데이터 저장)
애플리케이션 정의 및 필요한 모든 데이터는 모바일 장치에 복사되고 HTML5 로컬 저장소를 사용하여 장치에 안전하게 저장됩니다.

Data synchronization(데이터 동기화)
모바일 장치에서 실행되는 AppSheet 응용 프로그램을 통해 데이터를 추가, 업데이트 또는 삭제할 때 모든 변경 사항은 클라우드 데이터 공급자에 저장됩니다. AppSheet 클라우드 서비스는 모바일 앱을 사용하는 클라우드 데이터 공급자와 연결하는 중개자 역할을 합니다.

AppSheet의 보안 질문과 답변


누가 내 클라우드 데이터에 직접 액세스할 수 있습니까?
다른 AppSheet 사용자는 클라우드 데이터에 직접 액세스할 수 없습니다.
해당 권한은 귀하 및 귀하의 클라우드 계정 로그인 정보를 알고 있는 사람에게만 있습니다.

앱에서 활성화한 업데이트 권한에 따라 앱 사용자는 클라우드 호스팅 스프레드시트에 AppSheet로 빌드한 앱을 통해 노출되는 값을 추가, 편집 또는 삭제할 수 있습니다. 이 문서의 뒷부분에 설명된 대로 이러한 권한을 제어할 수 있습니다.

AppSheet 클라우드 서비스에는 클라우드 데이터를 읽고 쓰기 위해 사용자를 대신할 수 있는 권한이 있습니다.
이러한 권한은 앱 생성 및 앱 실행의 특정 목적으로만 사용됩니다. AppSheet는 데이터 사본을 저장하지 않습니다.
또한 OAuth 프로토콜이 작동하는 방식으로 인해 언제든지 AppSheet에 부여된 액세스 권한을 비활성화 할 수 있습니다.
누가 내앱을 액세스 할 수 있고, 어떻게 제어합니까?
애플리케이션에 대한 액세스 권한을 제어하는 것은 3단계 프로세스입니다.
1) 사용자 인증 필요 옵션을 설정합니다.
2) 인증 공급자를 선택합니다.
3) 애플리케이션을 사용할 수 있는 사용자를 지정합니다.

먼저, 보안>로그인 필요 창으로 이동하고 "사용자 인증 필요" 옵션을 설정하여 사용자 인증 필요 옵션을 설정합니다.
이렇게 하는 경우 애플리케이션을 배포할 때 사용자당 지불 요금제 중 하나에 등록해야 합니다.
"사용자 인증 필요"는 앱당 지불 요금제에서 지원되지 않습니다.

그런 다음 인증 공급자를 선택합니다.
AppSheet는 사용자 이름과 암호의 자체 사용자 레지스트리를 유지 관리하지 않습니다. 대신 사용자는 Google, Dropbox, Office365, Box 또는 Smartsheet와 같은 클라우드 공급자를 사용하여 로그인해야 합니다.

기본적으로 인증 제공자는 데이터가 저장되는 클라우드 데이터 제공자가 됩니다.
예를 들어 클라우드 데이터 공급자가 Google인 경우 기본 인증 공급자는 Google입니다.

또는 Google, Dropbox, Office365, Box 및 Smartsheet가 포함된 "인증 공급자" 드롭다운 목록에서 공급자 중 하나를 선택할 수 있습니다.
예를 들어 클라우드 데이터 공급자가 Google인 경우에도 Dropbox 를 인증 공급자로 선택할 수 있습니다.
모든 앱 사용자에게 Dropbox 계정이 있는 경우 이 옵션을 선택 할 수 있습니다.

마지막으로 Google, Dropbox, Office365, Box 및 Smartsheet를 포함한 모든 공급자를 선택할 수 있습니다.
"인증 공급자" 드롭다운 목록 상단에 나타나는 빈 인증 공급자를 선택하여 이 작업을 수행합니다.
마지막으로 애플리케이션을 사용할 수 있는 사용자를 지정합니다.

일반적으로 "허용 목록"에 애플리케이션을 사용할 수 있는 각 사용자의 이메일 주소를 입력합니다.
보안 > 로그인 필요 창으로 이동하고 "사용자 관리"를 클릭한 다음 "초대할 사람" 목록에 각 사용자의 이메일 주소를 입력합니다.
여러 이메일 주소를 쉼표로 구분하여 입력할 수 있습니다. 그런 다음 "설치 링크 보내기"를 클릭하십시오.

또는 "전체 도메인 추가"를 클릭하고 "@mycompany.com"과 같은 도메인 이름을 입력하여 도메인의 모든 사용자를 포함할 수 있습니다.

마지막으로 "로그인한 모든 사용자 허용" 옵션을 설정하여 허용 목록 입력을 피할 수 있습니다.
특정 사용자 목록에 대한 액세스를 제한할 필요는 없지만 이메일과 같은 사용자별 정보에 액세스 하거나 보안 필터 또는 개인 테이블과 같은 개인화 기능을 사용하려는 경우에만 이 옵션을 활성화 하십시오.

내 앱의 사용자도 클라우드 스토리지에 있는 내 데이터에 액세스해야 합니까?
아니요.
앱 작성자는 클라우드 데이터에 직접 액세스할 수 없는 사람들에게 앱을 배포할 수 있습니다.
이는 기본 실행 모드('앱 작성자로')가 앱 작성자의 ID를 사용하여 데이터에 액세스하도록 AppSheet에 지시하기 때문에 작동합니다.
일반적으로 사용자가 클라우드 데이터에 직접 액세스하도록 허용해서는 안 됩니다.
대신 애플리케이션을 통해서만 변경할 수 있어야 합니다.

드문 경우지만, 앱 사용자로 실행하도록 선택할 수 있습니다.
이 경우 사용자에게 클라우드 스토리지의 데이터에 대한 직접 액세스 권한을 부여해야 합니다.
보안에 미치는 영향을 완전히 이해한 경우에만 이 작업을 수행하십시오.

액세스 모드 : 앱 작성자 또는 앱 사용자
사람들이 앱에서 액세스할 수 있는 항목을 결정하는 방법 알아보기 구축한 모바일 앱은 AppSheet 백엔드와 통신하며, 데이터를 읽거나 업데이트하기 위해 클라우드 데이터 공급자(예: Google Drive)와 통신하는 AppSheet 백엔드입니다.
보안상의 이유로 클라우드 데이터 공급자는 AppSheet에 권한을 부여한 후에만 AppSheet가 데이터에 액세스할 수 있도록 합니다.
사용자 또는 앱 작성자는 로그인할 때마다 AppSheet에 자신을 대신할 수 있는 권한을 부여합니다.

중요 : 연결된 데이터 원본의 콘텐츠는 해당 데이터 원본을 보거나 편집할 권한이 없더라도 애플리케이션에 초대한 앱 사용자가 잠재적으로 보고 업데이트할 수 있습니다.
예를 들어, 귀하는 Google 시트의 유일한 뷰어/편집자일 수 있지만 앱에 연결된 경우 해당 시트 데이터가 모든 앱 사용자에게 노출될 수 있습니다. 추가 설정의 보안 > 보안 필터에서 액세스 모드를 찾을 수 있습니다. 테이블별로 액세스 모드를 설정할 수 있습니다.
예를 들어 아래 이미지에서 Recipients 테이블에 대한 액세스 모드를 사용자 지정할 수 있습니다.



As App Creator (앱 제작자로서),
기본 실행 모드('앱 작성자로')에서 AppSheet는 앱 작성자의 ID를 사용하여 데이터에 액세스합니다.
앱 작성자가 스프레드시트에 액세스할 수 있는 경우 스프레드시트에 직접 액세스할 수 없는 다른 사람에게 앱을 배포할 수 있습니다.
대부분의 사용자는 스프레드시트에 대한 직접 액세스를 애플리케이션 작성자에게만 제한할 수 있기 때문에 '앱 작성자로'를 선택합니다.

As App User (앱 사용자로서),
실행 모드를 '앱 사용자'로 설정할 수 있습니다. 이 모드에서 AppSheet는 앱 사용자의 ID를 사용해 데이터에 액세스합니다.
애플리케이션은 로그인이 필요하며 모든 애플리케이션 사용자는 소스 스프레드시트 및 폴더에 직접 액세스할 수 있는 권한이 있어야 합니다.
"앱 사용자" 실행 모드의 이점은 무엇입니까?
1) 일부 사용자는 클라우드 데이터 공급자의 권한에 전적으로 의존하기 때문에 더 엄격한 보안 메커니즘으로 간주합니다.
2) 문서의 모든 업데이트의 감사 기록을 유지 관리하는 Google Drive 및 Box와 같은 클라우드 공급자를 위한 감사 메커니즘이 될 수 있습니다.
각 감사 기록 레코드에는 변경한 사용자의 ID가 포함 됩니다. 이 옵션은 모바일 장치의 사용자 ID와 관련이 없습니다.
로그인하는 사용자는 항상 현재 사용자이므로 USEREMAIL과 같은 표현식은 앱 작성자가 아니라 항상 현재 로그인한 사용자를 반영합니다.
사용자는 내 앱으로 무엇을 할 수 있습니까? 그들이 내 데이터를 삭제할 수 있습니까?
앱 제작자는 사용자가 데이터를 변경할 수 있는 경우 이를 제어합니다.
예를 들어 사용자가 데이터를 추가, 업데이트, 삭제 또는 읽기만 할 수 있는지 여부를 제어할 수 있습니다.

다음과 같이 테이블에 적용할 수 있는 변경 사항을 제어할 수 있습니다.
1) 데이터 > 테이블 창으로 이동합니다.
2) 테이블 이름 왼쪽에 있는 아이콘을 클릭합니다.
3) "업데이트 허용" 드롭다운에서 액세스 모드를 선택합니다.

다음과 같이 슬라이스에 적용할 수 있는 변경 사항을 제어할 수 있습니다.
1) 데이터 > 조각 창으로 이동합니다.
2) 슬라이스 이름 왼쪽에 있는 아이콘을 클릭합니다.
3) "업데이트 모드" 드롭다운에서 액세스 모드를 선택합니다.
앱의 특정 사용자가 볼 수 있는 데이터를 제한할 수 있습니까?
앱 사용자는 앱을 통해 노출하도록 선택한 데이터만 볼 수 있습니다. 실제로 특정 클래스의 사용자는 특정 데이터 하위 집합을 볼 수만 있고 다른 사용자는 다른 데이터에 액세스할 수 있기를 원할 수 있습니다. 슬라이스를 사용하여 이 작업을 수행할 수 있습니다.

수업 과제 앱의 경우 학생들이 완성된 과제를 제출하고 과거 제출물을 계속 볼 수 있도록 하고 싶지만 다른 학생의 완성된 과제는 볼 수 없도록 하고 싶습니다. 이를 수행하는 가장 좋은 방법은 로그인한 사용자의 할당만 표시하는 슬라이스를 만드는 것입니다.
Editor>Data>Slices 탭에서 이 작업을 수행한 다음 "+Slice"를 클릭합니다.



먼저 슬라이스 이름을 지정한 다음 몇 가지 매개변수를 지정해야 합니다. 이 경우 새 제출물이 표시되도록 "제출" 테이블을 선택합니다.
또한 학생들이 제출물을 추가할 수만 있고 삭제하거나 편집할 수 없도록 하기 위해 슬라이스의 업데이트 모드로 "ADDS_ONLY"를 선택합니다.



로그인한 학생이 자신의 현재 및 과거 제출물만 볼 수 있도록 하려면 학생 열을 기준으로 필터링해야 합니다. 앱에 로그인이 필요했기 때문에 필터 조건은 "사용자 이름과 일치"여야 합니다. 그러면 앱은 현재 로그인한 사용자의 이름과 일치하는 데이터만 표시합니다.

그러면 햄버거 메뉴에 현재 로그인한 사용자의 이름이 표시되는 것을 볼 수 있습니다.
슬라이스가 Justin A. Sample이 자신의 과거 할당만 볼 수 있도록 하는 방법을 아래에서 확인할 수 있습니다.
누가 모바일 장치의 데이터에 액세스할 수 있습니까?
모바일 장치에서 AppSheet는 웹 브라우저와 관련된 산업 표준 "로컬 저장소" 기술을 사용합니다.
웹 브라우저 기술은 AppSheet 모바일 앱 내부에 내장되어 있으며 실제 구현은 HTML5 기술을 주로 활용합니다.
사용자가 앱에 액세스하려면 로그인해야 하므로 각 사용자의 데이터는 다른 사용자의 데이터와 격리됩니다.
여러 사용자가 동일한 장치에서 앱을 사용하더라도 장치에 다른 사용자로 로그인하는 한 데이터는 격리됩니다.
요컨대, 기기에서 표준 보안(사용자가 비밀번호로 로그인)을 따른다면 귀하의 앱은 웹 기술을 기반으로 하는 다른 모든 앱만큼 안전할 것입니다.

앱 사용자가 내 조직을 떠나고 내 앱 사용을 중지하기를 원하면 어떻게 됩니까?
언제든지 사용자 허용 목록으로 돌아가 이전에 추가한 사용자를 제거할 수 있습니다.
모바일 앱에서 제거된 사용자는 AppSheet 클라우드 서비스와 연결할 때 실패합니다. (일반적으로 데이터를 동기화하거나 저장할 때)

극단적인 방법으로 앱의 복사본을 만들고 이전 앱을 삭제할 수도 있습니다.
이전 항목이 작동을 멈추고 새 항목에 대한 액세스를 제어할 수 있습니다. 권한이 필요한 다른 사용자에게 새 앱 링크를 재배포해야 합니다.