BeyondCorp Enterprise는 관리자가 최종 사용자의 액세스를 선별하고 분석하기 위해 사용할 수 있는 문제 해결 도구를 제공합니다.
BeyondCorp Enterprise를 통해 기업은 컨텍스트 기반 애플리케이션 액세스를 제공하는 고급 규칙을 만들 수 있습니다. 하지만 위치 제한부터 기기 규칙까지 리소스에 여러 액세스 규칙을 적용하는 경우 정책이 평가되는 방법과 최종 사용자가 대상 리소스에 대한 액세스 권한이 있는지 여부를 확인하기 어려울 수 있습니다.
정책 문제 해결 도구를 사용하면 액세스가 성공 또는 실패한 이유를 확인할 수 있으며, 필요한 경우 정책을 변경하고 최종 사용자가 컨텍스트를 수정하여 액세스를 허용하거나 binding을 삭제하여 예기치 않은 액세스를 거부하게 할 수 있습니다.
정책 문제 해결 도구는 여러 사용자 그룹을 위해 여러 리소스에 여러 규칙을 적용해야 하는 조직에 있어서 귀중한 도구입니다.
시작하기 전에
정책 문제 해결 도구는 프리미엄 기능이며 BeyondCorp Enterprise 라이선스가 필요합니다.
정책 문제 해결 도구의 효과를 극대화하기 위해서는 보안 검토자 역할(roles/iam.securityReviewer
)이 필요합니다. 이 역할은 적용 가능한 모든 Cloud IAM 정책을 읽을 수 있도록 보장합니다.
기기 액세스 문제를 해결하려면 해당 세부정보를 볼 수 있는 권한이 있어야 합니다. 대상 리소스와 연결된 정책에 기기를 암호화하도록 요구하는 액세스 수준과 같은 기기 정책이 포함된 경우, 대상 주체의 기기 세부정보를 검색하는 권한이 확인되지 않은 한 정확한 결과를 얻지 못할 수 있습니다. Google Workspace 최고 관리자, 서비스 관리자, 모바일 관리자는 일반적으로 기기 세부정보를 볼 수 있는 액세스 권한을 갖습니다. 최고 관리자, 서비스 관리자, 모바일 관리자가 아닌 사용자가 액세스 문제를 해결하도록 하려면 다음 단계를 완료합니다.
- 서비스 > 휴대기기 관리 > 관리 기기 및 설정 권한(관리 콘솔 권한 아래)이 포함된 커스텀 Google Workspace 관리자 역할을 만듭니다.
- 관리 콘솔을 사용하여 사용자에게 역할을 할당합니다.
Google Cloud 그룹에서 부여된 리소스에 대해 액세스 권한 문제를 해결하려면 해당 구성원을 볼 수 있는 권한이 있어야 합니다. 정책에 그룹이 포함된 경우 이를 열기 전 그룹 세부정보를 볼 수 있는 권한이 있어야 합니다. 일반적으로 Google Workspace 최고 관리자와 그룹 관리자에게는 그룹 멤버십을 볼 수 있는 권한이 있습니다. 최고 관리자 또는 그룹 관리자가 아닌 사용자가 액세스 문제를 해결하도록 하려면 다음 단계를 완료합니다.
- 그룹 > 읽기 권한(Admin API 권한 아래에 위치)이 포함된 커스텀 Google Workspace 관리자 역할을 만듭니다.
- 사용자에게 역할을 할당합니다. 그러면 사용자가 개발자 도메인 내 모든 그룹의 멤버십을 보고 더욱 효율적으로 액세스 문제를 해결할 수 있습니다.
커스텀 역할 권한은 선택사항입니다. 커스텀 역할 보기 권한이 없으면 커스텀 역할을 포함하는 binding에서 주체에 액세스 권한이 있는지 여부를 확인하지 못할 수 있습니다.
문제 해결 도구 워크플로 개요
거부된 액세스 문제 해결
거부된 액세스 문제를 해결하려면 IAP로 보호되는 애플리케이션의 오른쪽에 있는 세 개의 점, 설정을 클릭한 다음 문제 해결 URL 생성을 선택하여 IAP 설정에서 IAP 리소스에 대한 기능을 사용 설정할 수 있습니다. 정책 문제 해결 도구의 효과를 극대화하기 위해서는 IAP 설정 관리자 역할(roles/iap.settingsAdmin
)이 필요합니다. 이 역할이 있으면 모든 IAP 리소스의 IAP 설정을 검색하고 업데이트할 수 있습니다.
문제 해결 URL은 사용 설정된 경우 기본 403 페이지에만 제공됩니다.
정책 문제 해결 도구는 대상 IAP 리소스의 모든 유효 정책에 대해 자세한 평가 결과를 볼 수 있는 사용자 인터페이스를 제공합니다. 사용자 액세스가 실패하면 403 페이지에 문제 해결 도구 URL이 표시됩니다. 연결하면 정책 문제 해결 도구에 실패한 바인딩의 세부정보 및 실패한 액세스 수준에 대한 분석(바인딩에 있는 경우)이 표시됩니다. 또한 문제 해결 도구를 사용하여 리소스에 대한 사용자 액세스 세부 보기를 확인할 수 있습니다.
사용자 액세스 거부됨
사용자에게 권한이 없거나 IAP 리소스 액세스에 필요한 조건을 충족시키지 못한 경우 403 액세스 거부 오류 페이지가 표시됩니다. 403 페이지에는 문제 해결 URL이 포함되어 있습니다. 이를 복사하여 애플리케이션 소유자 또는 보안 관리자에게 수동으로 전송할 수 있습니다. 또는 사용자 인터페이스에서 이메일 전송을 클릭할 수 있습니다.
사용자가 이메일 전송을 클릭하면 OAuth 동의 화면에 구성된 지원 이메일 주소(supportEmail)로 이메일이 전송됩니다. OAuth 동의 화면 구성에 대한 자세한 내용은 프로그래매틱 방식으로 IAP용 OAuth 클라이언트 만들기를 참조하세요.
실패한 액세스 문제 해결
최종 사용자로부터 실패한 액세스 요청에 대한 링크가 수신되었을 때 URL을 클릭하면 기본 브라우저로 URL이 열립니다. 기본 브라우저에서 Google Cloud Console에 로그인되지 않았으면 정책 문제 해결 도구 분석 페이지에 액세스하기 위해 다른 로그인 페이지로 리디렉션됩니다.
정책 문제 해결 도구 분석 페이지에는 기본 주소, 기기 ID, 액세스되는 IAP 리소스 등과 같이 사용자와 기기의 컨텍스트를 보여주는 요약 뷰, IAM 정책 뷰, 테이블이 제공됩니다.
요약 뷰에는 모든 관련 정책 및 멤버십 발견 항목에 대한 집계 뷰가 제공됩니다. IAM 정책 뷰에는 구성원이 아닌 주 구성원 및 충족 안함 조건과 같이 발생한 오류에 대한 개략적인 보기와 함께 권한이 부여되었는지 여부에 관계없이 실제 IAM 바인딩의 평가 결과 목록이 표시됩니다.
실패한 액세스 권한을 추가로 분석하려면 Binding 세부정보를 참조하세요. Binding 세부정보 내에서 binding 구성요소인 역할, 주체, 조건을 볼 수 있습니다. 권한이 충분한 구성요소에는 조치 필요 없음이 표시됩니다. 주체 카테고리: 아래 그룹에 주체를 추가하십시오.와 같이 액세스가 실패한 구성요소, 권한 격차가 명시적으로 설명됩니다.
사용자 인터페이스에서 관련 binding 섹션은 기본적으로 사용 설정되어 있습니다. 관련 binding 섹션에 나열된 binding은 전체 목록이 아니며, 특정 액세스 문제를 해결할 때 중요할 수 있는 가장 관련성이 높은 binding입니다. 특정 리소스와 연관된 실제 정책에는 프로젝트 수준에 부여된 Cloud Storage 권한과 같이 리소스와 관련이 없는 binding이 많이 포함되었을 수 있습니다. 관련이 없는 세부정보는 필터링됩니다.
또한 액세스 수준 설명을 확인하여 실패한 조건을 추가로 조사할 수 있습니다. 액세스 수준 세부정보는 오류가 발생한 위치를 알려주고 오류 해결을 위한 수정 사항을 제안합니다. 필요에 따라 필요한 작업을 다시 사용자에게 전달하거나 정책을 수정할 수 있습니다. 예를 들어 기기가 기업 소유가 아니기 때문에 요청이 실패했습니다.와 같은 작업을 다시 사용자에게 전송할 수 있습니다.
커스텀 Access Denied
오류 페이지의 문제 해결 URL 사용 설정
다음 단계를 완료하여 고객 Access Denied
오류 페이지에 정책 문제 해결 도구 URL을 추가할 수 있습니다.
- 커스텀 액세스 거부됨 오류 페이지 설정 단계를 완료하여 기본 IAP 오류 페이지 대신 커스텀 페이지로 사용자를 리디렉션합니다.
- IAP 설정에서 정책 문제 해결 도구 URL 기능을 사용 설정합니다.
IAP 설정에서 access denied
페이지 URL을 구성한 후 정책 문제 해결 도구 URL이 이스케이프된 쿼리 매개변수로 포함됩니다. 이스케이프된 쿼리 매개변수를 열려면 먼저 이를 이스케이프 해제해야 합니다. 쿼리 매개변수의 키는 troubleshooting-url
입니다.
사전에 사용자 액세스 문제 해결
BeyondCorp Enterprise 방문 페이지의 보안 패널에 있는 정책 문제 해결 도구를 사용하여 가상 이벤트를 문제 해결하고 보안 정책에 대한 통찰력 및 가시성을 얻을 수 있습니다. 예를 들어 특정 IAP 보호 리소스에 대한 사용자 액세스를 확인하고 실제로 필요한지 여부를 조사할 수 있습니다. 또 다른 예시는 IAP 보호 리소스에 대해 정책 변경을 수행하고 최고 관리자에게 계속 액세스 권한이 포함되도록 설정하는 경우입니다. Google 관리 기기 콘솔로 이동하여 최고 관리자가 소유하는 기기 ID를 가져오고, 이 기기 ID를 문제 해결 도구에서 사용하여 액세스 권한을 확인할 수 있습니다.
가상 요청을 문제 해결하여 실제 거부 이벤트가 발생하기 전 IAP 리소스에 대해 올바른 액세스 권한이 사용자에게 있는지 확인할 수 있습니다. 이렇게 하려면 사용자 이메일, 대상 IAP 리소스 그리고 IP 주소, 타임스탬프, 기기 ID, 기기 컨텍스트를 포함하여 모든 선택적인 요청 컨텍스트를 사용하면 됩니다.
기기 ID를 사용하여 가상 요청을 문제 해결할 때는 기기가 대상 주 구성원 이메일에 속하는지 확인합니다. IAP 감사 로그에서 또는 Google 관리 콘솔 -> 기기 > 모바일 및 엔드포인트 > 기기로 이동하여 기기 ID를 가져올 수 있습니다.
기기 컨텍스트를 사용하여 가상 요청 문제를 해결할 때는 문제 해결 도구에서 다음 속성을 지원합니다.
is_secured_with_screenlock
encryption_status
os_type
os_version
verified_chrome_os
is_admin_approved_device
is_corp_owned_device
일반적인 문제 해결 시나리오
다음은 정책 문제 해결 도구를 사용할 때 발생할 수 있는 일반적인 시나리오입니다.
- 회사 소유 기기로 전환 또는 운영체제 업데이트와 같은 최종 사용자 안내와 같이 문제 해결 후 최종 사용자에게 작업 가능 항목을 제공합니다.
- 최종 사용자에게 올바른 권한을 할당하지 않은 것이 확인되어 IAP 인터페이스(
roles/iap.httpsResourceAccessor
)에서 대상 주체에 대해 새 binding을 만듭니다. - 다음에 예시로 든 이유로 액세스 수준을 잘못 만든 것이 확인되었습니다.
- 회사 서브네트워크와 같이 직원이 현재 재택근무 중이기 때문에 더 이상 적용되지 않는 복잡한 중첩된 속성 제한을 만들었습니다.
- 잘못된 액세스 수준의 매개변수를 적용했습니다. 예를 들어 사용자가 공급업체 제한을 포함하는 커스텀 수준을 만들 수 있도록 지정했지만 속성을 다른 유형과 비교했습니다. 예를 들면
device.vendors["vendorX"].data.["should_contain_boolean_value"] == "true"
입니다. 왼쪽은 부울 값을 반환하고 오른쪽은true
문자열을 반환합니다. 동등하지 않은 속성으로 인해 정책 구성에서 오류를 감지하는 것이 어렵습니다. 정책 문제 해결 도구는 양 측면에서 자세한 일부 평가 결과와 함께 항목이 오류로 평가된 이유를 설명합니다.
문제 해결 도구 의도된 동작
문제 해결은 현재 타임스탬프와 함께 현재 정책 및 기기 정보를 사용하는 제한된 액세스 권한에 따라 수행됩니다. 따라서 제한된 액세스 거부 후 기기를 동기화했거나 정책을 변경한 경우에는 이전 컨텍스트 및 데이터를 사용하여 문제 해결을 수행할 수 없습니다. 현재 컨텍스트 및 데이터를 사용하여 문제 해결이 수행됩니다.
binding 문제 해결 팁
승인 오류가 있는 binding의 모든 구성요소(역할, 주체, 조건)에 대해 이러한 binding의 문제 해결 결과를 확인하려면 필요한 권한을 부여합니다.
binding에서 역할 검사가 실패하면 다음 작업을 완료합니다.
- 다른 binding을 선택하거나 IAP 인터페이스를 사용해서 필요에 따라 적용된 액세스 수준으로 주체에
roles/iap.httpsResourceAccessor
역할을 부여하여 새 binding을 만듭니다. - 커스텀 역할인 경우 커스텀 역할에 대상 권한을 추가하여 권한을 부여할 수 있습니다(해당하는 경우 모든 주체 오류 및 모든 조건 오류를 해결한 후). 기존 커스텀 역할에 권한을 추가하면 필요한 것보다 많은 권한이 포함된 다른 binding을 이 커스텀 역할에 부여할 수 있습니다. 그러한 커스텀 역할의 범위와 작업의 위험성을 인지하고 있지 않으면 이렇게 하지 마세요.
- 커스텀 역할이 아닌 경우에는 다른 binding을 선택하거나 IAP 인터페이스를 사용해서 필요에 따라 적용된 액세스 수준으로 주체에
roles/iap.httpsResourceAccessor
역할을 부여하여 새 binding을 만듭니다.
역할 선택이 성공했지만 주체 선택이 실패하면 다음 작업을 수행합니다.
- 구성원에 그룹이 포함된 경우 그룹에 주체를 추가하여 권한을 부여할 수 있습니다(해당하는 경우 모든 조건 오류를 해결한 후). 기존 그룹에 주체를 추가하면 필요한 것보다 많은 권한이 그룹에 부여될 수 있습니다. 그러한 그룹의 범위와 작업의 위험성을 인지하고 있지 않으면 이렇게 하지 마세요.
- 멤버에 그룹이 포함되지 않았으면 다른 binding을 선택하거나 IAP 인터페이스를 사용해서 필요에 따라 적용된 액세스 수준으로 주체에
roles/iap.httpsResourceAccessor
를 부여하여 새 binding을 만듭니다.
역할 및 주체 선택이 성공했지만 조건이 실패하면 해당 조건 아래에 나열된 각 개별 액세스 수준에 대해 문제 해결 세부정보를 보고 조건이 OR 논리 연산자와 연결된 액세스 수준만으로 구성되는지 확인합니다.