AWS SDK for JavaScript V3 APIリファレンスガイドでは、バージョン 3 (V3) のすべてのAPIオペレーションについて詳しく説明しています AWS SDK for JavaScript 。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ブラウザでの開始方法
このセクションでは、ブラウザ JavaScript で SDK for のバージョン 3 (V3) を実行する方法を示す例について説明します。
注記
ブラウザでV3を実行することは、バージョン2 (V2)とは若干異なります。詳細については、「V3 でブラウザーを使用」を参照してください。
SDK for の (V3) を使用するその他の例については JavaScript、「」を参照してくださいSDK JavaScript (v3) コード例の。
このウェブアプリケーションの例は、以下を示します。
認証に Amazon Cognito を使用して AWS サービスにアクセスする方法。
AWS Identity and Access Management (IAM) ロールを使用して Amazon Simple Storage Service (Amazon S3) バケット内のオブジェクトのリストを読み取る方法。
注記
この例では、認証 AWS IAM Identity Center に を使用しません。
シナリオ
Amazon S3 は、業界をリードするスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供するオブジェクトストレージサービスです。Amazon S3 を使用して、バケットと呼ばれるコンテナ内にデータをオブジェクトとして保存できます。Amazon S3 の詳細については、「Amazon S3 ユーザーガイド」を参照してください。
この例では、Amazon S3 バケットから読み取る IAM ロールを引き受けるウェブアプリケーションを設定して実行する方法を示します。この例では、React フロントエンドライブラリと Vite フロントエンドツールを使用して JavaScript 開発環境を提供します。ウェブアプリは Amazon Cognito ID プールを使用して、 AWS サービスへのアクセスに必要な認証情報を提供します。含まれているコード例は、 JavaScript ウェブアプリケーションで SDK for をロードして使用するための基本的なパターンを示しています。
ステップ 1: Amazon Cognito アイデンティティプールと IAM ロールを作成する
この演習では、Amazon Cognito アイデンティティプールを作成して使用し、Amazon S3 サービスのウェブアプリケーションで未認証のアクセスを提供します。ID プールを作成すると、認証されていないゲストユーザーをサポートする AWS Identity and Access Management (IAM) ロールも作成されます。この例では、タスクに集中し続けるために、認証されていないユーザーロールのみを使用します。後で ID プロバイダーと認証済みユーザーのサポートを統合できます。Amazon Cognito アイデンティティプールの追加についての詳細は、「Amazon Cognito デベロッパーガイド」の「チュートリアル: ID プールの作成」を参照してください。
Amazon Cognito アイデンティティプールおよび関連付けられた IAM ロールを作成するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/cognito/
で Amazon Cognito コンソールを開きます。 左のナビゲーションペインで、[ID プール] を選択します。
[ID プールを作成] を選択します。
[ID プールの信頼を設定] で、ユーザー認証に [ゲストアクセス] を選択します。
「アクセス許可の設定」で「新しい IAM ロールの作成」を選択し、「IAM ロール名StartedRole」に名前 ( の取得など) を入力します。
「プロパティの設定StartedPool」で、アイデンティティプール名 に名前を入力します (例: を取得)。
[確認および作成] で、新しいアイデンティティプールに対して行った選択を確認します。[編集] を選択してウィザードに戻り、設定を変更します。終了したら、[ID プールの作成] を選択します。
[ID プールの ID] と、新しく作成した Amazon Cognito アイデンティティプールの [リージョン] を書き留めます。ステップ 4: ブラウザコードを設定する で
IDENTITY_POOL_ID
およびREGION
を置換するには、これらの値が必要です。
Amazon Cognito アイデンティティプールを作成したら、ウェブアプリケーションにより必要な Amazon S3 権限を追加する準備が整います。
ステップ 2: 作成した IAM ロールにポリシーを追加する
ウェブアプリで Amazon S3 バケットへのアクセスを有効にするには、Amazon Cognito ID プール用に作成された認証されていない IAM ロール ( の取得StartedRoleなど) を使用します ( の取得StartedPoolなど)。これを進めるには、IAM ポリシーをロールにアタッチする必要があります。IAM ロールの変更の詳細については、「IAM ユーザーガイド」の「ロールのアクセス許可ポリシーの変更」を参照してください。
Amazon S3ポリシーを、非認証ユーザーに関連付けられているIAM ロールに追加するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/
で IAM コンソールを開きます。 左のナビゲーションペインで、[ロール] を選択します。
変更するロールの名前 ( の取得など) StartedRoleを選択し、アクセス許可タブを選択します。
[アクセス許可を追加]、[ポリシーをアタッチ] の順に選択します。
このロールのアクセス許可の追加ページで、AmazonS3ReadOnlyAccess のチェックボックスを見つけて選択します。
注記
このプロセスを使用して、任意の AWS サービスへのアクセスを有効にできます。
[Add permissions (許可の追加)] を選択します。
Amazon Cognito アイデンティティプールを作成した後、非認証ユーザーの IAM ロールに Amazon S3の許可を追加すると、Amazon S3 バケットを追加し設定する準備が整います。
ステップ 3: Amazon S3 バケットとオブジェクトを追加する
このステップでは、例の Amazon S3 バケットとオブジェクトを追加します。また、バケットの Cross-Origin Resource Sharing (CORS) を有効にします。Amazon S3 バケットとオブジェクトの作成についての詳細は、「Amazon S3 ユーザーガイド」の「Amazon S3 の開始方法」を参照してください。
CORS でAmazon S3 バケットとオブジェクトを追加するには
にサインイン AWS Management Console し、https://console.aws.amazon.com/s3/
で Amazon S3 コンソールを開きます。 左側のナビゲーションペインで、[バケット] を選択してから、[バケットを作成] を選択します。
バケットの命名規則 (getstartedbucket など) に準拠したバケット名を入力し、[バケットを作成] を選択します。
作成したバケットを選択し、[オブジェクト] タブを選択します。次に、アップロードを選択します。
[Files and Folders (ファイルとフォルダ)] で、[Add files (ファイルを追加)] を選択します。
アップロードするファイルを選択し、続いて [Open (オープン)] を選択します。次に、[アップロード] を選択して、バケットへのオブジェクトのアップロードを完了します。
次に、バケットの [アクセス許可] タブを選択し、[Cross-Origin Resource Sharing (CORS)] セクションで [編集] を選択します。次の JSON を入力します。
[ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
[変更を保存] を選択します。
Amazon S3 バケットを追加してオブジェクトを追加したら、ブラウザコードを設定する準備が整います。
ステップ 4: ブラウザコードを設定する
サンプルアプリケーションは単一ページの React アプリケーションで構成されています。この例のファイルは、 にあります GitHub
サンプルアプリケーションを設定するには
Node.js
をインストールします。 コマンドラインから、AWS のコードサンプルリポジトリ
をクローンします。 git clone --depth 1 https://github.com/awsdocs/aws-doc-sdk-examples.git
サンプルアプリケーションに移動します。
cd aws-doc-sdk-examples/javascriptv3/example_code/web/s3/list-objects/
次のコマンドを実行して、必要なパッケージをインストールします。
npm install
次に、テキストエディタで
src/App.tsx
を開き、次の処理を実行します。YOUR_IDENTITY_POOL_ID
を ステップ 1: Amazon Cognito アイデンティティプールと IAM ロールを作成する で書き留めた Amazon Cognito アイデンティティプール ID に置き換えます。リージョンの値を Amazon S3 バケットと Amazon Cognito アイデンティティプールに割り当てられたリージョンに置き換えます。両方のサービスのリージョンは同じでなければならないことに注意してください (us-east-2 など)。
bucket-name
を、ステップ 3: Amazon S3 バケットとオブジェクトを追加する で作成したバケットの名前に置き換えます。
テキストを置き換えたら、App.tsx
ファイルを保存します。これで、ウェブアプリケーションを実行する準備ができました。
ステップ 5: 例を実行する
サンプルアプリケーションを実行するには
コマンドラインから、サンプルアプリケーションに移動します。
cd aws-doc-sdk-examples/javascriptv3/example_code/web/s3/list-objects/
コマンドラインから、以下のコマンドを実行します。
npm run dev
Vite 開発環境が実行され、次のメッセージが表示されます。
VITE v4.3.9 ready in 280 ms ➜ Local: http://localhost:5173/ ➜ Network: use --host to expose ➜ press h to show help
ウェブブラウザで上記の URL (例: http://localhost:5173) に移動します。サンプルアプリケーションでは、Amazon S3 バケット内のオブジェクトファイル名のリストが表示されます。
クリーンアップ
このチュートリアルで作成されたリソースをクリーンアップするには、以下を行います。
Amazon S3 コンソール
で、作成されたオブジェクトとバケット (getstartedbucket など) をすべて削除します。 IAM コンソール
で、ロール名を削除します (例えば、 を取得しますStartedRole)。 Amazon Cognito コンソール
で、ID プール名を削除します (例えば、 を取得しますStartedPool)。