すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:アクセス資格情報を構成する

最終更新日:Apr 01, 2025

Object Storage Service (OSS) SDK for Harmony を使用してリクエストを開始するには、ID とアクセス権限の検証に使用されるアクセス資格情報を構成する必要があります。認証と承認の要件に基づいて、さまざまな種類のアクセス資格情報を選択できます。

注意事項

よく使用される構成の例

STS によって提供される一時的なアクセス資格情報を使用する(推奨)

アプリケーションに一時的なアクセスが必要な場合は、STS によって提供される一時的なアクセス資格情報を使用できます。これは、AccessKey ペアと STS トークンで構成されます。

重要

OSS にアクセスするための AccessKey ペアを明示的に指定するために、アクセス資格情報をハードコーディングするサンプルコードを以下に示します。

import Client from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS から取得した AccessKey ID を指定します。Alibaba Cloud アカウントの AccessKey ID は使用しないでください。
  // STS によって提供される AccessKey ID は STS で始まることに注意してください。
  accessKeyId: 'STS.****************',
  // STS から取得した AccessKey シークレットを指定します。
  accessKeySecret: 'yourAccessKeySecret',
  // STS から取得したセキュリティトークンを指定します。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// 作成された OSS クライアントインスタンスを使用してリクエストを開始します。

RAM ユーザーの AccessKey ペアを使用する

アプリケーションがアクセス資格情報を頻繁にローテーションすることなく OSS への長期アクセスを必要とし、外部攻撃に対して脆弱ではない安全で安定した環境で実行されているとします。この場合、Alibaba Cloud アカウントまたは RAM ユーザーの AccessKey ペア (AccessKey ID と AccessKey シークレット) を使用して、資格情報プロバイダーを初期化できます。

重要
  • RAM ユーザーの AccessKey ペアを作成する方法については、「AccessKey を作成する」をご参照ください。RAM ユーザーの AccessKey ペアは、RAM ユーザーの作成時にのみ表示されます。AccessKey ペアをタイムリーに保存してください。 AccessKey ペアを忘れた場合は、ローテーションのために新しい AccessKey ペアを作成します。

  • Alibaba Cloud アカウントは、そのリソースに対するすべての権限を持っており、AccessKey ペアの漏洩は重大なセキュリティリスクをもたらします。したがって、最小限の必要な権限が付与された RAM ユーザーの AccessKey ペアを使用することをお勧めします。

OSS にアクセスするための AccessKey ペアを明示的に指定するために、アクセス資格情報をハードコーディングするサンプルコードを以下に示します。

警告

本番環境にデプロイされたアプリケーションコードにアクセス資格情報を埋め込まないでください。この方法はテストのみを目的としています。

import Client from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // RAM ユーザーの AccessKey ID を指定します。
  accessKeyId: 'yourAccessKeyID',
  // RAM ユーザーの AccessKey シークレットを指定します。
  accessKeySecret: 'yourAccessKeySecret',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// 作成された OSS クライアントインスタンスを使用してリクエストを開始します。

よくある質問

資格情報プロバイダーを初期化するときに、STS によって提供される一時的なアクセス資格情報と RAM ユーザーの AccessKey ペアをどのように区別できますか?

STS から取得した一時的なアクセス資格情報 (AccessKey ID、AccessKey シークレット、STS トークン) を使用して資格情報プロバイダーを初期化する場合、STS によって返される AccessKey ID と RAM ユーザーの AccessKey ID を混同しないでください。STS から取得した AccessKey ID は STS で始まります。例:

image

RAM ユーザーの AccessKey ID をどのように表示しますか?AccessKey ペアの AccessKey シークレットを表示できますか?

  1. RAM ユーザーの AccessKey ペアに関する情報を表示する」で説明されている手順に従って、RAM ユーザーの AccessKey ペアを表示できます。

  2. RAM ユーザーの AccessKey シークレットは、AccessKey ペアの作成時にのみ表示されます。後で AccessKey ペアを表示することはできません。AccessKey シークレットを忘れた場合は、AccessKey シークレットを取得できません。この場合、RAM コンソール でローテーションのために新しい AccessKey ペアを直接作成できます。詳細については、「AccessKey ペアを作成する」をご参照ください。

RAM ユーザーの AccessKey ペアを使用してファイルをアップロードするときに発生する AccessDenied エラーを修正するにはどうすればよいですか?

AccessDenied エラーは、通常、間違った AccessKey ペアまたはアップロード権限の不足という 2 つの理由で発生します。 AccessDenied エラーのトラブルシューティングを行うには、次の手順を実行できます。

  1. RAM ユーザーの AccessKey ペアに関する情報を表示する」で説明されている手順に従って、提供された AccessKey ペアが正しいかどうかを確認します。

  2. RAM ユーザーの AccessKey シークレットは、AccessKey ペアの作成時にのみ表示されます。後で AccessKey ペアを表示することはできません。AccessKey シークレットを忘れた場合は、AccessKey シークレットを取得できません。この場合、RAM コンソール でローテーションのために新しい AccessKey ペアを直接作成できます。詳細については、「AccessKey ペアを作成する」をご参照ください。

  3. RAM コンソール で、RAM ユーザーに OSS にファイルをアップロードする権限があるかどうかを確認します。ない場合は、必要な権限を付与します。

パブリック OSS エンドポイントを使用して OSS にアクセスするときに接続エラーが発生した場合はどうすればよいですか?

パブリックエンドポイント経由で OSS にアクセスするときに接続エラーが発生した場合は、エンドポイントが正しくないことが原因である可能性があります。エラーを修正するには、次の確認を実行します。

  1. OSS コンソールでバケットのリージョンを確認します。

  2. 指定されたエンドポイントがリージョンに対して正しいものであるかどうかを確認します。たとえば、バケットが中国 (杭州) リージョンにある場合は、oss-cn-hangzhou.aliyuncs.com エンドポイントを使用してパブリックネットワークアクセスを有効にします。OSS エンドポイントの一覧については、「リージョンとエンドポイント」をご参照ください。

  3. 使用している環境がインターネットに接続できるかどうかを確認します。

エラーが報告された場合、エラーの種類をどのように判断しますか?

OSS は、エラーの特定の種類を判断するのに役立つエラーコードを提供します。たとえば、一般的な認証エラーについては02-AUTH を参照できます。