
テープストレージの全機能を備えつつ、物理的なテープを排除
過去のIT部門は「書き込み一回、読み取り複数回」機能(WORM)を提供するテープバックアップに依存していた。ヴァン・ホイエが指摘するようにテープには多くの欠点があるにもかかわらず、一部企業はテープに戻りつつあります。
では、セキュリティ意識の高いITリーダーは、他のシステムからエアギャップされ、遠隔ハッキングから安全な現代的なWORMシステムをどう構築すべきか?
必要なのは、不変性をサポートするAWS互換のS3ストレージだけです。技術的には、コンプライアンスモードのAmazon S3 Object Lockを指します」
S3 Object Lockとは何か、その重要性
AWSのAPIを使用すれば、書き込み一回・読み取り複数回(WORM)モデルでオブジェクトを保存できます。これにより、一定期間または無期限にオブジェクトの削除や上書きを防止できます。オブジェクトロックは、WORMストレージを要求する規制要件への対応や、オブジェクトの変更・削除に対する追加の保護層として役立ちます。
S3互換オブジェクトストレージの典型的な企業利用例はバックアップ先です。バックアップファイルはランサムウェアの主要標的であり、最近の攻撃では稼働中のボリューム上のライブデータだけでなくバックアップもロックされます。これにより被害者は身代金を支払わなければ事業を再開する手段を完全に失います。これはあまりにも実際に頻繁に発生しています。
データのロック方法
Object Lockを効果的に使用するには、いくつかの条件を満たす必要があります。バケット作成時にObject Lockフラグを設定し、そのバケットでバージョン管理を有効化する必要があります。さらに、Object Lockフラグが設定されたバケットに対してPUT Object Lock Configuration APIを使用してロック設定を書き込むには、そのバケットでObject Lockを有効化しておく必要があります。
残念ながら、AWS S3仕様では既存バケットへのオブジェクトロック設定方法がありません。既存バケットでオブジェクトロックフラグを有効化するため、Scalityは近日リリース予定のツールを開発中です。
オブジェクトのロック制御方法
オブジェクトをロックするには? S3ではオブジェクトのロック設定を複数方法で提供しています。ガバナンスモードやコンプライアンスモードなどの保持モードでは、設定された期間が満了するまでオブジェクトのロックが保持されます。
ガバナンスモードでは、特定のユーザーにロック設定を上書きする権限を委任できます。ルートアカウントまたはs3:BypassGovernanceRetention権限を持つユーザーのみが、x-amz-bypass-governance-retention:trueヘッダー付きで削除リクエストを送信し、ロックを無効化してオブジェクトを削除できます。これは、ランサムウェア攻撃によるバックアップファイルの誤削除を防ぐのに有用です。ガバナンスモードは、コンプライアンスモードの保持期間設定を作成する前に、保持期間設定をテストするためにも使用されます。
コンプライアンスモードを使用してオブジェクトにロックが設定されると、保持期間が満了するまで、どのユーザーもオブジェクトのバージョンを削除できません。これにはアカウント内のルートユーザー(アカウント認証情報)も含まれます。設定を上書きしたりバージョンを削除したりする権限を他のユーザーに付与することはできません。
保持期間(オブジェクトが削除から保護される期間)はバケットレベルで設定可能であり、設定適用後にそのバケットに配置される全オブジェクトのデフォルトとして機能します。
バケットに設定されたデフォルトの保持期間は、ヘッダー x-amz-object-lock-retain-until-date を使用して日付と時刻を設定することで、オブジェクトレベルで上書きできます。
- Buckets – 保留期間は日数または年数で設定可能ですが、両方を同時に設定することはできません。
- Objects – 保留期間はオブジェクトの有効期限となる日時として設定できます。
Legal hold(法的保持)もオブジェクトのバージョンに対して有効化できます。法的保持が有効化されると、オブジェクトの保留日や保留モードにかかわらず、法的保持が解除されるまでそのオブジェクトバージョンは削除できません。
オブジェクトのバージョンに対してリーガルホールドを設定するには、PUTオブジェクトリクエスト時にx-amz-object-lock-legal-holdヘッダーを設定するか、PUTオブジェクトリーガルホールドAPIリクエストを使用します。アカウント認証情報を持つルートユーザー、またはs3:PutObjectLegalHold権限が付与されたIAMユーザーは、オブジェクトのバージョンに対してリーガルホールドを設定できます。
S3オブジェクトロックに関連するAPI
- Put Bucket – バケット作成APIを拡張し、バケットへのオブジェクトロック有効化設定を含めることができます。注記: オブジェクトロックが有効化されたバケットでは、Put Bucketリクエストの一環としてバージョン管理が自動的に有効化されます
- Put Object – オブジェクト配置 API を拡張し、x-amz-object-lock-mode、x-amz-object-lock-retain-until-date、x-amz-object-lock-legal-hold ヘッダーを解析して設定をオブジェクトに保存します。
- Copy Object – API を拡張し、オブジェクト配置リクエストと同様のロック設定ヘッダーを受け入れます。
- Create Multipart Upload – APIを拡張し、PUTオブジェクトリクエストと同様のロック設定ヘッダーを受け付ける
- Put Object Lock Configuration – バケットに保存されるオブジェクトのデフォルトロック設定を許可します。このリクエストはオブジェクトロックが有効なバケットでのみ受け入れられます
- Get Object Lock Configuration – バケットメタデータに設定されたオブジェクトロック設定を取得します
- Put Object Retention – オブジェクトバージョンに保持モード/期間設定を設定します
- Get Object Retention – オブジェクトバージョンに設定された保持モード/期間設定を取得
- Put Object Legal Hold – オブジェクトバージョンに法的保持設定を設定
- Get Object Legal Hold – オブジェクトバージョンの法的保持ステータスを取得
このS3機能は、S3Cバージョン7.7.0およびオープンソースのZenko Cloudserverバージョン7.7.0をご利用のお客様に提供開始されました。
データのプライバシー保護、セキュリティ確保、バックアップは最終的に各自の責任です。世界がより繋がり、サイバー犯罪が高度化する中、御社のデータが影響を受けるのは時間の問題です。重要データにオブジェクトロックを活用することは、リスク低減のための追加手段となります。
関連トピックス:
- VMware vCenter Operations(パフォーマンス・モニタリング・バッジ)の概要
- Veeam社、Microsoft System Centerレポーティング用拡張Generic Report Libraryの提供開始
- AWS EBSスナップショットを S3にコピーしてストレージコストを節約する方法
- VMworld2018 in ラスベガス レポート② Veeamセッション
- VMwareユーザ・アカウントのカスタマイズ化でESXiホスト・セキュリティの改善
- KubeCon + CloudNativeCon North America 2019 に参加して
- AWSストレージ・コストのナビゲーション: S3ストレージティアの選択でよくある落とし穴を避ける
- AWS S3へのバックアップについて