5
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?

More than 3 years have passed since last update.

SRAAdvent Calendar 2021

Day 5

Amazon S3 Access Points のエイリアス とは

Last updated at Posted at 2021-12-04

の記事解説です。

S3 アクセスポイントとは

S3 アクセスポイントのエイリアスの前にS3 アクセスポイントについて。

(困) S3 バケットを複数のユーザーで共有してアクセス制限を行う場合、バケットポリシーが肥大化して管理が煩雑になってしまう。

s3accesspoint.drawio.png

ユーザーごとにアクセスポイントを作成することでアクセスポイントごとにアクセス制限を記載することができ、管理しやすくなります。

s3accesspoint-Page-2.drawio.png

作成できるアクセスポイントの種類

VPC からのリクエストのみ許可するアクセスポイント

s3accesspoint-Page-3.drawio.png

インターネット越しのリクエストを許可するアクセスポイント

s3accesspoint-Page-4.drawio.png

の 2 種類が定義できます。

S3 アクセスポイントのエイリアスとは

で、S3アクセスポイントのエイリアスですが、今までS3バケット直で呼んでいたところ、S3アクセスポイント経由に変更する際に置き換えられるモノになります。

アクセスポイントを作成すると、Amazon S3 はデータアクセス用の Amazon S3 バケット名の代わりに使用できるエイリアスを自動的に生成します。このアクセスポイントエイリアスは、あらゆるアクセスポイントのデータプレーンオペレーションにおいて、Amazon リソースネーム (ARN) の代わりに使用することができます。

やってみる

S3バケットを作成し、アクセスポイントへアクセスコントロールを委任するようにバケットポリシーを設定します

image.png

アクセスコントロールをアクセスポイントに委任するバケットポリシー
{
    "Version": "2012-10-17",
    "Statement" : [
    {
        "Effect": "Allow",
        "Principal" : { "AWS": "*" },
        "Action" : "*",
        "Resource" : [ "Bucket ARN", "Bucket ARN/*"],
        "Condition": {
            "StringEquals" : { "s3:DataAccessPointAccount" : "Bucket owner's account ID" }
        }
    }]
}

アクセスポイントの作成を押します

image.png

アクセスポイント名を記載、ネットワークオリジンをインターネット、アクセスポイントポリシー1を作成します。

image.png

作成出来ました。アクセスポイントエイリアスも振られていますね。

image.png

アクセスポイント経由でファイルをアップロードしてみます

image.png

$ aws s3 cp ./text.txt s3://arn:aws:s3:ap-northeast-1:{アカウントID}:accesspo
int/yu-yama-test

上がっています。

image.png

エイリアス経由でも...

image.png

$ aws s3 cp ./text2.txt s3://yu-yama-test-th1rsmdpeejqwnuxpdqknkhcmg4hnapn1
a-s3alias

上がっています。

image.png

S3直でも...

image.png

$ aws s3 cp ./text3.txt s3://yu-yama-20211118

上がっています。

image.png

単純にS3バケット名をアクセスポイントエイリアス名に置き換えられることが確認できます。

アクセスポイントの使いどころ

  • 大規模な共有データセット: Access Points を使用すると、ある 1 つの大型サイズのバケットポリシーを分割して、共有データセットにアクセスする必要のある各アプリケーション向けに個別のアクセスポイントポリシーを単独で作成できます。このため、あるアプリケーションに対して正しいアクセスポリシーを作成するのがこれまでよりも簡単になり、ほかのアプリケーションが共有データセット内で実行していることを気にする必要はありません。

  • データを安全にコピー: AWS の内部ネットワークや VPC を利用して、S3 Copy API を使って同一リージョンの Access Point 間でデータを高速、安全にコピーします。

  • VPC へのアクセスを制限: 1 つの S3 アクセスポイントで、Virtual Private Cloud (VPC) を経由するすべての S3 ストレージアクセスを制限できます。 また、サービスコントロールポリシー (SCP) を作成して、すべてのアクセスポイントを Virtual Private Cloud (VPC) に制限して、データをプライベートネットワーク内でファイアウォール管理できます。

  • 新しいアクセスポリシーをテスト: アクセスポイントを使用すると、アプリケーションをアクセスポイントに移行するときやアクセスポリシーを既存のアクセスポイントにコピーするときには事前に新しいアクセスポリシーを簡単にテストできます。

  • 特定のアカウント ID にアクセスを制限: S3 Access Points を使用すると、特定のアカウント ID が所有するアクセスポイント (必然的にバケットも) だけにアクセスを制限するように VPC エンドポイントポリシーを指定できます。この結果、同じアカウント内のバケット群へのアクセスを許可すると同時に VPC エンドポイント経由のほかの S3 アクセスを拒否するアクセスポリシーの作成が簡単になります。

  • 一意の名前を付与: S3 Access Points では、アカウント内およびリージョン内で一意であれば、どんな名前でも指定できます。たとえば、「test」というアクセスポイントを、アカウントごとに、リージョンごとに設定できます。

複数のユーザー、アプリケーションから利用され、バケットポリシーでは管理しづらくなる場合、VPCからのアクセスに制限する場合、アクセスポリシーをテストする場合に使うと良さそうです。

料金

料金は無料です。

まとめ

エイリアスが使えるようになり、バケットポリシーの管理に疲れていた方々も容易にアクセスポイントの利用へと移行しやすくなりました。まだ使ったことが無い方も、単一のバケットに多数のユーザー(アプリケーション)でアクセスする場合、アクセスポイントの利用を検討しましょう。

  1. IAMユーザー(yu-yama-s3-access)のアクセスポイント経由でS3全操作許可としています

5
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
5
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?