> ## Documentation Index
> Fetch the complete documentation index at: https://docs.casebender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ストレージプロバイダーの選択と認定

> アダプター互換性と実環境認定を混同せずにプロバイダーを選択する

まず運用要件でストレージを選択し、次にそのリリースの
機械可読なサポート宣言を確認してください。CaseBenderは、SDKが実装するすべてのバックエンドを
リリース認定済みとは扱いません。

## 選択フロー

1. Webとワーカーの両方から到達可能な、外部の顧客管理サービスを選択する。
2. 分離した `quarantine`、`records`、および `ephemeral` の場所をプロビジョニングする。
3. アイデンティティ、TLS/プライベートCA、暗号化、バージョニング、保持、リーガル
   ホールド、監査ログ、Egress、バックアップ、およびリストア要件を確認する。
4. 正確な製品プロファイルを
   `scripts/storage/certification-matrix.json` と比較する。
5. ワークロードネットワークから、正確な製品/バージョンに対して実環境適格性確認を実行する。
6. サニタイズしたエビデンスに署名し、リリース記録とともに保持する。

## 現行マトリックスの解釈

| マトリックスID               | 実行時アダプター | サポート対象として宣言 | 必須モード  | 運用上の意味                             |
| ---------------------- | -------- | ----------- | ------ | ---------------------------------- |
| `openshift-odf-rgw`    | `s3`     | はい          | `live` | 正確なODF/Ceph実環境エビデンスが合格した後にのみサポート対象 |
| `aws-s3`               | `s3`     | いいえ         | `live` | アダプター実装済み。リリース認定を主張しない             |
| `google-cloud-storage` | `gcs`    | いいえ         | `live` | アダプター実装済み。リリース認定を主張しない             |
| `azure-blob`           | `azure`  | いいえ         | `live` | アダプター実装済み。Azureを未サポートのコードとして記述しない  |
| `local-development`    | `local`  | いいえ         | `unit` | 開発/シングルノードテスト専用                    |

現行のODF/Ceph実環境エビデンスは顧客資格情報でブロックされています。設定済みで
適格性確認の準備は完了していますが、認定済みではありません。リリースバリデーターが
署名済みの正確バージョンエビデンスを受け入れた後にのみ、顧客向け状態を更新してください。

## エビデンスレベル

* **Unit** は、制御されたコードテストでローカルアダプターの動作を証明します。
* **Emulator** は、エミュレーターのサブセットに対するSDKおよび契約互換性を証明します。
* **Live** は、意図したネットワーク、信頼、アイデンティティ、およびポリシーコンテキストにおいて、
  名前付き製品と正確なバージョンに対する必須操作を証明します。

`requiredCertification` が `live` であるマトリックスエントリを、エミュレーター結果で
満たすことはできません。「S3
compatible」「Ceph」「Azure Blob」といった製品ファミリー名だけでは、正確な対象
バージョンとエビデンスダイジェストなしでは不十分です。

エミュレーター互換性は実環境認定ではありません。

## マトリックスの検証

```bash theme={null}
node scripts/storage/validate-certification-matrix.mjs
node --test scripts/storage/certification-matrix.test.mjs

# Release use requires a sanitized evidence JSON document.
node scripts/storage/validate-certification-matrix.mjs \
  --release \
  --evidence '<path-to-sanitized-evidence.json>'
```

`scripts/storage/certification-evidence.template.json` から開始してください。エビデンスに
資格情報、トークン、接続文字列、秘密鍵、オブジェクト内容、
顧客オブジェクト名、または署名付きURLを追加してはなりません。

## 設定例

本番では、モード `0400` または `0600` でマウントした
`STORAGE_CONFIG_FILE` を優先してください。この形状は例示です。

```json theme={null}
{
  "profiles": {
    "quarantine": { "provider": "s3", "bucket": "<quarantine-bucket>", "region": "<region>" },
    "records": { "provider": "s3", "bucket": "<records-bucket>", "region": "<region>", "requireWorm": true },
    "ephemeral": { "provider": "s3", "bucket": "<ephemeral-bucket>", "region": "<region>" }
  }
}
```

完全な厳密プロファイルスキーマは、各プロバイダーページに記載されています。ドキュメントに
アクセスキーを記載したり、値が入った設定ファイルをコミットしたりしないでください。

## 再適格性確認のトリガー

次のいずれかを変更した後は、実環境エビデンスを再実行してください。

* CaseBenderリリースまたはストレージSDK
* プロバイダー、ODF、Ceph、アカウント、またはAPIバージョン
* バケット/コンテナのセキュリティ、バージョニング、保持、または不変性
* アイデンティティ、ロール、資格情報、エンドポイント、プライベートCA、またはEgressポリシー
* スキャナー/プロモーション境界
* バックアップ、移行、およびリストアツール

関連ガイダンス:

* [エンタープライズストレージサポートポリシー](/ja/deployment/storage-support-policy)
* [S3互換認定](/ja/deployment/storage-s3-compatible)
* [ストレージリリースセキュリティ](/ja/deployment/storage-release-security)
