[re:Invent 2019] 「S3 Access Point」を自分なりに解釈してみた #reinvent
はじめに
こんにちは。大阪オフィスの林です。
2019年12月02日〜2019年12月07日で、アメリカのラスベガスにてAWS re:Invent 2019が開催されています!この記事は速報でも紹介された、「Amazon S3 Access Points」の公式ドキュメントを見ながら自分なりに「どのような点で良いアップデートなのか?」「どんな使い方が出来るのか?」などを噛み砕きながら解釈してみたのでまとめておきたいと思います。
何のためのアップデートか?
「Amazon S3」は、ユースケースを問わず様々なアプリケーションやチーム・個人のデータセットを格納するための共有バケットが使われています。この共有バケットへのアクセスを管理にはこれまで「1つのバケットポリシー」でアクセス許可レベルの異なる多数のアクセスを制御をしていました。アプリケーションが拡大していくと、バケットポリシーが複雑になり管理に時間が掛かっていました。
このような管理の煩雑さを解消するため、この度「Amazon S3 Access Points」が提供されることになりました。 「Amazon S3 Access Points」は、1つの共有バケットに対して、用途毎にカスタマイズされた一意の名前と権限を持つ個別のアクセスポイントを複数(上限:リージョンごとに1,000個)作成することが出来ます。
何がいいのか?
ここまででお分かりのように、「Amazon S3 Access Points」を使うと、アクセス制御のポリシーが用途毎で分かれることになるため、管理がとてもラクになります。また、従来のバケットポリシーとは異なり、既存のバケットポリシーを触らずS3の共有バケットに対するアクセス制御の設定変更や設定追加が可能になるため、影響範囲を限定するという点も「Amazon S3 Access Points」のメリットといえるのではないでしょうか。
どんな使い方が出来るのか?
大規模な共有データセット
これは上記の例で出したようなユースケースです。
1つの大きなバケットポリシーでS3のバケットへアクセス制御をおこなう必要がある場合、アプリケーションごとに個別のアクセスポイントポリシーに分解できます。これにより、共有データセット内で実行中のアプリケーションへの影響を心配することなくアクセスポリシーの構築に集中することができます。
指定されたVPCでのみのアクセスを制限
「Amazon S3 Access Points」作成時に、VPCに閉じたアクセスに限定する「Amazon S3 Access Points」にするのか、インターネットに公開する「Amazon S3 Access Points」にするのかを指定できます。
すべてのS3ストレージアクセスをVirtual Private Cloud(VPC)から発生するように制限することでデータを保護することもできます。
特定のアカウントIDのアクセス制限も可
「Amazon S3 Access Points」を使用すると、特定のアカウントIDが所有するアクセスポイント(つまりバケット)へのアクセスのみを許可するVPCエンドポイントポリシーを指定できます。この逆でVPCエンドポイントを介した他のS3アクセスを拒否することもできます。
まとめ
従来、単一のバケットポリシーで管理していたS3へのアクセス制御の煩雑さが解消されるよいアップデートではないでしょうか!また、ポリシー(アクセスポイント)をアプリケーション毎で分けたりすることで、既存環境への影響を最小限にした設定変更が出来るという点でもよいアップデートではないかと思います!
以上、大阪オフィスの林がお送りしました!