---
title: ユーザーに資格情報キーを与えずにS3ファイルへの適切なアクセスを提供する
author: Hue Team
type: post
date: 2021-04-23T00:00:00+00:00
url: /blog/2021-04-23-s3-file-access-without-any-credentials-and-signed-urls/
sf_thumbnail_type:
- none
sf_thumbnail_link_type:
- link_to_post
sf_detail_type:
- none
sf_page_title:
- 1
sf_page_title_style:
- standard
sf_no_breadcrumbs:
- 1
sf_page_title_bg:
- none
sf_page_title_text_style:
- light
sf_background_image_size:
- cover
sf_social_sharing:
- 1
sf_related_articles:
- 1
sf_sidebar_config:
- left-sidebar
sf_left_sidebar:
- Sidebar-2
sf_right_sidebar:
- Sidebar-1
sf_caption_position:
- caption-right
sf_remove_promo_bar:
- 1
ampforwp-amp-on-off:
- default
categories:
- Version 4.10
- Development
---
AWS S3 署名付きURLを使用してバケット、キーを一覧表示し、ファイルを管理します。
[SQL クエリ](https://medium.com/data-querying/interactively-querying-hbase-via-sql-273013e5b3cc) は、データをオープンにし、ユーザーが確固たる事実に裏打ちされた意思決定を行うのに役立ちます。 しかし、ユーザーが必要とするデータがデータウェアハウスにまだ存在しない場合はどうでしょうか?
より多くのセルフサービス体験を提供するために、ユーザーは [自分のデータのクエリ](https://gethue.com/querying-exploring-the-instacart-dataset-part-1-ingesting-the-data/) や結合を行い、クエリ結果ファイルをエクスポートして共有することができます。
ここでは、 [Hueエディタ](http://gethue.com/) プロジェクトで、署名付きURLが導入された実際のシナリオを紹介します。

*Hueは、HDFS、S3、ADLSのいずれに対しても、同じで一貫したファイル・ブラウジング・インターフェースを提供する*
HueのSQLエディタは、 [ファイルブラウザ](https://gethue.com/introducing-s3-support-in-hue/)を介してクラウドストレージへの透過的なアクセスを提供してきました。 S3やADLSのネイティブなWeb UIに直接アクセスすると使いづらく、クラウドに依存しないため、このアプリは非常に人気があります(また、S3やADLSのインターフェイスは、シンプルさと非エンジニア向けに設計されていません)。 さらに、SQLユーザーのほとんどは、同じように見えるHDFSブラウザに慣れています。
しかし、 これは通常S3資格情報キーのセットをHue Serverに提供し、それらを全員で共有する必要があるため、クラスタ管理者にとっては頭痛の種となります。 あまり安全ではありません。 ファイルブラウザを管理者のみに許可すると、機能が制限されてしまい、振り出しに戻ってしまいます。
そこで、 [S3 署名URL](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/s3-presigned-urls.html) が登場し、この煩わしさを解消してくれます。

*Hue経由でS3とやりとりしているユーザーと共有資格キー(ベストではない)*

*ユーザーは、任意のS3リソースにアクセスできる個別の一時的なURLを取得 (安全かつ詳細なアクセスが可能)*
これらのURLは、通常期限が切れる (例: 5分後など) ように設定されており、「署名」されています。これは、ユーザーが自動的に向こうにならないように変更できないため、ユーザーに対して公開しても安全です。
もう1つの利点は、Hue Web ServerがS3の資格情報を持つ必要がないことです。 Hueは、この例では、ユーザーが行いたいS3コールに相当するURLを提供するように、 [RAZ Server](https://blog.cloudera.com/access-control-for-azure-adls-cloud-object-storage/) に要求するだけです。

*以前(上) では、AWS Python SDK を直接呼び出してバケットのリストを取得し、それぞれのバケットを表すPythonオブジェクトを取得しなおしています。 以降(下)では、特別なURLを要求して、追加の認証なしにS3に直接HTTPリクエストを行い、XMLデータを取得しています。*