임베디드 분석을 위한 보안 권장사항

Looker에 내장된 분석 기능 (PBL)을 사용하면 사용자와 고객이 모든 HTML 형식의 웹페이지, 포털, 애플리케이션에서 iframe에 삽입된 데이터를 탐색할 수 있습니다. iframe에서는 전체 Looker 애플리케이션을 실행하여 쿼리를 표시하는 데 필요한 데이터만 요청합니다. 처음부터 iframe은 외부 웹사이트 또는 애플리케이션의 데이터를 읽거나 쓸 수 없습니다.

데이터를 삽입하면 개인 정보 보호 또는 보안 문제가 발생할 수 있습니다. 이러한 문제를 완화하려면 Looker 관리자가 다음 권장사항을 따르는 것이 좋습니다.

  • 고객에게 Looker 콘텐츠를 삽입하는 경우 내부 분석에 사용하는 인스턴스와 별도의 Looker 인스턴스에 고객 콘텐츠를 설정하세요.
  • 데이터를 공개할 수 있는 삽입 사용자 중 액세스해야 하는 Looker 내장 인스턴스에만 데이터를 연결하세요.
  • 공개 삽입 URL에서 임의의 사용자 인증 정보를 사용자 인증 정보처럼 보호하며, 사용하지 않을 경우 공개 URL을 사용 중지합니다.
  • 할당된 external_user_id 값은 각 권한, 사용자 속성, 모델 집합마다 고유해야 합니다. 여러 대화형 사용자마다 서로 다른 삽입 세션에서 동일한 external_user_id를 사용하고 있지 않은지, 사용자마다 다른 권한, 사용자 속성 값 또는 모델 액세스 권한을 가진 단일 사용자에게 동일한 external_user_id를 사용하고 있지 않은지 확인해야 합니다.
  • 닫힌 시스템을 사용 설정합니다.
  • SSO 삽입 비밀번호를 삽입된 Looker 인스턴스의 관리자 인증 정보처럼 보호하며 사용하지 않는 경우에는 SSO 삽입을 사용 중지 상태로 유지합니다.
  • Looker 내장 인스턴스(SSO, SAML, Google OAuth, 2FA)에 강력한 인증을 사용합니다.

Looker는 사용자가 데이터에 액세스하는 데 필요한 인증 수준에 따라 공개, 비공개, 싱글 사인온(SSO) 등 다양한 유형의 임베딩 방식을 제공합니다. 이러한 방법 중 하나를 사용하여 자바스크립트를 사용하여 iframe과 상호작용할 수 있습니다.

공개 임베딩

Look의 공개 액세스 옵션을 사용 설정하면 HTML iframe 태그를 사용하여 외부 웹사이트에 시각화 또는 데이터 테이블을 삽입할 수 있습니다. 또한 Look URL을 공개적으로 공유하거나 Google 또는 Excel 스프레드시트 애플리케이션으로 데이터를 가져올 수 있습니다.

iframe 태그 내 URL과 삽입 URL은 임의의 토큰을 포함하고 있으며, 추측할 수 없습니다. 그러나 삽입된 URL이 있는 사용자는 누구나 데이터에 액세스할 수 있으며 추가적인 필터링이나 제한사항이 적용되지 않습니다. 공개 URL을 사용 설정하기 전에 특정 Look의 공개 URL을 만들고 공유할 때 보안상의 영향을 고려하는 것이 좋습니다.

공개 URL 및 공개 삽입 URL은 만료되지 않으며 취소할 수 없습니다. 공개 URL을 공유하면 실제 데이터가 아닌 쿼리가 공유됩니다.

비공개 임베딩

Look에 대한 공개 액세스를 허용하지 않으려면 iframe에 비공개로 Look을 삽입하거나 탐색 또는 대시보드를 삽입하여 콘텐츠를 보려면 Looker 로그인이 필요합니다.

인증된 사용자는 할당된 Looker 권한에 명시된 콘텐츠에만 액세스할 수 있습니다. Looker에서 권한을 변경하면 삽입 URL은 변경되지 않지만 사용자가 URL에 액세스할 때 사용자에게 표시되는 내용은 변경될 수 있습니다.

사용자가 인증되지 않은 경우 iframe에 오류 또는 로그인 화면을 표시할 수 있습니다. 하지만 iframe에서 로그인 화면을 사용 설정하는 것은 Looker의 동일 출처 보호와 호환되지 않습니다.

비공개 삽입 URL은 만료되지 않으며 취소할 수 없습니다. 하지만 이 링크는 Looker 인스턴스 및 해당 데이터에 액세스할 수 있는 사용자에게만 작동하므로 링크를 보내도 보안 문제가 발생하지 않습니다.

싱글 사인온(SSO) 임베딩

이 기능에 대한 라이선스를 업데이트하려면 계정 관리자에게 문의하세요.

싱글 사인온(SSO) 삽입은 비공개 삽입을 한 단계 더 발전시킵니다. SSO 삽입에서는 사용자가 Looker 사용자 계정을 통해 인증할 필요가 없습니다. 대신 iframe의 URL을 통해 자체 애플리케이션을 통해 인증할 수 있습니다. 인증은 새로운 브라우저 세션을 생성하고 브라우저에 쿠키를 발행합니다.

사용자 권한, 식별자, 속성이 모두 보안 비밀 키로 서명된 URL 내의 매개변수로 전달됩니다. 보안 비밀 키에 액세스할 수 있는 사용자는 누구나 사용자 권한으로, Looker 인스턴스가 연결된 모든 모델에 액세스할 수 있는 URL을 만들 수 있습니다. 서명된 URL을 생성하는 방법을 알아보려면 예시 코드를 참고하세요.

클릭재킹은 삽입된 코드 또는 스크립트에서 사용자가 알지 못하는 사이에 또는 동의를 받지 않고 함수를 실행하는 경우(예: 다른 작업을 하는 것처럼 보이는 버튼) 발생할 수 있는 브라우저 보안 문제입니다. 클릭재킹에는 일반적으로 정적 URL이 필요합니다. SSO 삽입용으로 생성된 URL은 보안 비밀이며 삽입을 보는 사용자에게만 URL이 있어야 합니다. SSO 삽입을 사용해도 외부 웹사이트로의 클릭재킹 위험이 증가하지 않습니다.

SSO 삽입 매개변수

iframe URL에 포함된 매개변수는 삽입된 사용자에게 표시되지만 수정할 수 없습니다. 그 사실 관계에는 다음이 포함될 수 있습니다.

  • user_attributes: 데이터를 추가로 필터링하는 데 사용됩니다. user_attributes는 강력하므로 Looker 인스턴스에 어떻게 적용할 수 있는지 고려하세요.
  • session_length: 필요한 최소 시간 미만으로 유지합니다.

user_attributes와 같은 일부 매개변수는 UI에서 숨길 수 있지만 여전히 삽입 URL로 인코딩됩니다. 예를 들어 비밀번호가 사용자의 user_attribute 내에 있는 값인 경우에는 바람직하지 않을 수 있습니다. 이 문제를 해결하는 한 가지 방법은 임시 그룹을 구성하고 비밀번호를 그룹 수준 속성으로 설정한 다음 삽입 URL에 그룹 ID를 전달하는 것입니다. 삽입된 세션이 종료된 후 그룹이 초과되지 않도록 그룹을 삭제할 수 있습니다.

URL의 서명된 부분에는 타임스탬프가 포함됩니다. URL이 로그인되면 시간이 현재 시간에서 +/- 5분이어야 합니다. URL에 로그인하는 데 사용할 수 있는 삽입 세션의 지속 시간을 session_length에서 지정할 수 있습니다.

SSO 삽입 액세스 관리

삽입된 콘텐츠의 URL을 작성하는 경우:

  • 필요한 가장 낮은 수준의 권한을 사용합니다.
  • 사용자가 액세스할 수 있어야 하는 특정 모델에만 액세스 권한을 할당합니다.
  • group_ids를 사용하여 사용자를 그룹에 할당하고 삽입 사용자가 Looker 폴더에 대한 액세스를 제어하도록 허용합니다.

Looker API

Looker의 API를 사용하면 프록시 애플리케이션 또는 역방향 프록시 서버를 통해 삽입된 콘텐츠에 액세스할 수 있습니다. 이 시나리오에서는 인증이 API3 키를 통해 이루어지며, 이 키는 특정 사용자에게 연결되며 이를 생성한 사용자와 동일한 권한을 갖습니다. API3 키는 클라이언트 ID와 클라이언트 보안 비밀 키로 구성됩니다.

API를 통한 삽입 액세스 관리

Looker의 API를 사용하여 삽입된 콘텐츠에 액세스할 수 있도록 설정할 때는 다음 조치를 취하는 것이 좋습니다.

  • 필요한 최소 권한 집합을 사용하여 프로그래매틱 API 액세스를 위한 전용 서비스 계정을 만듭니다.
  • API3 키를 구성하는 클라이언트 ID와 클라이언트 보안 비밀번호 보호 (SDK로 인증하는 경우)

API를 통해 삽입 사용자에 대해 설정되었지만 SSO URL에 지정되지 않은 사용자 속성은 다음에 SSO URL에 액세스할 때 기본값으로 재설정됩니다.

삽입된 자바스크립트 이벤트

공개, 비공개, SSO 또는 API를 통해 삽입 iframe을 설정한 후에는 자바스크립트를 통해 iframe과 상호작용할 수 있습니다. 현재 사용 중인 정보가 Looker의 iframe에서 제공된 것인지 확인하려면 자바스크립트 이벤트를 수신하세요.

허용 목록에 도메인을 추가할 때 와일드 카드를 사용하면 특정 하위 도메인만 자바스크립트 이벤트에 액세스할 수 있습니다.

자바스크립트 eval 함수를 사용하는 경우 eval 인수의 문자열 값이 Looker 서버 또는 CDN과 같이 신뢰할 수 있는 소스에서 제공되며 HTTPS 전송 중인지 확인합니다.

Looker CDN에서는 고객 데이터가 제공되지 않습니다. 자바스크립트 코드, HTML 페이지, CSS 스타일 등 Looker 웹 애플리케이션 정적 애셋만 CDN에서 제공됩니다.

고객 호스팅 배포

자체 Looker 인스턴스를 호스팅하는 것은 데이터, 특히 삽입된 콘텐츠에 대한 액세스를 잠그는 완벽한 방법처럼 보일 수 있습니다. 그러나 사용자가 인터넷을 통해 삽입 URL에 액세스해야 한다면 Looker를 직접 호스팅할 때의 특별한 이점이 없습니다.

다음의 경우 고객 호스팅 배포가 가장 적합할 수 있습니다.

  • 사용자는 인터넷을 통해 Looker에 액세스할 필요가 없습니다.
  • 프런트엔드 Looker에서 API를 통해 삽입된 콘텐츠에 액세스합니다.