メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

リクエストの実行

Amazon S3 は REST サービスです。Amazon S3 にリクエストを送信するには、REST API か、またはこの基盤である Amazon S3 REST API をラップする AWS SDK (「Sample Code and Libraries」を参照)ラッパーライブラリを使用できます。これにより、プログラミング作業も簡素化されます。

Amazon S3 とのすべてのやり取りは認証されるか匿名で行われます。認証は、アマゾン ウェブ サービス(AWS)製品にアクセスを試みるリクエスタの ID を検証するプロセスです。認証リクエストには、リクエストの送信元を認証する署名値を含める必要があります。署名値の一部は、リクエスタの AWS アクセスキー(アクセスキー ID とシークレットアクセスキー)から生成されます。アクセスキーの取得の詳細については、「How Do I Get Security Credentials?」(AWS General Reference) を参照してください。

AWS SDK を使用している場合、指定したキーから、ライブラリによって署名が計算されます。ただし、アプリケーションで直接 REST API を呼び出す場合、署名を計算するコードを作成し、それをリクエストに追加する必要があります。

アクセスキーについて

以下のセクションでは、認証リクエストの実行に使用できるアクセスキーの種類について説明します。

AWS アカウントアクセスキー

アカウントアクセスキーを使用することで、アカウントが所有する AWS リソースにフルアクセスすることができます。アクセスキーの例を次に示します。

  • アクセスキー ID(半角英数字で構成された 20 文字)。例: AKIAIOSFODNN7EXAMPLE

  • シークレットアクセスキー(40 文字の文字列)。例: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

アクセスキー ID によって AWS アカウントが一意に識別されます。このアクセスキーを使用して認証リクエストを Amazon S3 に送信できます。

IAM ユーザーアクセスキー

お客様の会社用に 1 つの AWS アカウントを作成することができます。ただし、組織の AWS リソースへのアクセス権を必要とする社員が組織内に複数いる場合があります。AWS アカウントアクセスキーを共有するとセキュリティは低くなり、また、各社員に個別の AWS アカウントを作成することは実用的ではない場合があります。さらに、バケットやオブジェクトなどのリソースは別のアカウントが所有しているので、簡単に共有できません。リソースを共有するには、追加の作業でアクセス許可を付与する必要があります。

この場合、AWS Identity and Access Management(IAM)を使用して、お客様の AWS アカウントの下にユーザーと各自のアクセスキーを作成し、該当するリソースアクセス許可を付与する IAM ユーザーポリシーをアタッチします。このようなユーザーをより効率的に管理するために、IAM では、ユーザーのグループを作成し、グループ内のユーザー全員に適用されるグループレベルのアクセス許可を付与できます。

お客様が AWS で作成および管理するユーザーは、IAM ユーザーと呼ばれます。親アカウントは、ユーザーが AWS にアクセスできるかどうかを制御します。IAM ユーザーが作成するリソースは、親 AWS アカウントが管理し、支払いを行います。これらの IAM ユーザーは、各自のセキュリティ認証情報を使用して Amazon S3 に認証リクエストを送信できます。お客様の AWS アカウントの下でユーザーを作成、管理する方法の詳細については、AWS Identity and Access Management 製品詳細ページを参照してください。

一時的セキュリティ認証情報

IAM では、お客様は、IAM ユーザーと各自のアクセスキーを作成できるだけでなく、任意の IAM ユーザーに一時的なセキュリティ認証情報(一時的なアクセスキーとセキュリティトークン)を付与して、AWS サービスおよびリソースにアクセスできるようにすることもできます。また、AWS ではなく、使用しているシステムでユーザーを管理することもできます。このようなユーザーはフェデレーションユーザーと呼ばれます。また、このユーザーには、AWS リソースにアクセスするために作成したアプリケーションも含まれます。

IAM には、一時的なセキュリティ認証情報をリクエストするための AWS Security Token Service API が用意されています。一時的なセキュリティ認証情報をリクエストするには、AWS STS API または AWS SDK を使用できます。この API は一時的なセキュリティ認証情報(アクセスキー ID およびシークレットアクセスキー)とセキュリティトークンを返します。これらの認証情報は、リクエスト時に指定した有効期間の間のみ有効です。アクセスキー ID およびシークレットキーの使用方法は、AWS アカウントまたは IAM ユーザーのアクセスキーを使用してリクエストを送信するときの使用方法と同様です。また、Amazon S3 に送信する各リクエストにトークンを含める必要があります。

IAM ユーザーは、これらの一時的なセキュリティ認証情報をリクエストした後、自分で使用することも、フェデレーションユーザーまたはアプリケーションに渡すこともできます。フェデレーションユーザー用に一時的なセキュリティ認証情報をリクエストする場合、ユーザー名と、その一時的なセキュリティ認証情報に関連付けるアクセス許可を定義した IAM ポリシーを指定する必要があります。フェデレーションユーザーに、一時的な認証情報をリクエストした親 IAM ユーザーよりも多くの権限が付与されることはありません。

これらの一時的なセキュリティ認証情報は、Amazon S3 にリクエストするときに使用できます。API ライブラリによって、これらの認証情報を使用して必要な署名値が計算されて、リクエストが認証されます。失効した認証情報を使用してリクエストを送信すると、 Amazon S3 はリクエストを拒否します。

REST API リクエストで一時セキュリティ証明書を使用してリクエストに署名する方法については、REST リクエストの署名と認証 を参照してください。AWS SDK を使用してリクエストを送信する方法については、AWS SDK を使用したリクエストの実行 を参照してください。

一時的なセキュリティ認証情報の IAM によるサポートの詳細については、『IAM ユーザーガイド』の「一時的セキュリティ認証情報」を参照してください。

Amazon S3 リソースにアクセスする際のセキュリティを高めるには、バケットポリシーを設定して多要素認証(MFA)を要求することができます。詳細については、MFA 認証を要求するバケットポリシーの追加 を参照してください。Amazon S3 リソースにアクセスするために MFA を要求した後に、これらのリソースにアクセスできる唯一の方法は、MFA キーで作成された一時的な認証情報を提供することです。詳細については、『IAM ユーザーガイド』の「AWS Multi-Factor Authentication」(詳細ページ) と「Configuring MFA-Protected API Access」を参照してください。

エンドポイントのリクエスト

サービスの定義済みエンドポイントに対して REST リクエストを送信します。すべての AWS サービスとそれに対応するエンドポイントのリストについては、『AWS General Reference』の「リージョンとエンドポイント」を参照してください。