【AWS】 S3技術解説
S3 バケットのライフサイクルポリシーの操作制御
AWS S3 のバケットポリシーで s3:DeleteBucket、s3:DeleteObject、s3:DeleteObjectVersion を拒否設定している場合、通常の操作でのオブジェクト削除は防げますが、ライフサイクルポリシーによる自動削除はこれらの拒否ポリシーの影響を受けません。
これは、ライフサイクルポリシーがバケットレベルで設定され、S3 システム自体によって自動的に実行されるため。
ライフサイクルポリシーの設定拒否
AWS の IAM ポリシーを使用して s3:PutLifecycleConfiguration(ライフサイクルポリシーを設定または変更する権限)と s3:GetLifecycleConfiguration(ライフサイクルポリシーを表示する権限)を拒否することで、ユーザーがライフサイクルポリシーを設定または閲覧することを防ぐ。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Deny",
"Action": [
"s3:PutLifecycleConfiguration",
"s3:GetLifecycleConfiguration"
],
"Resource": "arn:aws:s3:::バケット名"
}
]
}
S3ライフサイクルアクションとCloudTrailのログ
AWS CloudTrail の機能
AWS CloudTrailは、AWSアカウントに対するAPI呼び出しや関連アクティビティの履歴を記録し、ユーザーやロールによるAPIリクエストの監視とログ記録を提供するサービスです。CloudTrailは、セキュリティ分析、リソース変更の追跡、およびコンプライアンス監査のために重要な役割を果たします。
ライフサイクルアクションとCloudTrailの相違点
通常、CloudTrailはS3を含む多くのAWSサービスで行われるAPIリクエストをキャプチャするが、ライフサイクルアクションはCloudTrailのログには現れない。
理由は次の通り
内部プロセス: S3 ライフサイクルアクションは、Amazon S3 システム内部で自動的に実行されるプロセス。ユーザーが直接発行するAPIリクエストではなく、S3システムによって自動的に行われるため、外部からのAPIコールとは見なされない。
エンドポイントの違い: CloudTrailは主に外部エンドポイントへのAPIリクエストを記録します。S3ライフサイクルアクションは、Amazon S3の内部エンドポイントで実行されるため、これらの自動的なプロセスはCloudTrailによって記録される外部API呼び出しとは異なる。
監視の代替方法
S3アクセスログ: バケットレベルでS3アクセスログを有効にすることで、バケットに対するすべてのリクエストの詳細を含むログを取得できます。これには、オブジェクトへのアクセス試みやデータの削除などが含まれます。
監視ツールの使用: AWSのサービスであるAmazon CloudWatchを使用して、バケットの状態や活動を監視する。
S3 Glacier のデータ保存とアクセスプロセス
データアップロード
ユーザーは、S3 Glacierに直接データをアップロードすることができますが、一般的にはAmazon S3バケットでライフサイクルポリシーを設定して、特定のオブジェクトを自動的にS3 Glacierに移行させることが多いです。これらのオブジェクトはS3バケット内に存在しているように見えますが、実際にはGlacierに保存されています。
アーカイブIDとオブジェクトキー
S3 Glacierにデータを保存すると、各アーカイブに一意のアーカイブIDが割り当てられます。Amazon S3を経由してGlacierに移行された場合、オブジェクトはS3のオブジェクトキーを保持しますが、内部的にはアーカイブIDによって管理されます。
データの取り出し
S3 Glacierからデータを取り出すプロセスは、即時アクセスを提供する他のS3ストレージクラスとは異なります。取り出しリクエストを行った後、数分から数時間かかる場合があります(取り出しオプションによる)。利用可能な取り出しオプションは以下の通りです。
標準取り出し: 通常3〜5時間で完了します。
緊急取り出し: 1〜5分で完了するが、コストが高い。
バルク取り出し: 最も低コストで、5〜12時間かかる。
AWS Management Console でのストレージクラスの確認方法
AWS Management Consoleにログイン: ブラウザからAWS Management Consoleにログインし、S3サービスにアクセスします。
対象のバケットを選択: 表示されたS3ダッシュボードから、確認したいオブジェクトが含まれるバケットを選択します。
オブジェクトリストの確認: バケットを開くと、その中に保存されているオブジェクトのリストが表示されます。このリストビューには、オブジェクト名、最終更新日、サイズとともに「ストレージクラス」という列があります。
ストレージクラスの確認: オブジェクトの隣にある「ストレージクラス」の列を見ることで、そのオブジェクトがどのストレージクラスに属しているかが分かります。例えば、「Standard」、「Intelligent-Tiering」、「Glacier」、「Deep Archive」などのラベルが表示されます。
S3 Storage Lens
Amazon S3の使用状況とパフォーマンスに関する洞察を提供する分析ツールです。このツールは、S3バケット全体にわたる詳細なレポートとメトリクスを生成し、データストレージの最適化やコスト削減の意思決定をサポートするのに役立ちます。S3 Storage Lensの特徴として、以下の点が挙げられます。
ダッシュボードとメトリクス: S3 Storage Lensは、複数のダッシュボードを提供しており、これを利用することで、S3の利用パターン、アクティビティトレンド、効率性、そしてコストに関連するメトリクスを視覚的に把握することができます。
カスタマイズとフィルタリング: ユーザーは、特定のバケット、地域、アカウントに焦点を当てたカスタムダッシュボードを作成することができます。また、特定の期間やタグに基づいてデータをフィルタリングすることも可能です。
最適化の推奨事項: S3 Storage Lensは、データの保存方法を改善するための推奨事項を提供します。これには、使用されていないデータのクリーニングや、よりコスト効果的なストレージクラスへの移動などが含まれます。
セキュリティとコンプライアンス: このツールはセキュリティの設定やアクセスパターンを分析し、データ保護に関する問題点を指摘することもあります。これにより、適切なセキュリティ対策が講じられているかを確認することができます。
アクセス状況の可視化: データの取り扱いやアクセス頻度を視覚的に理解することができるため、必要に応じてストレージ戦略を調整することが容易になります。
S3 のバージョニングとライフサイクル
S3 バージョニング
S3バージョニングは、S3バケット内のオブジェクトに複数のバージョンを保持する機能です。これにより、誤って削除または上書きされたデータを復元することが可能になります。バージョニングが有効になっているバケットでは、オブジェクトを上書きしても以前のデータは消えず、新しいバージョンが追加される形になります。各バージョンには一意のバージョンIDが割り当てられます。
データ復旧: 誤って削除されたデータや以前のバージョンに簡単に戻すことができます。
履歴の追跡: オブジェクトの変更履歴を確認し、必要に応じて特定の時点のデータにアクセスできます。
S3 ライフサイクル
S3ライフサイクルは、オブジェクトのストレージクラスと保持期間を自動的に管理する機能です。ライフサイクルポリシーを設定することで、特定の条件に基づいてオブジェクトを自動的に別のストレージクラスに移行させたり、削除したりすることができます。例えば、アクセスが少ない古いデータを低コストのストレージクラス(例:S3 Standard-IA)に移行させることができます。
コスト削減: 使用頻度が低いデータをより低コストのストレージに移動する。
自動削除: 一定期間が経過したデータを自動的に削除する。
よろしければサポートお願いします!よりいい情報を発信します。