セキュリティ
Workflow Transactional Emailがどのような基盤で構築されているか、どこで実行されるか、メールの認証情報や保存データがどのように暗号化・隔離されているか、そしてアプリをどのように最新の状態に保っているかについてご説明します。PHPは一切使用していません。
「Workflow Transactional Email」は、Code Creation Labs によって開発・運営されています。このページでは、本アプリの構成、稼働環境、ストアデータの保護方法、およびシステムの最新状態を維持する方法について説明しています。本ページは、ストアオーナーの方や、セキュリティに関するアンケートにご回答いただくすべての方を対象に作成されています。 本アプリがどのようなデータをどのくらいの期間保存しているかについては、データ、プライバシー、およびセキュリティ に記載されています。法的な事項(プライバシーポリシー、データ処理契約、サブプロセッサー)については、法的事項およびデータ保護 に記載されています。
このアプリがどのような基盤で構築されているか
| レイヤー | 当社が使用しているもの |
|---|---|
| アプリケーションコード | Node.js 上の TypeScript です。これは、現在提供されている長期サポート(LTS)リリースです。管理ページ、レイアウトエディタ、および Shopify Flow ステップを実行するサービスは、すべて単一のコードベースで構成されています。 |
| データベースとキャッシュ | PostgreSQL(Google Cloud SQL)とRedis(Google Cloud Memorystore) |
| ホスティング | Google Cloudの「europe-west1(ベルギー、欧州連合)」リージョンにあるGoogle Kubernetes Engine上のコンテナです。データベース、キャッシュ、ファイルストレージ、およびアプリケーションログは、当該リージョン内に保存されています。 |
| Shopifyとの連携 | Shopifyの公式アプリライブラリ、Shopify Flowアクション、オプションの権限に関する管理用GraphQL API、およびShopifyのWebhook |
| メールの配信 | 接続するメールボックス:ご自身のSMTPサーバー、Microsoft 365、またはGoogle Workspaceです。アプリからユーザーへ送信される通知メールは、フランクフルトのAmazon SESを経由して送信されます。 |
| 貴店のストアフロント | テーマ内でも、チェックアウト画面でも、何も実行されません。 |
本サービスには、PHP、WordPress、Java、その他のランタイム環境が一切使用されていません。本アプリはShopify App Storeに掲載されており、Shopifyのセキュリティ要件および顧客データの保護に関する要件を網羅したShopifyのアプリ審査に合格しています。
お客様のデータの保護について
**転送中。**お使いのブラウザ、Shopify、メールプロバイダー、およびアプリ間のすべての通信にはTLSが使用されています。データベースとキャッシュには公開アドレスがなく、当社のプライベートネットワーク内からのみアクセス可能です。
**保存時。**すべてのデータベースおよびファイルストレージは、Google Cloud KMSで当社が管理する鍵を用いて、保存時に暗号化されます。
**さらに、フィールドレベルの暗号化も施されています。**送信に使用される可能性のあるあらゆる情報には、第2の暗号化レイヤーが適用されます。これには、SMTPのユーザー名とパスワード、Microsoft 365およびGoogleのOAuthトークン、保存されているシークレット、ストアのShopifyアクセストークン、および配信停止リストに登録されているメールアドレスなどが含まれます。 各値は、Cloud KMS内の個別の鍵を用いてAES-256-GCMで個別に暗号化され、自動鍵ローテーションが行われます。また、アクションが実行される瞬間のみ、メモリ上で復号化されます。 保護された値の復号処理はすべて、内部のアクセストレイルに記録されます。シークレット値は、アクション履歴が書き込まれる前に伏せられ、Developer API や Sidekick には一切返されません。
**シークレット。**サービス自体のAPI認証情報やキーはGoogle Secret Managerに格納されており、サービスの起動時に読み込まれます。これらはコード内にも、コンテナイメージ内にも、ビルドパイプライン内にも含まれていません。
データの最小化。 このアプリは、お客様のストアのデータにアクセスできない状態でインストールされます。顧客データがメールに送信されるのは、Shopify Flowからそのデータが渡される場合のみです。4つのオプションの権限(1件の注文またはお客様に関するメタフィールドのファイルの読み取り、一意のディスカウントコードの作成)については、その都度確認が行われ、Shopify独自のダイアログを通じて許可され、いつでも取り消すことができます。権限:アプリがストアから読み取れる情報をご参照ください。
誰が何にアクセスできるか
- **そのストアのみです。**すべてのレコードには所属するストアが記録されており、すべてのクエリは認証されたストアの範囲内に限定されます。あるストアが、別のストアのレイアウト、送信者、シークレット、または履歴を読み取ったり変更したりすることは決してできません。
- **認証済みのリクエストのみ受け付けます。**Shopify管理画面内のページは、Shopifyのセッショントークンによって認証されます。Shopify FlowのステップおよびShopify独自のWebhookは、データが処理される前にShopifyのHMAC署名によって検証され、2回配信されたShopify Flowのステップは1回のみ実行されます。
- **レンダリングされたコンテンツです。**レイアウトは当社のサーバー上でレンダリングされ、送信前に結果がサニタイズされます。スクリプト、イベントハンドラ、javascript: URL、iframe、およびフォーム要素は削除されるため、Shopify Flowから渡された値が、受信者の受信箱内でアクティブなコンテンツとして動作することはありません。
- 送信リクエスト。「HTTP Request」アクション、URL から取得される添付ファイル、およびメタフィールドで参照されるファイルについて、アプリがユーザーに代わって接続する URL は、接続前にチェックされます。ループバック、リンクローカル、クラウドメタデータ、およびプライベートネットワークのアドレスは、リダイレクトを経由する場合も含め、拒否されます。リダイレクトには上限が設けられており、レスポンスのサイズにも制限があります。
- **当社のチームについて。**本番システムへのアクセスは、個別のアカウントを用いたGoogle Cloud IAMを通じてのみ行われます。社内のメンテナンスツールはインターネットに公開されていません。
アプリの最新状態を維持する方法
- **すべての変更は、リリースされる前にスキャンされます。**パイプラインでは、型チェックやリンティング、静的アプリケーションセキュリティテスト(SAST)、シークレットの検出、依存関係の脆弱性スキャン、およびコンテナイメージのスキャンが実行されます。当社のリリース基準は、依存関係およびイメージ内に既知の脆弱性がゼロであることです。
- **ランタイムとオペレーティングシステム。**Alpine LinuxをベースとしたNode.jsのコンテナイメージは、リリースごとに再構築されるため、ランタイムとオペレーティングシステムのパッチが継続的に提供されます。マネージドKubernetesプラットフォームにより、基盤となるノードのパッチ適用が維持されます。
- **Shopifyプラットフォームです。**弊社では、ShopifyのAPIバージョンおよびShopifyのアプリライブラリに関するセキュリティアドバイザリを常に把握し、更新を速やかに適用しております。本アプリは、最新のAdmin APIバージョンで動作しています。
- **セキュリティレビュー。**当社は、すべてのルート、データパス、およびデータベースクエリについて、定期的に包括的な内部レビューを実施しており、直近では2026年10月に実施いたしました。
- **監視。**可用性は24時間体制で監視されており、当社のstatusページで公開されています。また、エラーが発生した場合はアラートが送信されます。運用ログは同じEUリージョンに保存され、最長30日間保持されますが、認証情報や機密情報は一切含まれていません。
保存と削除
- 送信された内容を記録するアクション履歴は、お客様データにあたるため、30日後に自動的に削除されます。
- アンインストールを行うと、レイアウト、送信者、秘密情報、履歴、配信停止リスト、およびアップロードされたファイルなど、すべてが即座に、かつ復元不可能な形で削除されます。
- Shopifyの必須プライバシーリクエスト(customers/data_request、customers/redact、shop/redact)は、Shopifyが定める期限内に自動的に処理されます。これには、お客様の配信停止リストへの登録も含まれます。
- 保存されている情報の完全な一覧は、データ、プライバシー、およびセキュリティ に記載されています。下請け処理業者および保存期間については、privacy policy をご覧ください。署名済みのデータ処理契約書は、workflow-transactional-email.app/dpa からご請求いただけます。
セキュリティ上の問題を報告する
脆弱性を見つけたと思われる場合、またはセキュリティに関する質問票への回答が必要な場合は、support@codecreationlabs.com までメールをお送りください。セキュリティに関する報告については、優先的に確認・対応させていただきます。
