로그인 강제 구성

로그인 강제 구성 (Configure sign-in enforcement)

조직 인프라와 보안 요구 사항에 맞는 방법으로 Docker Desktop 로그인을 강제하는 설정 방법을 배워볼게요.

출처: 문서

본문

구독: Team, Business 대상: 관리자

여러 방법을 사용해 Docker Desktop 로그인을 강제할 수 있어요. 조직의 인프라와 보안 요구 사항에 가장 잘 맞는 방법을 선택해요.

방법 선택 (Choose your method)

방법 플랫폼
Registry key Windows 전용
Configuration profiles Mac 전용
plist 파일 Mac 전용
registry.json 모든 플랫폼

팁: Mac의 경우 configuration profiles가 Apple의 System Integrity Protection(SIP)으로 보호되므로 가장 높은 보안을 제공해요.

Windows: 레지스트리 키 방법

  1. 레지스트리 키를 만들어요:
$ HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
  1. allowedOrgs라는 다중 문자열(multi-string) 값 이름을 만들어요. 조직 이름을 문자열 데이터로 사용해요. 여러 조직을 추가할 수 있어요:
    • 소문자만 사용
    • 각 조직을 별도의 줄에 추가
    • 구분자로 공백이나 쉼표를 사용하지 않음
  2. Docker Desktop을 재시작해요.
  3. Sign in required 프롬프트가 나타나는지 확인해요.

그룹 정책(Group Policy) 배포

그룹 정책을 사용해 조직 전반에 레지스트리 키를 배포해요:

  1. 다음 구조의 레지스트리 스크립트를 만들어요:
    • 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    • 값 이름: allowedOrgs (다중 문자열)
    • 값 데이터: 조직 이름, 각 줄에 하나씩, 소문자만
  2. Group Policy Management에서 GPO를 만들거나 편집해요.
  3. Computer Configuration > Preferences > Windows Settings > Registry 로 이동해요.
  4. Registry 를 마우스 오른쪽 클릭하고 New > Registry Item 을 선택해요.
  5. 레지스트리 항목을 구성해요:
    • 동작: Update
    • 경로: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Docker\Docker Desktop
    • 값 이름: allowedOrgs

Mac: 구성 프로필 방법 (권장)

구성 프로필은 Apple의 System Integrity Protection으로 보호되므로 Mac에서 가장 안전한 강제 방법을 제공해요. 페이로드는 키-값 쌍의 딕셔너리예요. Docker Desktop은 다음 키를 지원해요:

  • allowedOrgs: 여러 조직을 하나의 문자열로 설정하며, 각 조직은 소문자이고 세미콜론으로 구분돼요.
  • overrideProxyHTTP: 나가는 HTTP 요청에 사용해야 하는 HTTP 프록시의 URL을 설정해요.
  • overrideProxyHTTPS: 나가는 HTTPS 요청에 사용해야 하는 HTTP 프록시의 URL을 설정해요.
  • overrideProxyExclude: 지정된 호스트·도메인에 대한 프록시 설정을 우회해요. 쉼표로 구분된 목록을 사용해요.
  • overrideProxyPAC: PAC 파일이 있는 파일 경로를 설정해요. 선택된 프록시의 원격 PAC 파일보다 우선합니다.
  • overrideProxyEmbeddedPAC: 인메모리 PAC 파일의 콘텐츠를 설정해요. overrideProxyPAC보다 우선합니다.

다음과 같은 구성 프로필 페이로드:

<key>overrideProxyHTTP</key>
<string>http://company.proxy:port</string>
<key>overrideProxyHTTPS</key>
<string>https://company.proxy:port</string>
  • allowedOrgs 값을 조직 이름(세미콜론으로 구분)으로 업데이트하고, company.proxy:port를 http/https 프록시 서버 호스트(또는 IP 주소)와 포트로 바꿔요.
  1. 당신의 MDM 솔루션을 사용해 프로필을 배포해요.
  2. ...

일부 MDM 솔루션은 전체 .mobileconfig 래퍼 없이 키-값 설정의 평문 딕셔너리로 페이로드를 지정할 수 있게 해줘요:

<dict>
   <key>allowedOrgs</key>
   <string>first_org;second_org</string>
   <key>overrideProxyHTTP</key>
   <string>http://company.proxy:port</string>
   <key>overrideProxyHTTPS</key>
   <string>https://company.proxy:port</string>
</dict>

Mac: plist 파일 방법

  1. 비관리자 사용자가 편집하지 못하도록 파일 권한을 설정해요.
  2. Docker Desktop을 재시작해요.
  3. Docker Desktop에서 Sign in required! 프롬프트가 나타나는지 확인해요.

모든 플랫폼: registry.json 방법

기본 설정

  1. 사용자가 당신의 Docker 조직 구성원인지 확인해요.
  2. 플랫폼에 적합한 위치에 registry.json 파일을 만들어요.
  3. 조직 이름을 자신의 것으로 바꾸고 소문자만 사용해 다음 콘텐츠를 추가해요:
{
   "allowedOrgs": ["myorg1", "myorg2"]
}
  1. 사용자 편집을 방지하도록 파일 권한을 설정해요.
  2. Docker Desktop을 재시작해요.
  3. Docker Desktop에서 Sign in required! 프롬프트가 나타나는지 확인해요.

Windows (관리자 권한 PowerShell)

Set-Content /ProgramData/DockerDesktop/registry.json '{"allowedOrgs":["myorg1","myorg2"]}'

Windows

참고: --allowed-org 플래그는 조직 하나만 허용해요. Mac에서 여러 조직의 로그인을 강제하려면 설치 후 registry.json 파일을 구성해요.

방법 우선순위 (Method precedence)

같은 시스템에 여러 구성 방법이 존재할 때 Docker Desktop은 이 우선순위 순서를 사용해요:

  1. Registry key (Windows 전용)
  2. Configuration profiles (Mac 전용)
  3. plist 파일 (Mac 전용)
  4. registry.json 파일

로그인 강제 문제 해결

로그인 강제가 작동하지 않으면:

  • 파일 위치와 권한을 확인해요
  • 조직 이름이 소문자를 사용하는지 확인해요
  • Docker Desktop을 재시작하거나 시스템을 재부팅해요
  • 사용자가 지정된 조직의 구성원인지 확인해요
  • Docker Desktop을 최신 버전으로 업데이트해요

더 알아보기 (Learn more)