退出時にデータをエクスポートする
5つの退出目標を読み取り、実際のドリルを記録し、Merkleルート付きのマニフェストの下でカバーされるすべてのクラスをエクスポートし、エクスポートを検証します。
exit.objectives
5つの退出目標を読み取り、実際のドリルを記録し、Merkleルート付きのマニフェストの下でカバーされるすべてのクラスをエクスポートし、エクスポートを検証します。
exit.objectivesデータを持って退出できることを確認し、エクスポートが完全であることを証明したい場合です。退出機能は5つのデータクラスを一覧し、それぞれに公開されたRTOとRPOがあります。各クラスを専用のlistアクションでエクスポートし、マニフェストを稼働中のインベントリに対して検証します。
コードはキーをINTRAMEDIAL_KEYから読み取ります。キーはシェルやシークレットストアに保管し、コミットするファイルには入れないでください。サインインした人が必要な呼び出しにはキーを使えず、コンソールが実行します。
5つのクラスが一覧されます。台帳、パック、ヤード、ID、ポリシーで、それぞれに公開されたRTOとRPOがあります。何も記録されていないクラスはunverifiedと表示され、既定でmetになることはありません。
provable: trueは、完全性とダイジェストの両方が保たれたことを意味します。exit.objectivesexit-objectivescurl -sS https://api.intramedial.com/api/v1/acp/exit/objectives \
-H "Authorization: Bearer $INTRAMEDIAL_KEY"const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/objectives", {
headers: { Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`, },
});
console.log(res.status, await res.json());import os, requests
res = requests.get(
"https://api.intramedial.com/api/v1/acp/exit/objectives",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
timeout=30,
)
print(res.status_code, res.json())実際のドリルの後に、クラスと計測したRTO、RPOを送ります。observeは計測した内容を記録するだけで、何も実行しません。出荷時点では、復旧ドリルの観測はまだ記録されていません。
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/observe \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{
"dataClass": "ledger",
"rtoMinutes": 12,
"rpoMinutes": 0
}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/observe", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
dataClass: "ledger",
rtoMinutes: 12,
rpoMinutes: 0,
}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/observe",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={
"dataClass": "ledger",
"rtoMinutes": 12,
"rpoMinutes": 0,
},
timeout=30,
)
print(res.status_code, res.json())エクスポートは、各モジュール自身のlistアクションを通じて稼働中のデータを取得し、すべての項目をSHA-256でダイジェスト化し、Merkleルート付きのマニフェストを組み立てます。一覧の失敗は、スキップされず返されます。
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/export \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/export", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/export",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={},
timeout=30,
)
print(res.status_code, res.json())検証は、稼働中のインベントリに対して完全性を再計算します。元のコンテンツをcontentsとして送ると、ダイジェストも再計算します。contentsがなければ、integrityはnullのままで、誤ってtrueになることはありません。
curl -sS -X POST https://api.intramedial.com/api/v1/acp/exit/verify \
-H "Authorization: Bearer $INTRAMEDIAL_KEY" \
-H "Content-Type: application/json" \
-d '{}'const res = await fetch("https://api.intramedial.com/api/v1/acp/exit/verify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.INTRAMEDIAL_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({}),
});
console.log(res.status, await res.json());import os, requests
res = requests.post(
"https://api.intramedial.com/api/v1/acp/exit/verify",
headers={"Authorization": "Bearer " + os.environ["INTRAMEDIAL_KEY"]},
json={},
timeout=30,
)
print(res.status_code, res.json())provableがtrueになるのは、完全性とダイジェストの両方が保たれた場合だけです。インベントリから消えた項目はextraであり、改ざんではありません。
転載元の資料: /docs/exit-objectives
unverifiedと表示されます。台帳は追記専用で、Merkleルートのもとでシールされます。エントリの時刻はIntramedial自身のクロックによるもので、署名付きバンドルは公開鍵を使ってオフラインで確認できます。
監査ログをMerkleルート付きの署名済みバンドルにシールし、公開鍵を使ってオフラインで確認します。
ledger.bundles-snapshotEU AI Act第12条のエクスポートを実行し、保有する証拠を統制にマッピングしてギャップを示すカバレッジレポートを読み取ります。
compliance.packリソースに触れた人を新しい順に一覧し、1つのイベントをMerkle証明付きで再構築します。
ledger.blameレシピ集にレシピを追加したときだけ、短いメールを1通。ほかのメールは送らず、どのメールからも配信停止できます。
アカウントは不要です。attestルートで7日間に35回まで呼び出せ、レシートはテストレシートとして明示されます。続けたくなったら、そのときに登録してください。