MENU
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
AWSの導入・クラウド運用を総合支援【CapsuleCloud】
  • サービス
  • AWS導入支援
  • AWS運用代行
  • WordPress
    • WordPress高速化
    • WordPress脆弱性対策
  • 導入事例
  • 良くあるご質問
  • AWS技術知見
  • お問い合わせ
  1. ホーム
  2. AWS技術知見
  3. Amazon S3で署名付きURLを使ったアクセス制御

Amazon S3で署名付きURLを使ったアクセス制御

2022 9/14
AWS技術知見
2022年9月14日
目次

はじめに

S3(Amazon Simple Storage Service)では、単純なアップロードやダウンロードだけでなく、アクセス権限の制御やバージョニングなど、様々な機能が提供されています。
そこで今回は、タイトルの通りS3で署名付きURLを作成してみたいと思います。

署名付きURLとは?

S3ではアクセスのポリシーをパブリックに設定したり、IAM(Identity and Access Management)ユーザ単位での細かなアクセス制御を行うことができます。
署名付きURLはその一環として、有効期限を設定し、ある特定のURLからのみアクセスができるようにするための機能です。
これを利用することで、通常はプライベートに設定しポリシーを緩めることなく、一時的に他のユーザへファイルを共有したりすることが可能になります。

ユーザ単位のアクセス制御ではないため、有効期限内であれば誰でもそのURLからアクセスできるという点には注意が必要です。

署名付きURLの生成

それでは、早速試していきましょう。
まずは適当なバケットを作成し、ファイルをアップロードしておきます。
このとき、パブリックアクセスを許可しないよう注意してください。

アップロードしたファイルのリンクにアクセスすると、当然アクセスは拒否されます。

署名付きURLを使ってこのファイルにアクセスできるようにするのが目標です。
今回はruby-sdkを使い、コマンドラインで署名付きURLを生成してみます。

準備

以下のようなコードを用意します。
認証情報とバケット名、ファイル名等は適宜変更してください。

[code language="ruby"]
require 'aws-sdk'

resource = Aws::S3::Resource.new(
:region => 'ap-northeast-1', # 東京以外のリージョンの場合は適宜変更してください
:access_key_id => '<your access key>',
:secret_access_key => '<your secret access key>'
)
object = resource.bucket('<your bucket name>').object('<your file name>')
puts url = URI.parse(object.presigned_url(:get, expires_in: 60)) # 有効期限を1分から変更する場合は適宜変更してください。
[/code]

実行

適当な名前で保存し、コマンドラインで実行すると…。

$ ruby test.rb
https://20170605-presigned-url-test.s3-ap-northeast-1.amazonaws.com/test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256
&X-Amz-Credential=AKIAJFM6SK4BF5JJH2BA%2F20170605%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20170605T101951Z&X-Amz-Expires=60&X-Amz-SignedHeaders=host&X-Amz-Signature=5c90a7378e91c618d9dbeabf0dcf3b65fe78a893c070076275944c8aa25f05d8

このように、署名付きURLが生成されました。

動作確認

有効期限を1分に設定しているので、すぐにアクセスしてみましょう。

ちゃんと表示されましたね。
自分の環境では文字化けしてしまったので、ブラウザのエンコードをUTF-8に変更しました。

有効期限が切れるかどうかも確認しておきましょう。
少し待ってから再度アクセスしてみます。

有効期限切れとなり、アクセスができなくなっています。
このように、簡単にS3で署名付きURLを生成することができました。

おわりに

有効期限付きのダウンロードURLという、自前で実装するとなるとなかなか骨が折れそうな機能がいとも簡単に実現できました。
少し応用してIP制限と組み合わせれば、特定のユーザのみアクセス可能な有効期限付きURLを生成する…なんてこともできます。

ちょっとした機能ではありますが、知っておくと実装の幅が広がりますね。

正社員希望の方はこちら
業務委託希望の方はこちら
AWS技術知見
aws s3

関連記事

  • aws-route53
    AWS機能を網羅してみよう3.3 Route53編「実践」DNSフェイルオーバー
  • AWSのクラウドセキュリティ「責任共有モデル」とは?
  • ansible
    AWSのためのAnsible入門
  • aws-s3
    Amazon S3でGlacierを活用したコスト削減法
  • aws-route53
    AWS機能を網羅してみよう3.2 Route53編「実践」
  • aws-route53
    AWS機能を網羅してみよう3.1 Route53編「概要」
  • aws-waf
    AWS WAFでSQLインジェクションと特定URLをブロック
  • aws-vpc
    AWSネットワーク設計 VPC概論
検索
clouddx003-low.pdf - 1.8MB
資料ダウンロードはこちら
人気記事
  • terraform
    Terraformと変数(variable)のお話
    Terraform
  • aws-s3
    Amazon S3で署名付きURLを使ったアクセス制御
    AWS技術知見
  • AWS導入支援
    amazonクラウド、AWSとは?何ができるかデメリット含めわかりやすく説明
    AWS導入支援
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
  • ansible
    AWSのためのAnsible入門
    AWS技術知見
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • 【実例20選】AWS導入企業、活用事例をご紹介
    AWS導入支援
新着記事
  • AWS運用代行企業5選!企業選びのポイントを解説
    AWS運用代行
  • AWS運用代行のサービス内容やメリットについて
    AWS運用代行
  • 10分でスタート!AWSの利用開始までを解説
    AWS導入支援
  • WordPress脆弱性の原因とやっておくべき7つの対策
    WordPress
  • WordPress高速化!6つの簡単な方法で重さを改善
    WordPress
カテゴリー
  • AWS導入支援
  • AWS技術知見
    • Rancher
    • Terraform
  • AWS運用代行
  • WordPress
タグ一覧
AI (3) aws (25) aws-cli (3) CloudFormation (1) CloudSearch (3) DeepLearning (1) DNS (2) Docker (4) EBS最適化オプション (1) ec2 (7) ElasticBeanstalk (1) Geo Routing (1) Gitlab (1) HA (1) infrastructure-as-code (1) keypair (1) load-balancer (1) nginx (2) OpenAM (3) Rancher (8) Rekognition (2) Route53 (3) s3 (2) secrets (1) security-group (1) Terraform (6) terragrunt (2) tfvars (1) variable (1) vault (1) VPC (1) wordpress (3) アプリケーション (1) オンプレミス (2) クラウド (2) サインアップ (1) シングルサインオン (3) セキュリティ (1) セキュリティグループ (1) ネットワーク設計 (1) 人工知能 (2) 初心者 (1) 本番運用 (1) 画像認識 (3) 起動 (1)
アーカイブ
  • 2022年9月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2017年7月
  • 2017年6月
AWSエンジニア積極採用!
採用情報
フリーランスの求人情報!
テックブレイン

スーパーソフトウエアはAWSパートナーネットワーク(APN)のコンサルティングパートナーです。

スーパーソフトウエアはRancherパートナーネットワークのコンサルティングパートナーです。

logo

カプセルクラウドはAWSクラウドのマネージドサービスです。AWSを安心かつ迅速に導入し、負荷分散・セキュリティ・DevOps・コスト削減など、クラウドサービスのメリットを活かした豊富なベストプラクティスをご提供いたします。

Contents

  • サービス
  • 導入支援
  • WordPress
  • 導入事例
  • ブログ
  • Q&A
  • お問い合せ
  • 資料ダウンロード

お問い合わせ

株式会社スーパーソフトウエア
東京 03-6721-7105
大阪 06-4707-6001
info-capsulecloud@tokyo.supersoftware.co.jp

  • プライバシーポリシー
  • 免責事項
  • 契約約款
  • 特商法に基づく表記
  • 会社情報
  • サイトマップ

© Supersoftware 2017. All rights reserved.

目次