AWS SAA(Solutions Architect - Associate)対策

S3のレプリケーションと保護

このレッスンでは、「消えては困る」という要件を、バージョニング・レプリケーション・オブジェクトロックのどれで満たすのかを言い分けられるようになります。

まず要件文から

ある企業が、契約書のPDFをS3に保管しています。過去に運用担当者の誤操作でファイルが消えた事故があり、二度と起こしたくないと言っています。加えて、監査部門から「保管期間の5年間は、管理者権限を持つ者であっても改変も削除もできない状態にすること」と要求されました。さらに、大規模災害でリージョン全体が使えなくなっても業務を続けられるようにしたいとのことです。

この1文の中に、答えの違う要件が3つ入っています。SAAの設問は、こうして似た保護策を並べて、どれがどの要件に対応するかを問います。

3つの保護は守る相手が違う

守りたいもの使う機能効き方
人の誤削除・誤上書きバージョニング上書きしても前の版が残り、削除は削除マーカーが付くだけ
権限を持つ者による改変オブジェクトロック保持期間の間は誰も消せない
リージョン規模の障害クロスリージョンレプリケーション別リージョンのバケットへ自動で複製する
同一リージョン内での分離同一リージョンレプリケーション監査用や別アカウントへの複製

バージョニングは、この3つすべての土台です。レプリケーションもオブジェクトロックも、バージョニングが有効でなければ使えません。 「レプリケーションを設定したが動かない」という設問が出たら、まずバージョニングを疑います。

誤削除への備えを一段強くする

バージョニングだけでは、権限のある利用者がバージョンを指定して完全に削除できてしまいます。ここで出てくるのがMFA削除で、バージョンの完全削除とバージョニングの停止に多要素認証を要求します。「誤操作でも意図的でも、消せないようにしたい」という要件語には、バージョニング単体ではなく MFA削除やオブジェクトロックを当てます。

オブジェクトロックには保持モードが2つあります。ガバナンスモードは特別な権限を持つ利用者なら解除できるモードで、コンプライアンスモードはルートユーザーを含め誰も解除できないモードです。設問に「管理者であっても」「いかなる利用者も」と書かれていたら、コンプライアンスモードを選びます。「通常は変更させたくないが、例外的な運用は残したい」ならガバナンスモードです。

レプリケーションの読み方

クロスリージョンレプリケーションは、災害対策のほかに、利用者に近いリージョンへ置いて読み取りの遅延を下げる目的でも使われます。設問では、どちらの目的かを要件語で見分けます。「リージョン障害でも継続」なら災対、「海外拠点からの読み取りが遅い」なら近接配置です。

注意点として、レプリケーションは設定した後に作られたオブジェクトが対象です。既存のオブジェクトも複製したいという要件では、バッチレプリケーションを併せて使います。「設定したのに古いファイルが複製されない」という引っ掛けはここから作られます。

また、レプリケーション先へ確実に届くまでの時間を要件にしたい場合は、レプリケーションタイムコントロールを使います。「複製の完了時間に合意が必要」という言い回しが合図です。

要件語から構成への対応

要件文の言い回し構成
誤って上書きしても元に戻したいバージョニング
管理者であっても削除できないことオブジェクトロックのコンプライアンスモード
例外時だけ解除できる保持オブジェクトロックのガバナンスモード
バージョンの完全削除を止めたいMFA削除
リージョン障害でも業務継続クロスリージョンレプリケーション
既存のオブジェクトも複製したいバッチレプリケーション

よくある引っ掛け

1つ目は、誤削除対策にレプリケーションを選ぶ選択肢です。削除の伝播設定にもよりますが、レプリケーションは「別の場所にもう1つ持つ」仕組みであって、時間をさかのぼる仕組みではありません。誤操作対策の第一手はバージョニングです。

2つ目は、改変禁止の要件にバケットポリシーの Deny を当てる選択肢です。ポリシーは権限を持つ者が書き換えられるため、「管理者であっても」という要件を満たしません。ここはオブジェクトロックです。

まとめ

  • バージョニングはレプリケーションとオブジェクトロックの前提条件です
  • 「管理者であっても消せない」はコンプライアンスモードの合図です
  • リージョン障害への備えはクロスリージョンレプリケーションです
  • 設定後の新規オブジェクトだけが複製されるので、既存分はバッチレプリケーションです
  • 誤削除対策にレプリケーションを当てる選択肢は落とします
生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア
編集 LuaGate編集部

復習ミニクイズ

ある金融機関が、取引記録をS3に7年間保管する必要があります。監査要件として「保管期間中は、ルートユーザーを含むいかなる利用者も、記録を上書きまたは削除できないこと」が求められています。この要件を満たす構成はどれですか。