[AWS]AWSソリューションアーキテクトアソシエイト出題試験範囲 第3回 〜Operation/S3〜
1 min readこんにちは!!
少し期間が空いてしまいましたが、S3について今回も学習していきたいと思います!
S3はAWSの中でも中心的なサービスで、かなり勉強することが多いのです!!
では、今回のお品書きです…
- バージョニング管理機能について
- S3のアクセス管理方式について
- バケットポリシーについて
- まとめ
1.バージョニング管理機能について
バージョニング機能はざっくりいうと、ユーザーの誤操作などでデータを削除してしまっても、バージョンから復元ができる機能です!
デフォルトで、この機能は無効となっているため、有効にすることで使用が可能となります。
バージョニング機能は、バケット内のオブジェクトに対して「バージョン」という概念を生み出します。「バージョン」とは、ゲームで言うセーブデータみたいなものです。
バイオハザードやギャルゲーなどの自分の意図したタイミングでセーブできるゲームでは、いくつもセーブデータが作成されますよね??それらが「バージョン」と呼ばれるものです!
↓バイオハザードのセーブデータです。
では、どのようなタイミングでバージョンが作成されるかと言いますと、同じキーを持つオブジェクトがアップロードされた場合に、新しくアップロードしたオブジェクトは現在のバージョンになり、前のオブジェクトは以前のバージョンになります。
もう少し噛み砕いていうと…
オブジェクトをアップロードした際に、それと同じキーを持つオブジェクトが以前のバージョンとしてセーブされます!ということになります。
因みにですが…
「オブジェクトのバージョンを消したら意味ないじゃん!!」という方に、「MFA delete」という、オブジェクトバージョンを完全に削除したり、バケットのバージョニング状態を変更したりするにはMFA認証を必要とさせるオプションがあります。
2.S3のアクセス管理について
S3のアクセス権限と一口に言っても、「バケット」「オブジェクト」などによってアクセス方式が違うので、それらにも注目して紹介していきたいと思います。
・IAMユーザーポリシー
内部のIAMユーザーやリソースに対して、S3に
対してのアクセス権限や操作権限を与えることが
できる。
・バケットポリシー
外部のユーザーも含めてJSON形式でのバケット
へのアクセス権限を付与することができる。
・ACL
オブジェクト(バケットも可)単位でのアクセス
権限を付与することができる。
・事前証明書付きURL
AWS SDK(Pythonなどのプログラミング言語
を使用する開発キッド)で生成した、URLで
S3オブジェクトのURLにアクセスする権限を一
定期間付与することができる。
⇨ユースケースとしては、主にインターネット上
の第三者にURL(バケットの中身)を閲覧さ
せるときに使用する。
3.バケットポリシーについて
バケットポリシーはS3のバケットに対して設定するポリシーです。
バケットを指定して、アクションを押すことで設定することができ、JSON(JAVA Script)で記載されます。
※※バケットポリシーの例※※
——————————-
{ “Version”:”2012-10-17″,
”Statement”:[ { “Sid”:”PublicRead”, ”Effect”:”Allow”,
”Principal”: “*”,
”Action” [“s3:GetObject”,”s3:GetObjectVersion”], ”Resource”:
[“arn:aws:s3:::DOC-EXAMPLE-BUCKET
/*”] } ] }
——————————-
バケットポリシーは以下の要素で
構成がされています。
・Version
⇨ポリシーの言語のバージョン
・Statement
⇨ここからポリシーを記載していく
・Sid
⇨バケットポリシー名
・Effect
⇨許可をするポリシーであれば、「Allow」
許可をしないためのポリシーなら、「Dinai」
・Principal
⇨ポリシー内容を適用するAWSアカウントや、
IAMユーザーを指定する。
・Action
⇨このポリシーで定義する内容。
このバケットに対して、何をしていいのか?
何をしたらいけない、何をさせたくないのか?
・Resource
⇨ポリシーを適用するバケットを指定。
・Condition
⇨ポリシーを適用する場合の条件で、
例えば、IPアドレスなどを絞ることができる。
これらをJSON形式で記載することによって、バケットポリシーを作成することができます。
バケットポリシーを覚える際に、IAMポリシーと記載方法は同じJSONだが、設定方法は違うということに注意をしてください!
4.まとめ
・バージョニング管理機能を使用することで
誤って削除してしまったオブジェクトなどを
復活させることが可能!
・S3のアクセス管理方式は、誰を対象にするのか
で異なってくるが、外部に公開する際には、主に
「事前証明書付きURL」を使う。
・バケットポリシーは、バケット単位で作成する事
ができ、いくつもの要素で構成がされている。