セキュリティポリシー

最終更新: 2026年9月12日

Sealed: Page Approval & Document Control for Confluence(以下「本アプリ」)は、Scritt Solutions(以下「当方」)が開発・運営する Confluence Cloud 向けアプリです。本ポリシーは、当方が本アプリと、その開発・公開に使うシステムをどのように保護しているかを説明します。本アプリが何をどれだけの期間保存するかはプライバシーポリシーをご覧ください。

1. 当方について・本ポリシーの範囲

本アプリは、埼玉県所沢市の亀井亮介が営む個人事業 Scritt Solutions が開発・運営しています。保守にあたるのは1名です。本ポリシーには、その1名が本アプリ自体と、公開に使うアカウントやツールに対して実施し、維持している管理策を記載しています。連絡先は support@scritt.com です。

2. 本アプリの動作環境

本アプリは Atlassian の Forge プラットフォーム上だけで動作します。 バックエンドの関数は Atlassian が運用する基盤で実行され、画面は Atlassian の Forge UI Kit が Confluence の中に描画し、データは Forge のアプリストレージ(キーバリューストレージと Forge SQL)とお客様自身の Confluence サイトに保存されます。外部通信の権限(external permissions)を一切宣言していないため、Atlassian の外にあるサーバーへの通信は Forge プラットフォーム自体が遮断します。本アプリは、まさにこの条件を要求する Atlassian の Runs on Atlassian プログラムの対象です。

当方は本アプリのための独自サーバーを運用していません。scritt.com が提供するのはこのドキュメントだけで、本アプリからデータを受け取ることはありません。

3. 責任分担

本アプリのセキュリティは、プラットフォームを運用する Atlassian と、コードを書いて公開する当方とで分担しています。

  • Atlassian は基盤を運用します。Forge 関数のホスティングと分離、Forge ストレージおよび Confluence データの通信時・保存時の暗号化、利用者の認証、Forge ストレージのデータレジデンシー(本アプリの保存データはお客様のサイトと同じリージョンに置かれます)、そしてアンインストール後に本アプリのストレージを恒久削除することが含まれます。これらの管理策は Atlassian の Trust サイトに記載されています。
  • 当方は、本アプリのコード、同梱するサードパーティライブラリ、要求する権限、公開に使うアカウント、そして本ポリシーに責任を負います。

4. 権限と最小権限の原則

本アプリが要求する Confluence のスコープは12個です。それぞれ用途が1つに決まっており、ページ本文の変更に使うものはありません。

  • read:page:confluence: ページのメタデータとバージョン番号を読み、本人がそのページを閲覧できることの確認と、どのバージョンが承認されたかの記録に使います。本アプリがページに保存した承認状態を読むのにも使います。
  • write:page:confluence: 承認状態とバイラインのラベルを、ページのコンテンツプロパティとして保存します。Atlassian はコンテンツプロパティをこのページ単位のスコープで管理しています。本アプリがページのバージョンを作ることはありません。
  • read:content-details:confluence: ページに元からある編集制限を読みます。ロックの前に退避し、あとで元に戻すためです。
  • write:content.restriction:confluence: 承認後に編集ロックを掛け、改訂申請時に元の制限を復元します。閲覧権限を変えることはありません。
  • write:comment:confluence: 承認者と申請者に @メンションで知らせる通知コメントを投稿します。
  • read:comment:confluence: 上のコメント投稿のスコープと対で宣言しています。投稿時に Confluence が返すコメントのレコードを扱うためです。人が書いたコメントを本アプリが読んだり表示したりすることはありません。
  • read:user:confluence: 画面を描くときにアカウント ID を表示名に解決し、本アプリ自身のアカウントを識別し、管理者判定のためにグループ所属を確認します。
  • read:group:confluence: 承認申請時に承認者グループをメンバーに展開し、設定画面で管理者がグループを選べるようにします。
  • read:space.permission:confluence: スペースロールとその割り当てを読み、誰がワークフロー設定を変更できるかを判定します。この判定が完了できない場合、設定画面は開きません。
  • read:space:confluence: 上のスペースロール判定と対で宣言しています。本アプリは Confluence から渡されたスペースの識別子だけを使い、スペースを列挙することはありません。
  • read:content.metadata:confluence: ページ更新イベントを購読するために必要です。承認済みページが編集されたことを検知し、承認を無効にするためです。
  • storage:app: 本アプリ自身のレコードを Forge ストレージに保持します。ワークフロー定義とスペース設定はキーバリューストレージに、監査証跡は Forge SQL に置きます。

本アプリは可能な限り、利用している本人の権限で読み取ります。そのため、本人が元々開けないページを誰かに見せることはできません。アプリ自身の権限で書き込むのは、一般の利用者が手作業でできてはならない2つのことだけです。ページに付ける承認状態と、承認済みページをロックする編集制限です。誰が承認・却下できるかは本アプリがワークフロー定義から判定し、誰がワークフロー設定を変更できるかは Confluence のスペースロールで判定します。いずれかの判定が完了できないときは、許可ではなく拒否に倒します。

5. 監査証跡の完全性

監査レコードにはそれぞれ、同じページの直前のレコードと結び付くハッシュが付いています。そのため、書き換えられたレコードや欠落したレコードを検出できます。本アプリは状態を変更する前に監査レコードを書き、後から書くことはありません。したがって証跡が実際より多くを語ることはあっても、少なく語ることはありません。監査レコードを編集・削除する機能は本アプリにはなく、証跡が消えるのはアンインストールのときだけです。

Forge SQL の監査証跡が正となる記録です。ページに表示される承認状態は表示用の控えで、ページ上のラベルはページを開くたびにその状態から導き直されます。

6. 当方のシステムへのアクセス

本アプリの開発と公開に関わるすべてのアカウント(Atlassian の開発者アカウント、ソースコードを置く GitHub アカウント、本サイトをホストする Vercel アカウント)で多要素認証を有効にしています。ソースコードは非公開の GitHub リポジトリにあり、保守者は1名です。

当方は Forge ストレージの外にお客様のデータの複製を持たず、本アプリがそこに保持する内容を当方が読むこともできません。本アプリが当方に何かを送信することもありません。サポートのお問い合わせでは、お客様が共有を選んだ情報だけをもとに対応します。

7. 開発とリリースの管理

デプロイの前には毎回、本アプリの自動チェックを実行します。バックエンドと画面のユニットテスト、TypeScript の型検査、lint、Atlassian の Forge lint、そして本アプリが外部通信の権限を持った時点で失敗する Runs on Atlassian の適格性チェックです。いずれかに失敗した変更はリリースしません。

すべての依存パッケージはロックファイルで固定しており、ビルドには当方が確認したバージョンだけが使われます。本アプリの画面は Atlassian の Forge UI Kit で作られており、実行時にサードパーティのスクリプトを読み込みません。

デプロイは、保守者が認証した Forge CLI から行います。お客様のサイトへの更新は Atlassian が Forge を通じて配信するため、当方から直接ファイルをインストールすることはなく、マイナー更新はお客様側の操作なしに反映されます。新しい権限を追加する更新は、お客様のサイト管理者が承認してから有効になります。

8. 脆弱性管理

GitHub Dependabot が本アプリの依存パッケージを監視し、新しく公開されたアドバイザリを当方に通知します。加えて、リリースの前には毎回 npm audit を実行します。本アプリは描画エンジンのような大きなサードパーティのランタイムを同梱しておらず、依存パッケージは Forge SDK と React です。

各脆弱性は CVSS スコアで評価し、Atlassian が Marketplace アプリに定める期限内に修正します。Critical(9.0以上)は10日以内、High(7.0〜8.9)は4週間以内、Medium(4.0〜6.9)は12週間以内、Low(4.0未満)は25週間以内です。発見者が Atlassian、お客様、研究者、当方自身のいずれであっても同じ期限を適用します。

9. 脆弱性の報告

本アプリまたは scritt.com にセキュリティ上の問題を見つけたと思われる場合は、再現手順を添えて support@scritt.com までメールでお知らせください。すべての報告に2営業日以内に受領の返信をします。

当方は調査結果をお伝えし、修正が終わるまで経過をお知らせし、ご希望があれば謝辞を掲載します。詳細を公開する前に修正の時間をいただくこと、また検証の際にご自身のものでないデータへのアクセス・変更・削除を行わないことをお願いします。バグバウンティ制度はありません。

10. セキュリティインシデントへの対応

セキュリティインシデントとは、本アプリを通じてお客様のデータが漏えい・改ざん・消失する事象、または本来持たない権限で本アプリを使えてしまう事象を指します。インシデントを把握したとき、当方は次の手順で対応します。

  • 事実を確認し、影響を封じ込めます。修正のデプロイ、または修正が整うまで該当機能を停止することを含みます。
  • 根本原因を修正し、Forge を通じてデプロイし、テスト用サイトで修正を検証します。
  • Marketplace のセキュリティ要件に従い、Marketplace パートナーサポートの窓口を通じて Atlassian に報告します。
  • Atlassian が Marketplace パートナーに提供する連絡先情報と本アプリのリリースノートを通じて、影響を受けるお客様に遅滞なく通知し、何が起きたか、どのデータが関係したか、当方が何をしたかをお伝えします。
  • 経緯と再発防止のために変えた点を記録し、管理策が変わった場合は本ポリシーを更新します。

11. ログと監視

本アプリのバックエンドは診断ログを Forge に書き出し、Atlassian がそれを保管します。ログの各エントリには、ページ・スペース・ワークフロー・アカウントの識別子と Confluence API 呼び出しの結果が含まれることがあります。ページの本文、氏名、メールアドレスが含まれることはありません。当方は報告やエラーを調査するときにこのログを参照します。本アプリはアクセス解析を行わず、トラッキング用スクリプトも読み込みません。

12. 本ポリシーの変更

当方の運用が変わったときは、このページを更新し、冒頭の日付を変更します。重要な変更は Marketplace のリリースノートにも記載します。

13. お問い合わせ

セキュリティに関するご質問や報告: support@scritt.com。2営業日以内に返信します。