Summary: Classes of S3, Access control of S3, S3保存データの暗号化, S3 Object Lock, MFA Delete.
S3に関する知識点
1.ストレージクラスの比較表
S3ストレージクラスによって保存料金や取り出し料金/遅延及び最短保存期間等、下記の表の通りです。
ストレージクラス | 料金高い順 | 取出し料金 | 取出し遅延 | 保存AZ | 最短保存期間 |
---|---|---|---|---|---|
Standard(標準) | 1 | なし | なし | 3以上 | なし |
Intelligent-Tiering | 変動 | なし | 変動 | 3以上 | なし |
標準IA:標準低頻度アクセス (Standard-Infrequent Access) |
2 | 有り | なし | 3以上 | 30日間 |
1ゾーンIA:1ゾーン標準低頻度アクセス (One-Zone-Infrequent Access) |
3 | 有り | なし | 1 | 30日間 |
Glacier Instant Retrieval | 4 | 有り | なし | 3以上 | 90日間 |
Glacier Flexible Retrieval | 5 | 有り | 数分~数時間 | 3以上 | 90間 |
Glacier Deep Archive | 6 | 有り | 数分~数時間 | 3以上 | 180日間 |
2. S3へのアクセス制御方法
2.1 ACL(Access Control List)
S3のACL(アクセスコントロールリスト)は、AWSアカウント単位でアクセス権限を設定する機能です。他のAWSアカウントに対して、S3バケットやオブジェクトへの読み取りまたは書き込みを許可します。
2.2 バケットポリシー
バケット単位でアクセス権限を設定するリソースベースのポリシーです。アクセス元のIPアドレスやドメイン単位でのアクセス制御がでます。
2.3 IAMポリシー(ユーザーポリシー)
IAMユーザー単位でアクセス権限を設定するIDベースのポリシーです。他のAWSアカウントにはアクセス権限を設定できません。
2.3 署名付きURL
非公開設定されたオブジェクトに対して有効期限のついたURLを発行し、AWSアカウントを持っていないユーザーでも一時的にアクセスが可能になる機能のことです。
3. S3保存データの暗号化
S3のデータ暗号化には「サーバー側の暗号化」と「クライアント側の暗号化」の2種類の方法があります。
- 「サーバー側の暗号化(Server-Side Encryption:SSE)」はデータをS3に保存する時にサーバーで暗号化する方法です。サーバー側の暗号化では、データがS3に保存されるタイミングで自動的にS3が暗号化を行います。データを取り出すときはS3がデータを復号して、ユーザーに渡します。
サーバー側の暗号化には、以下3種類の方法があります。
1. S3が管理している鍵を使用する (SSE-S3)
1. AWS KMS(AWS Key Management Service)に保存されているKMSキーを使用する (SSE-KMS)
1. ユーザーが管理している鍵を使用する (SSE-C)
AWS KMSは鍵管理に特化したサービスで、SSE-KMSは鍵の利用状況を自動的に記録するなど高度な鍵管理が可能です。それに対して、SSE-S3は鍵の利用状況を記録するなどの高度な管理はできない代わりに簡単な設定で利用開始できる。
- 「クライアント側の暗号化」はデータをS3に保存する前にクライアント側で暗号化する方法です。クライアント側の暗号化では、データをS3へアップロードする前にクライアント側で暗号化を行い、暗号化したデータをそのままS3に保存します。データを取り出すときは、暗号化したデータをS3からダウンロードした後、クライアント側で復号します。
クライアント側の暗号化には、以下2種類の方法があります。
- AWS KMS(AWS Key Management Service)に保存されているKMSキーを使用する
- クライアント側に保存したルートキーを使用する
4. S3のオブジェクトロック
オブジェクトロックには、保持期間が無期限の「リーガルホールド(Legal Hold)」と、期限付きの「リテンションモード(Retention Mode)」の2種類があります。 リテンションモードは「ガバナンスモード」と「コンプライアンスモード」に分かれており、どちらかを選択します。
大分類 | 小分類 | 権限 | 期限 | 解除 | 読み取り専用ユーザー |
---|---|---|---|---|---|
リーガルホールド | - | S3:PutObjectLegalHold | 無 | 可 | 権限を持ってないUser |
リテンションモード | ガバナンスモード | S3:BypassGovernanaceRetetion | 有 | 可 | 権限を持ってないUser |
リテンションモード | コンプライアンスモード | なし | 有 | 不可 | 全てのユーザー |
5. MFA Delete
MFA Deleteは、S3のバージョニング機能を使用して管理されているオブジェクトを削除する際に、MFAデバイスの認証が必要となる機能です。MFA(Multi-Factor Authentication:多要素認証)とは、ユーザーIDとパスワードでの認証の際に、追加でワンタイムパスワードや指紋などのバイオメトリクスを使用する認証方法です。MFAデバイスには、物理デバイス(例:YubiKey)と仮想デバイス(例:スマートフォンにインストールされたGoogle Authenticator)があります。 MFA Deleteを利用すると、ルートユーザー(AWSとの契約を行ったアカウント)のみが、世代管理されたデータの削除権限を持つようになります。MFA Deleteが有効になっているバケットのオブジェクトを完全に削除するには、ルートユーザーがMFA認証を行い、削除対象のオブジェクトのバージョンIDを指定します。