あなたのインフラ。あなたのデータ。あなたの鍵。
Cronableは、あなた自身のスタックの信頼できる一部として動くように作られています。あなたの自動化、シークレット、履歴をどうあなたの管理下に保つのか、その仕組みを正確にご説明します。
設計からしてオンプレミス
Cronableはあなた自身のマシンにインストールされます——MacまたはWindowsのデスクトップアプリ、あるいはsystemd/launchd配下のサーバーとして。SaaSの階層もクラウド依存もありません。その定型的な外部通信は、あなたのサブスクリプションを確認して単純なジョブ数とユーザー数を報告する定期的なライセンスチェックと、新しい署名済みリリースの確認です。さらに、あなたが有効にした場合にのみ、受信Webhookやリモートコントロールのために、Cronableのホスト型リレーへの外部接続が行われます。あなたのワークロード——ジョブ定義、シークレット、実行、出力——は、マシン上にとどまり、当社に送られることは決してありません。唯一の例外は、稼働中のリモートコントロールセッションです。そのダッシュボードの通信は当社のエッジを経由して中継されます(ホスト型プロキシと同じ信頼レベルです)。あなた自身のマシンへのエンドツーエンド暗号化は、Enterpriseで予定されているオプションです。
シークレットと認証情報は保存時に暗号化
シークレットの値は、あなた自身の暗号鍵から導出した鍵でAES-256-GCM暗号化されます(インストールごとのランダムなソルトを用いたscrypt)。型付きの認証情報——APIキー、ベアラートークン、ベーシック認証、カスタムヘッダー、Postgres接続文字列——も同じ暗号化ストアに置かれ、名前で参照され、ジョブファイルに貼り付けられることはありません。gitには何も書き込まれず、あなたのマシンから何も出ていきません。鍵は別途バックアップしてください——失えばシークレットは、設計上復元不能です。
すべてのログとストリームでマスク
解決されたシークレットと認証情報の値は、ログファイル、ジョブ出力、ライブログストリーム全体で「***」に伏せられます——値がストリーミングのチャンクをまたいで分割されている場合でも。あなたのマシン上で動くものは、あなたのマシンにとどまります。
認証済みで最小権限
ウェブコンソールは、argon2idによるパスワードハッシュとブルートフォース対策のロックアウトを備えた、ユーザーごとのログインを必須とします。エンジンは既定でlocalhostにバインドし、専用の低権限ユーザーとして動かすことが前提です。サーバー間の呼び出し元は非公開のベアラートークンを使い、ブラウザは短命のセッションクッキーを使います——そしてログアウトやセッション失効は、開いているライブログストリームさえ数秒以内に閉じます。また、パスワードは強度チェック(最小の長さと推測されやすさのテスト)に合格する必要があり、弱いパスワードや推測されやすいパスワードは拒否されます。任意の二要素認証(TOTP)は、Google Authenticator などの認証アプリからのワンタイムコードを追加し、デバイスを紛失した場合のリカバリコードも用意します。二要素認証はリモートアクセスの利用に必須であり、マシンをホスト型ダッシュボードで開けるのは、これを有効にした担当者だけです。
ロールによるチームアクセス
ウェブコンソールはマルチユーザー対応で、権限の低い順に4つのロールがあります——閲覧者(読み取り専用)、編集者(ジョブ・シークレット・実行の作成)、管理者(ユーザー・ロール・設定の管理)、そしてオーナー(インストール時の最初のアカウント)です。管理者は、設定 → ユーザーからユーザーの追加・削除、各ユーザーのロールの割り当て、パスワードや二要素認証デバイスのリセット、アクセスの取り消しを行えます——退職した担当者のアクセスは直ちに失われ、ログインを共有することもありません。より厳重に固めたい環境では、さらに追加の対策を有効にできます。実行権限のティア分けはコマンドを実行するジョブを作成できる担当者を制限し、変更承認は二人体制のレビューを追加します——ステージングされたジョブやシークレットの変更は、もう一人の管理者が承認するまで反映されません。
OIDCによるシングルサインオン
あなたのアイデンティティプロバイダー——Okta、Entra ID、Google、Keycloak——を、PKCEと完全なIDトークン検証を伴うOIDC認可コードフローで持ち込めます。SSOでのサインインは既存のローカルアカウントに対応付けられている必要があります——自動プロビジョニングはなく、プロバイダーのエラーは生のリダイレクトではなく、決まった分かりやすいメッセージとして表示されます。
本当に読める監査証跡
ログインと失敗した試行、シークレットと認証情報の変更、ジョブの編集、設定の更新、gitの同期は、追記専用の監査証跡に記録されます——名前とメタデータのみで、値は決して記録されません——コンソールの設定 → 監査から、そのまま閲覧・絞り込みできます。
堅牢化された受信Webhook
受信Webhookは、あなたのサーバーが外向きに開いた接続を通じて、当社のライセンス管理下の中継を経由してデーモンに届くので、ポートを公開することはありません——ご自身であえてそうする場合を除いて。各フックはあなたのライセンスに紐づけられ——URLを知っていても、他の顧客がそれを奪ったりイベントを受け取ったりすることはできません——フックごとのトークンで守られます。このトークンはSHA-256ハッシュとしてのみ保存され、一定時間で照合されます。URLには少なくとも32文字の推測不能な文字列に加えてそのトークンが必要です。誤り、欠落、無効、不明のいずれも同じ汎用的な401を返し、あるIPからの繰り返しの探りは一時的に禁止されます——だから列挙するものも、総当たりするものもありません。トークンは発行時に一度だけ表示され、ワンクリックでローテーションできます。受信ペイロードを当社のサーバーに一切通したくない場合は、中継を使わずにご自身のHTTPSエンドポイントを公開することもできます——ポートを実際に開くのはこの場合だけで、Webhookはあなたのマシンに直接届きます。
gitで監査される、元に戻せる履歴
すべてのジョブ定義は、あなたが所有するgitリポジトリ内のファイルです。各変更はコミットであり——完全に差分表示でき、帰属を追え、元に戻せます。ジョブ履歴は、チームがすでに使っているツールで監査できます。双方向同期のためにリポジトリをリンクする場合、Cronable はプライベートリポジトリのみを受け付けます。パブリックリポジトリは拒否され、リンク済みのリポジトリが後でパブリックになった場合は同期を停止します。そのため、ジョブ定義が公開されて誰でも読める状態になることはありません。
信頼境界について正直に
Cronableの仕事は、あなたに代わってコマンド、AIエージェント、HTTPを実行することなので、マシン上のシェルと同じように扱ってください。式は堅牢な境界ではなく、うっかり防止のサンドボックスで動きます——信頼できない入力を決して与えないでください。当社は、最小権限と適切なネットワーク分離での導入をお手伝いします。
ファイアウォールの内側で動かしましょう。
満たすべきセキュリティ要件がありますか?あなたの環境を教えていただければ、導入、堅牢化、アクセス制御を一緒に確認します。
Cronable、そしてあなたのマシンから決して出ていきません。