계정 및 활성화

제로 컨피그 활성화, CI 및 헤드리스 머신, 오프라인일 때 벌어지는 일, 그리고 기기 취소가 실제로 하는 일.

활성화는 계정 아래에 머신을 프로비저닝합니다. 일반적인 사용에서는 손수 실행할 일이 없습니다 — 첫 암호화에 통합되어 있기 때문입니다.

제로 컨피그 활성화

새 머신에서의 첫 protect / protect-model / build 호출은 로그인(브라우저를 엽니다)과 머신 활성화를 한 단계로 처리한 뒤 암호화합니다.

shell
magiclock protect app.py   # first run: sign in + activate, then encrypt
magiclock protect app.py   # every run after: encrypts immediately, no prompts

명시적 명령

직접 실행할 일은 거의 없지만, 필요할 때를 위해 존재합니다.

shell
magiclock activate                  # authenticate (opens a browser) + provision this machine
magiclock activate --no-browser     # print a link + code instead of opening a browser
magiclock status                    # this machine's account + activation state
magiclock status --offline          # same, without a live server round-trip
magiclock deactivate                # remove this machine (frees its seat server-side by default)
magiclock deactivate --local-only   # remove it locally only, without touching the server

CI와 헤드리스 머신

브라우저를 여는 대신 포털에서 발급한 토큰을 전달할 수 있습니다.

shell
export MAGICLOCK_TOKEN=<token-from-your-account-portal>
magiclock protect app.py            # provisions non-interactively, then encrypts

릴리스 빌드의 CLI에는 라이선스 서버 URL이 이미 내장되어 있으므로, 기본값이 아닌 다른 서버를 가리켜야 할 때만 MAGICLOCK_SERVER가 필요합니다.

환경 변수

변수사용처용도
MAGICLOCK_TOKENactivate, 그리고 첫 암호화 시 자동 활성화비대화형 로그인을 위한 Bearer 토큰.
MAGICLOCK_SERVERactivate라이선스 서버 URL을 재정의합니다(거의 필요하지 않음).
MAGICLOCK_PASSPHRASEprotect/protect-model/run--lock-passphrase 또는 포터블 --passphrase 산출물을 위한 비대화형 패스프레이즈.
MAGICLOCK_DECRYPT_KEYrun포터블 --emit-key 산출물에 대해 run --key 대신 사용.
MAGICLOCK_NO_BROWSER모든 인증 흐름브라우저 자동 열기를 억제합니다(헤드리스 Linux에서는 자동으로도 감지됨).
MAGICLOCK_NO_OS_KEYRING모든 명령로컬 자격 증명 저장소에 추가되는 OS 키링 래핑을 건너뜁니다 — 키링 서비스가 없는 최소 구성 컨테이너에서 유용합니다.

오프라인일 때 벌어지는 일

암호화(protect/protect-model/build)는 매번 라이선스 서버에 확인합니다. 이 확인이 성공하면 문제없이 진행됩니다. 네트워크가 끊겨 있다면 다음과 같습니다.

상황결과
서버에 연결 가능하고 라이선스가 유효함정상적으로 암호화합니다.
서버에 연결 불가능하지만 마지막 성공한 확인이 12시간 이내오프라인 유예 창을 사용해 암호화합니다.
서버에 연결 불가능하고 성공한 확인 이력이 아직 없음(또는 유예 기간 만료)다시 온라인이 될 때까지 차단됩니다.
서버에 연결 가능하지만 명시적으로 거부함(기기 취소, 플랜 만료/해지)즉시 차단됩니다 — 온라인이든 오프라인이든 이 경우에는 유예가 주어지지 않습니다.

복호화와 magiclock run은 이 중 어떤 것에도 영향을 받지 않습니다. 이들은 오직 로컬의, 이미 활성화된 볼트만 읽습니다 — 네트워크 호출도, 서버 의존성도 전혀 없습니다. 머신이 온라인이든, 오프라인이든, 활성화 이후 한 번도 온라인이었던 적이 없든 마찬가지입니다.

취소와 비활성화

magiclock deactivate(--local-only 없이)는 서버에 이 머신의 시트를 해제하도록 알리고, 이 머신이 새로운 것을 암호화하지 못하도록 막습니다. 이는 그 머신에서 이미 만들어진 산출물에는 소급 적용되지 않습니다 — 복호화는 서버나 어떤 취소 목록도 참조하지 않으므로, 그 산출물들은 계속 복호화됩니다. 머신을 분실했거나 침해당했다면, 비활성화는 그 머신이 계정 아래에서 새로운 보호 산출물을 만드는 것을 막을 뿐, 이미 만든 파일들을 소급해서 취소하지는 않습니다.

다음으로 볼 문서

  • 보안 모델에서는 런타임 게이트가 무엇을 검사하는지, 그리고 왜 복호화 측 취소가 설계에 포함되지 않았는지 다룹니다.
  • CLI 레퍼런스에는 이 문서의 모든 명령에 대한 전체 플래그 목록이 있습니다.