アカウントと有効化

ゼロコンフィグの有効化、CI・ヘッドレスマシンでの利用、オフライン時の挙動、そしてデバイスの失効が実際に何を行うかについて。

有効化は、あなたのアカウントの下でマシンをプロビジョニングします。通常の利用では手動で実行することはなく、最初の暗号化操作に組み込まれています。

ゼロコンフィグの有効化

新しいマシンで最初に protect / protect-model / build を呼び出すと、サインイン(ブラウザが開きます)とマシンの有効化が 1 ステップで行われ、その後暗号化が実行されます。

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 リファレンスには、このページで扱ったすべてのコマンドのフラグ一覧があります。