アカウントと有効化

ゼロコンフィグの有効化、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--passphrase 成果物(ポータブル、または --bind-machine との二要素)のための非対話的パスフレーズ。
MAGICLOCK_DECRYPT_KEYrunポータブル --emit-key 成果物に対する run --key の代替。
MAGICLOCK_NO_BROWSER認証フロー全般ブラウザの自動起動を抑制(ヘッドレス Linux では自動検出もされます)。
MAGICLOCK_NO_OS_KEYRINGすべてのコマンドローカルの認証情報ストアに対する OS キーリングの追加ラップをスキップ — キーリングサービスのない最小構成のコンテナで有用。
MAGICLOCK_VAULTすべてのコマンドこのマシンのアクティベーション状態の保存先(既定 ~/.magiclock/vault)。--vault と同じです。ボリューム上に保管したい場合や、1 台で複数アカウントを併用する場合に設定します。
MAGICLOCK_GATE_DIRクラウド制御成果物の実行時--web-gate 成果物の署名付き許可のキャッシュ先(既定 ~/.magiclock/gate)。読み取り専用や一時的なファイルシステムでは書き込み可能なパスを指定します。

オフライン時の挙動

暗号化操作(protect/protect-model/build)は、毎回ライセンスサーバーへの確認を行います。この確認が成功すれば問題ありません。ネットワークが利用できない場合は次のようになります。

状況結果
サーバーに到達可能、ライセンスは有効通常どおり暗号化されます。
サーバーに到達不可(理由を問わず)オンラインに戻るまでブロックされます。
サーバーに到達可能で明示的に拒否される(デバイス失効、プラン期限切れ/解約)即座にブロックされます — オンライン・オフラインを問わず、これに猶予が与えられることは一切ありません。

復号および magiclock run は、これらの影響を一切受けません。 読み取るのはローカルの、すでに有効化済みのボルトだけであり、ネットワーク呼び出しもサーバーへの依存も一切ありません。これは、マシンがオンラインであってもオフラインであっても、有効化以降一度もオンラインになっていなくても変わりません。

失効と無効化

magiclock deactivate--local-only を付けない場合)は、サーバーにこのマシンのシートの解放を伝え、新たな暗号化を行えないようにします。すでにそのマシン上で生成された成果物には影響しません — 復号はサーバーや失効リストを一切参照しないため、それらは引き続き復号できます。マシンを紛失した、あるいは侵害された場合、無効化すればそのマシンがあなたのアカウントの下で新たな保護済み成果物を生成することは止められますが、すでに生成済みのファイルを遡って失効させることはできません。

次に読むべきもの

  • セキュリティモデルでは、ランタイムゲートが何を検証しているか、そして復号側での失効がなぜ設計に含まれていないかを説明しています。
  • CLI リファレンスには、このページで扱ったすべてのコマンドのフラグ一覧があります。