目次

Amazon S3のInterface型VPCエンドポイントで、オンプレや他VPCからアクセス




Amazon S3のInterface型エンドポイントとは

Amazon S3のInterface型エンドポイントを作成することによって、
Direct Connect接続しているオンプレやTransit Gateway接続している他社のVPCからS3S3バケットにアクセスできるようになります。

Gateway型のVPCエンドポイントですと、同じリージョンからのアクセスしか対応していませんが、
Interface型は、他のリージョンからもアクセスが可能です。

aws:s3:s3-vpcendpoint-interface.png


Interface型VPCエンドポイントの作成手順

サービス S3(com.amazonaws.ap-northeast-1.s3)Interface
VPC エンドポイントを作成するVPCを選択
サブネット エンドポイントを作成するサブネットを選択
セキュリティーグループ ENI に設定するセキュリティグループを選択します。



アクセス方法

VPCエンドポイントDNS名の確認方法

Amazon S3 用の AWS PrivateLink - Amazon Simple Storage Service

VPC コンソールの [Details] (詳細) タブを示しています。
ここでは、VPC エンドポイントの DNS 名を確認できます。
この例では、DNS 名は *.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com です。


DNS 名を使用してリソースにアクセスする場合は、* を適切な値に置き換えてください。

バケットにアクセスするには、次のような DNS 名を使用します。
bucket.vpce-0e25b8cdd720f900e-argc85vg.s3.us-east-1.vpce.amazonaws.com

注意:DNS名は複数ある場合、どれを利用しても問題ありません。


AWS CLIでの接続方法

AWS CLIで接続するためにはインターフェースエンドポイントを指定する必要があります。

aws s3 --region リージョン名 --endpoint-url https://bucket.VPCエンドポイントDNS名 ls s3://S3バケット名

aws s3 ls s3://<example-bucket-name>/ --region <example-region> --endpoint-url https://bucket.<example-endpoint-id>.s3.<example-region>.


サーバと Interface型のS3 VPCエンドポイント間の接続テスト

インターフェイス VPC エンドポイントを使用して S3 への接続の問題を修正する | AWS re:Post

telnet  bucket.vpce-1234567890.s3.north-east-1.vpce.amazonaws.com  443
openssl s_client -connect <Endpoint URL>:443
openssl s_client -connect bucket.vpce-1234567890.s3.north-east-1.vpce.amazonaws.com:443


制御

S3バケットポリシーによる制御

指定したVPCエンドポイントからのみアクセスを許可するバケットポリシー

{
  "Id": "VPCe",
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VPCe",
      "Action": "s3:*",
      "Effect": "Deny",
      "Resource": [
        "arn:aws:s3:::S3バケット名/*"
      ],
      "Condition": {
        "StringNotEquals": {
          "aws:SourceVpce": [
            "VPE エンドポイント ID"
          ]
        }
      },
      "Principal": "*"
    }
  ]
}