0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[AWS]Amazon S3 バージョニング・オブジェクトロック 概要

Posted at

Amazon S3の「バージョニング」と「オブジェクトロック」機能についてまとめる。

用語

  • S3バージョニング
    同一バケット内で同じキー名のオブジェクトに対して複数のバージョンを保持できる機能。これにより、オブジェクトが更新・削除された際にも、以前の状態に戻すことが可能となる。
  • オブジェクトロック
    オブジェクトに対し、指定した期間または無期限に変更(削除や上書き)を防止する機能。
    • Governanceモード:一定の管理者権限があれば、ロック解除や上書きが可能。
    • Complianceモード:設定された期間は強制的に不変状態となり、いかなる権限をもってしても変更できない(WORM: Write Once Read Many)。

用途

  • S3バージョニング
    • 誤操作対策:誤ってオブジェクトを削除または上書きしてしまった場合に、以前のバージョンから復元できる。
    • 変更履歴の保持:オブジェクトの更新履歴を保存し、変更内容の追跡や監査に利用可能。
    • バックアップ・災害復旧:データ損失時の復旧手段として機能する。
  • オブジェクトロック
    • 法令遵守:金融や医療など、規制に基づくデータ保持要件を満たすために、データの不変性を保証する。
    • セキュリティ対策:内部・外部からの不正な削除や改ざんを防止し、重要データを保護する。
    • コンプライアンス遵守:企業ポリシーに則ったデータ管理を実現する。

メリット

  • S3バージョニング
    • データ保全:誤削除・上書きによるデータ損失リスクを大幅に低減。
    • 迅速な復元:以前のバージョンに迅速にロールバックでき、システムの可用性を向上。
    • 監査対応:変更履歴の追跡が可能なため、内部監査やセキュリティ対策に有効。
  • オブジェクトロック
    • 不変性の保証:設定された期間中、データが意図せず変更されるリスクを排除。
    • コンプライアンス強化:規制に応じたデータ保存ポリシーを実装することで、法的リスクを低減。
    • セキュリティ向上:内部・外部の悪意ある操作からデータを保護。

未設定時に生じるリスク

  • S3バージョニング未設定の場合
    • 誤ってオブジェクトを削除または上書きすると、元に戻す手段がなくなり、データ損失のリスクが増大する。
    • 変更履歴が残らないため、監査対応やトラブルシューティングが困難になる。
  • オブジェクトロック未設定の場合
    • 内部または外部からの不正な削除や改ざんに対して脆弱となり、データの信頼性や不変性が確保できない。
    • 法令や規制によるデータ保持要件を満たさず、コンプライアンス違反のリスクが発生する。

AWS CLIによる設定方法

S3バージョニングの有効化

aws s3api put-bucket-versioning --bucket <bucket-name> --versioning-configuration Status=Enabled

オブジェクトロックの有効化

バケット新規作成

1.バケット作成時にオブジェクトロックを有効化

aws s3api create-bucket \
    --bucket my-new-bucket \
    --object-lock-enabled-for-bucket

2.オブジェクトロックの構成設定

  • 既存バケットに対して、ロックルール(デフォルト保持ポリシー)を設定する。
  • 例として、GOVERNANCE モードで30日間の保持を設定する場合を示す。
aws s3api put-object-lock-configuration \
    --bucket my-new-bucket \
    --object-lock-configuration '{
         "ObjectLockEnabled": "Enabled",
         "Rule": {
             "DefaultRetention": {
                 "Mode": "GOVERNANCE",
                 "Days": 30
             }
         }
     }'

作成済みバケット変更

  • 既存バケットに対して put-object-lock-configuration コマンドを用い、オブジェクトロックを有効化し、デフォルト保持ポリシーを設定する。
  • 以下は例として、GOVERNANCE モードで30日間の保持を設定するケース。
aws s3api put-object-lock-configuration \
    --bucket my-existing-bucket \
    --object-lock-configuration '{
         "ObjectLockEnabled": "Enabled",
         "Rule": {
             "DefaultRetention": {
                 "Mode": "GOVERNANCE",
                 "Days": 30
             }
         }
     }'

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?