Object Storage Service (OSS) SDK for Harmony を使用してリクエストを開始するには、ID とアクセス権限の検証に使用されるアクセス資格情報を構成する必要があります。認証と承認の要件に基づいて、さまざまな種類のアクセス資格情報を選択できます。
注意事項
OSS リージョンとエンドポイントの一覧については、「OSS リージョンとエンドポイント」をご参照ください。
RAM ユーザーの AccessKey ペアを作成する方法については、「AccessKey を作成する」をご参照ください。
Security Token Service (STS) から一時的なアクセス資格情報を取得する方法については、「STS の一時的なアクセス資格情報を使用して OSS にアクセスする」をご参照ください。
よく使用される構成の例
STS によって提供される一時的なアクセス資格情報を使用する(推奨)
アプリケーションに一時的なアクセスが必要な場合は、STS によって提供される一時的なアクセス資格情報を使用できます。これは、AccessKey ペアと STS トークンで構成されます。
AssumeRole API オペレーションを呼び出すことで、一時的なアクセス資格情報を取得できます。詳細については、「AssumeRole - ロールの引き受けのための一時的な ID 資格情報を取得する」をご参照ください。
OSS SDK を使用して一時的なアクセス資格情報を取得することもできます。詳細については、「STS の一時的なアクセス資格情報を使用して OSS にアクセスする」をご参照ください。
トークンを生成するときに、STS トークンの有効期間を指定する必要があります。期限切れのトークンは使用できません。
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 クライアントインスタンスを使用してリクエストを開始します。