ブラウザでの開始方法 - AWS SDK for JavaScript

AWS SDK for JavaScript V3 API リファレンスガイドでは、AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。

ブラウザでの開始方法

このセクションでは、ブラウザでSDK for JavaScriptのバージョン3(V3)を実行する方法を示す例を順番に説明します。

注記

ブラウザでV3を実行することは、バージョン2 (V2)とは若干異なります。詳細については、「V3 でブラウザーを使用」を参照してください。

SDK for JavaScript (V3) を使用するその他の例については、SDK for 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 アイデンティティプールを使用して、AWS サービスへのアクセスに必要な認証情報を提供します。含まれているコードサンプルの例は、ウェブアプリケーションでSDK for JavaScriptをロードして使用するための基本的なパターンを示します。

ステップ 1: Amazon Cognito アイデンティティプールと IAM ロールを作成する

この演習では、Amazon Cognito アイデンティティプールを作成して使用し、Amazon S3 サービスのウェブアプリケーションで未認証のアクセスを提供します。アイデンティティプールを作成すると、認証されていないゲストユーザーをサポートする AWS Identity and Access Management (IAM) ロールも作成されます。この例では、タスクに集中し続けるために、認証されていないユーザーロールのみを使用します。後で ID プロバイダーと認証済みユーザーのサポートを統合できます。Amazon Cognito アイデンティティプールの追加についての詳細は、「Amazon Cognito デベロッパーガイド」の「チュートリアル: ID プールの作成」を参照してください。

Amazon Cognito アイデンティティプールおよび関連付けられた IAM ロールを作成するには
  1. AWS マネジメントコンソールにサインインして、Amazon Cognito コンソール (https://console.aws.amazon.com/cognito/) を開きます。

  2. 左のナビゲーションペインで、[ID プール] を選択します。

  3. [ID プールを作成] を選択します。

  4. [ID プールの信頼を設定] で、ユーザー認証に [ゲストアクセス] を選択します。

  5. [アクセス許可を設定] で、[新しい IAM ロールの作成] を選択し、[IAM ロール名] に名前 (getStartedRole など) を入力します。

  6. [プロパティを設定] で、[ID プール名] に名前 (getStartedPool など) を入力します。

  7. [確認および作成] で、新しいアイデンティティプールに対して行った選択を確認します。[編集] を選択してウィザードに戻り、設定を変更します。終了したら、[ID プールの作成] を選択します。

  8. [ID プールの ID] と、新しく作成した Amazon Cognito アイデンティティプールの [リージョン] を書き留めます。ステップ 4: ブラウザコードを設定するIDENTITY_POOL_ID および REGION を置換するには、これらの値が必要です。

Amazon Cognito アイデンティティプールを作成したら、ウェブアプリケーションにより必要な Amazon S3 権限を追加する準備が整います。

ステップ 2: 作成した IAM ロールにポリシーを追加する

ウェブアプリケーション内の Amazon S3 バケットへのアクセスを有効にするには、Amazon Cognito アイデンティティプール (getStartedPool など) 用に作成された非認証の IAM ロール (getStartedRole など) を使用します。これを進めるには、IAM ポリシーをロールにアタッチする必要があります。IAM ロールの変更の詳細については、「IAM ユーザーガイド」の「ロールのアクセス許可ポリシーの変更」を参照してください。

Amazon S3ポリシーを、非認証ユーザーに関連付けられているIAM ロールに追加するには
  1. AWS マネジメントコンソール にサインインして、IAM コンソール https://console.aws.amazon.com/iam/ を開きます。

  2. 左のナビゲーションペインで、[ロール] を選択してください。

  3. 変更するロールの名前 (getStartedRole など) を選択し、[アクセス許可] タブを選択します。

  4. [アクセス許可を追加][ポリシーをアタッチ] の順に選択します。

  5. このロールの [アクセス許可を追加] ページで、AmazonS3ReadOnlyAccess を検索してチェックボックスをオンにします。

    注記

    このプロセスを使用して、AWSのサービスへのアクセスを有効にすることができます。

  6. [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 バケットとオブジェクトを追加するには
  1. AWS マネジメントコンソール にサインインし、Amazon S3 コンソール https://console.aws.amazon.com/s3/ を開きます。

  2. 左側のナビゲーションペインで、[バケット] を選択してから、[バケットを作成] を選択します。

  3. バケットの命名規則 (getstartedbucket など) に準拠したバケット名を入力し、[バケットを作成] を選択します。

  4. 作成したバケットを選択し、[オブジェクト] タブを選択します。次に、アップロードを選択します。

  5. [Files and Folders (ファイルとフォルダ)] で、[Add files (ファイルを追加)] を選択します。

  6. アップロードするファイルを選択し、続いて [オープン] を選択します。次に、[アップロード] を選択して、バケットへのオブジェクトのアップロードを完了します。

  7. 次に、バケットの [アクセス許可] タブを選択し、[Cross-Origin Resource Sharing (CORS)] セクションで [編集] を選択します。次の JSON を入力します。

    [ { "AllowedHeaders": [ "*" ], "AllowedMethods": [ "GET" ], "AllowedOrigins": [ "*" ], "ExposeHeaders": [] } ]
  8. [Save changes] (変更の保存) をクリックします。

Amazon S3 バケットを追加してオブジェクトを追加したら、ブラウザコードを設定する準備が整います。

ステップ 4: ブラウザコードを設定する

サンプルアプリケーションは単一ページの React アプリケーションで構成されています。この例のファイルは、この GitHub で見つけることができます。

サンプルアプリケーションを設定するには
  1. Node.js をインストールします。

  2. コマンドラインから、AWS のコードサンプルリポジトリをクローンします。

    git clone --depth 1 https://github.com/awsdocs/aws-doc-sdk-examples.git
  3. サンプルアプリケーションに移動します。

    cd aws-doc-sdk-examples/javascriptv3/example_code/web/s3/list-objects/
  4. 次のコマンドを実行して、必要なパッケージをインストールします。

    npm install
  5. 次に、テキストエディタで src/App.tsx を開き、次の処理を実行します。

テキストを置き換えたら、App.tsx ファイルを保存します。これで、ウェブアプリケーションを実行する準備ができました。

ステップ 5: 例を実行する

サンプルアプリケーションを実行するには
  1. コマンドラインから、サンプルアプリケーションに移動します。

    cd aws-doc-sdk-examples/javascriptv3/example_code/web/s3/list-objects/
  2. コマンドラインから、以下のコマンドを実行します。

    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
  3. ウェブブラウザで上記の URL (例: http://localhost:5173) に移動します。サンプルアプリケーションでは、Amazon S3 バケット内のオブジェクトファイル名のリストが表示されます。

クリーンアップ

このチュートリアルで作成されたリソースをクリーンアップするには、以下を行います。