앱별 VPN이 Android 앱의 업무용 사본에 닿지 않는 이유
업무 프로필은 별도의 관리되는 컨텍스트이므로, 한 프로필의 앱별 VPN은 개인용 사본을 그대로 둘 수 있습니다. 테스트하기 전에 소유자를 확인하세요.
업무 프로필이 있는 휴대폰에서는 같은 앱이 두 번 보이지만, 그 두 사본은 같은 주체가 아닙니다. 한 컨텍스트 안에서 구성된 앱별 VPN은 그 컨텍스트의 인스턴스를 제어하므로, 패키지 이름을 지정한 규칙도 다른 쪽 사본에는 닿지 않을 수 있습니다. 이것은 피해야 할 결함이 아니라, 프로필 경계가 설계된 대로 작동하는 것입니다. 답할 가치가 있는 질문은 VPN을 소유한 컨텍스트가 어느 쪽이며, 보호하려는 앱을 소유한 쪽이 어디인가입니다.
아이콘 하나, 설치 두 개, 정책 소유자 둘
Android는 업무 프로필에 별도의 관리되는 컨텍스트를 부여하며, 앱과 계정과 정책을 따로 갖기 때문에 런처에는 같은 이름과 배지를 가진 항목이 두 개 표시될 수 있습니다. 한 컨텍스트 안에서 시작된 VPN 서비스는 그 컨텍스트의 사용자를 위해 동작하며, 이것이 문제 전체의 배경에 있는 구조입니다. 아이콘은 어느 앱을 눌렀는지 알려 줄 뿐, 생긴 트래픽이 어느 프로필에 속하는지는 알려 주지 않습니다. 그래서 소유자는 그림이 아니라 프로필에서 읽어야 합니다.
조직은 관리되는 쪽에 항상 켜짐이나 VPN 없이 차단 같은 동작을 강제할 수도 있으며, 이는 터널이 끊겼을 때의 동작을 바꿉니다. 개인 쪽에는 직접 만들지 않는 한 그런 보장이 없습니다.
허용 목록이 실제로 뜻하는 것
Android의 앱별 VPN 지원은 목록을 기반으로 하며, VPN 사용자와 업무 프로필 안내서에 문서화되어 있고, 또한 두 목록 유형은 기본값이 정반대입니다. 허용 목록은 이름을 지정한 패키지만 터널을 쓰고 나머지는 모두 제외된다는 뜻이고, 거부 목록은 이름을 지정한 패키지를 빼고 모두 포함된다는 뜻입니다. 이것을 뒤집으면 설정 화면은 그럴듯해 보이지만 의도한 정책의 반대를 만든 셈입니다. 목록은 VPN이 실행되는 컨텍스트 안에서 평가되므로, 두 프로필에 모두 있는 패키지 이름은 그 컨텍스트의 사본에만 일치합니다. 다른 프로필에서 목록에 없는 패키지는 애초에 이 VPN의 일이 아닙니다.
전부-제외와 이것만의 차이가 개인용 앱이 터널 밖으로 새는지 아니면 닫힌 채로 실패하는지를 결정하므로, 중요한 두세 개 앱에 대해 동작을 적어 두세요. 여기서는 프로필마다 한 줄로 목록 유형과 나머지 모두의 기본값을 적은 작은 표가 문단보다 낫습니다.
| Context | List type | Apps not named |
|---|---|---|
| Work profile | allowed only | excluded from the tunnel |
| Personal profile | disallowed | included in the tunnel |
어느 쪽이 터널을 돌리는지, 그리고 누구의 정책 아래에서
소비자용 VPN은 관리되는 프로필에서 조직의 통제를 걷어내지 않으며, 업무 프로필 VPN은 개인용 앱을 위한 일반 터널이 아닙니다. 조직이 관리 대상 앱에 자체 클라이언트를 요구한다면, 개인용 클라이언트는 별도의 합의이며 고유한 정책과 고유한 실패 방식을 가집니다. 결과를 비교하기 전에 어느 구조가 어느 트래픽을 나를지 정하지 않으면, 두 체계를 재고 그 차이를 결함이라고 부르게 됩니다. 자기 컨텍스트 안에서는 대개 관리되는 쪽이 이기며, 그것이 의도된 동작입니다.
까다로운 경우는 관리되는 정책이 제공하지 않는 경로가 필요한 관리 대상 앱입니다. 그것은 조직에 보내는 예외 요청이며, 업무 프로필을 끌 이유는 아닙니다.
정말로 의도한 인스턴스를 테스트하기
개인용 브라우저에서 공인 주소를 확인하는 것은 업무용 앱에 대해 아무것도 말해 주지 않으므로, 관심 있는 사본을 실행하고 그 안에서 요청을 살펴보세요. 내부 이름은 관리되는 경로에 의존할 수 있고 공개 브라우징은 다른 곳에 머물기 때문에, 로그인한 계정과 내부 이름 해석은 따로 확인하세요. 똑같은 아이콘 두 개가 찍힌 화면은 증거가 아니므로, 테스트한 시점에 어느 사본이 어떤 결과를 냈는지 적고 라벨에 프로필을 쓰세요. 그 사이에 정책이 다시 적용될 수 있으므로, 다시 연결한 뒤와 프로필이 다시 만들어진 뒤에도 확인을 반복하세요.
어느 사본이 응답했는지 알 수 없다면 결론을 내리기 전에 라벨을 고치세요. 나중에 그 물음을 해결한 것처럼 인용되기 때문에, 모호한 결과는 결과가 없는 것보다 나쁩니다.
다음 테스트가 살아남도록 적용 범위를 기록하기
컨텍스트마다 앱 인스턴스, 정책 소유자, 기대되는 적용 범위라는 세 가지 사실을 함께 기록하세요. 이것만 있으면 다음 사람이 어느 아이콘을 열었는지 추측하지 않고 테스트를 재현할 수 있습니다. 사람들이 가장 자주 잘못 읽는 부분이 바로 그 부분이므로, 목록 유형과 목록에 없는 패키지의 기본값도 더하세요.
그다음 양쪽에서 내부 이름 하나와 외부 주소 하나를 확인하고, 관리되는 쪽이 개인용 VPN을 차단할 때 무엇이 일어나야 하는지 적으세요. 양쪽 모두 연결된 것처럼 보이는데 어느 쪽도 보호되지 않는 휴대폰이야말로 설계로 대비할 가치가 있는 실패입니다. 두 프로필에 정말 터널이 필요하다면 하나의 영리한 규칙이 아니라 두 가지 합의를 계획하세요.