0
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.

Amazon S3 バケットへのアクセスを許可する VPC や IP アドレスを指定する方法を教えてください。をやってみる。

Posted at

はじめに

某金融業界にもようやくAWSの波が来つつあるこの頃、とりあえずデータセンターとAWSをDirect Connectでつないでセキュリティを確保しつつ、AWSのElasticなコンピューティングパワーを活用するというやり方が今後スタンダードになりそうな予感です。

今回のゴール

そうすると問題なのがインターネット禁止という制約。今回は、S3のStatic Web Hostingで作るWebサイトを、インターネットアクセス禁止、特定のVPC経由のみ可能とする。というのをやります。

AWS Developer Forum最高

ググったけど全然わからなかったので、AWS Developer Forumに聞いてみたところ、一瞬で解決したので、みなさんもググってQiita読んでも解決しなかったら、Forumに投稿してみるとよいと思います。

・Discussion Forums > Category: Japanese Forums
https://forums.aws.amazon.com/category.jspa?categoryID=9

参考URL

Amazon S3 バケットへのアクセスを許可する VPC や IP アドレスを指定する方法を教えてください。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/block-s3-traffic-vpc-ip/

手順

設定手順

VPC

  • 「1 個のパブリックサブネットを持つ VPC」を作成する
  • サービスエンドポイントに「com.amazonaws.us-east-1.s3」を追加する
    • こいつがVPCからS3にインターネット経由しないでアクセスするためのもの
  • エンドポイントのメニューで、作成したVPCのエンドポイントIDをメモしておく(vpce-xxxxxxxxxxxxxxxxx)

S3

  • バケットを作る
  • 作ったバケットのルートフォルダにindex.htmlをアップロードする
    • index.htmlを公開する
  • 作ったバケットのプロパティ>「Static website hosting」
    • 「このバケットを使用してウェブサイトをホストする」にチェック
    • インデックスドキュメントに「index.html」を入力
    • 保存ボタンをクリック
    • エンドポイントURLをメモしておく
  • 作ったバケットのアクセス権限>ブロックパブリックアクセス
    • 「パブリックアクセスをすべてブロック」をオフにして保存(つまり全部公開)
  • 作ったバケットのアクセス権限>バケットポリシー
    • 下記を入力して保存する
    • [bucketname]と[VPC Endpoint ID]は適宜置き換える
{
  "Version": "2012-10-17",
  "Id": "VPCe and SourceIP",
  "Statement": [{
    "Sid": "VPCe and SourceIP",
    "Effect": "Deny",
    "Principal": "*",
    "Action": "s3:*",
    "Resource": [
      "arn:aws:s3:::[bucketname]",
      "arn:aws:s3:::[bucketname]/*"
    ],
    "Condition": {
      "StringNotLike": {
        "aws:sourceVpce": [
          "[VPC Endpoint ID]"
        ]
      }
    }
  }]
}

テスト手順

  • 作成したVPC内にEC2インスタンスを起動する
  • sshでログインして、curlコマンド等でS3のエンドポイントURLにアクセス可能であることを確認する。
  • 端末のブラウザ等からS3のエンドポイントURLにアクセス不可であることを確認する。(403 Forbidden)

たぶん

API Gateway回りも同様にハマりそうな予感。

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