Object Storage Service (OSS) はRESTful APIを提供します。 RESTful API、またはRESTful APIでカプセル化されたAlibaba Cloud SDKを使用して、OSSへのリクエストを開始できます。 認証システムが要求を受信した後、認証システムは、証明書に基づいて要求者の身元を検証する。 IDが検証されたら、OSSリソースで操作を実行できます。
リクエストを開始するInitiate a request
次のいずれかの方法を使用して、OSSへのリクエストを開始できます。
Alibaba Cloud SDK: Alibaba Cloud SDKを使用して、OSSへのリクエストを開始できます。 この方法を使用すると、SDKはリクエストの署名を自動的に生成します。 ほとんどの場合、Alibaba Cloud SDKを使用してリクエストを開始することを推奨します。 詳細については、「Alibaba Cloud SDKを使用したリクエストの開始」をご参照ください。
RESTful API: OSSへのRESTful APIリクエストを開始できます。 この方法を使用する場合は、署名を計算して要求に署名を追加するコードを記述する必要があります。 ビジネスで高レベルのカスタマイズが必要な場合は、この方法を使用できます。 詳細については、「概要」をご参照ください。
認証
ユーザーが個人IDとしてOSSにリクエストを送信する場合、次の手順で認証が実行されます。
署名文字列は、要求に基づいて指定された形式で生成されます。
AccessKeyシークレットを使用して署名文字列が暗号化され、検証コードが生成されます。
認証システムがリクエストを受信すると、認証システムはAccessKey IDに基づいてAccessKeyシークレットを見つけ、AccessKeyシークレットを使用して署名文字列と検証コードを復号化します。 次いで、認証システムは、検証コードを計算し、それを解読された検証コードと比較する。
認証システムによって計算された検証コードが、リクエストで提供された検証コードと同じである場合、OSSはリクエストが有効であると見なします。
計算された検証コードがリクエストで提供されたコードと異なる場合、OSSはリクエストを拒否し、HTTP 403エラーを返します。
AccessKey ペア
AccessKeyペアは、ユーザーIDの検証に使用されます。 AccessKey ペアは、AccessKey ID と AccessKey Secret で構成されます。 AccessKey IDは、AccessKeyシークレットと一緒に使用されます。 AccessKey IDはユーザーを識別するために使用され、AccessKey secretはユーザーのキーを認証するために使用されます。 AccessKeyペアを使用して、RESTful APIリクエストを作成できます。 OSSは、AccessKeyペアに基づく対称暗号化を使用して、要求者のIDを検証します。 IDが検証されたら、OSSリソースで操作を実行できます。
RAMユーザーのAccessKeyシークレットは、RAMユーザーのAccessKeyペアを作成した場合にのみ表示されます。 AccessKeyペアの作成後、AccessKeyシークレットを照会することはできません。 AccessKeyを秘密にしてください。
Alibaba CloudアカウントのAccessKeyペア
Alibaba Cloudサービスを使用する前に、Alibaba Cloudアカウントを作成する必要があります。 Alibaba Cloudアカウントは、Alibaba Cloudリソースの所有者です。 Alibaba Cloudアカウントは、自身が所有するすべてのリソースに対して課金されます。 Alibaba Cloudアカウントは、リソースを完全に制御できます。
デフォルトでは、Alibaba CloudアカウントのみがAlibaba Cloudリソースにアクセスできます。 他のユーザーは、Alibaba Cloudアカウントによって明示的に承認された後にのみリソースにアクセスできます。 Alibaba Cloudアカウントは、オペレーティングシステムの管理者またはルートユーザーに似ています。
Alibaba CloudアカウントのAccessKeyペアを使用してOSSにアクセスすると、アカウントにすべてのリソースにアクセスする権限があるため、高いセキュリティリスクが発生する可能性があります。 各Alibaba Cloudアカウントは、同時に最大5つのAccessKeyペアを持つことができます。 各AccessKeyペアは、次のいずれかの状態になります。
Active: AccessKeyペアを認証に使用できることを示します。
Inactive: AccessKeyペアを認証に使用できないことを示します。
OSSへのアクセスには、Alibaba Cloudアカウントの代わりにResource Access Management (RAM) ユーザーのAccessKeyペアを使用することを推奨します。
RAMユーザーのAccessKeyペア
固定IDと資格情報を持つ物理ID。 RAMユーザーは、人またはアプリケーションを表します。 RAMユーザーの特徴は次のとおりです。
Alibaba Cloudアカウントは複数のRAMユーザーを作成できます。 RAMユーザーは、企業内の従業員、システム、およびアプリケーションを表すために使用できます。
RAM ユーザーはリソースを所有しません。 RAMユーザーによって生成された料金は、RAMユーザーが属するAlibaba Cloudアカウントに請求されます。 RAM ユーザーは個別の請求書を受け取らず、支払いもできません。
RAMユーザーは、自分が所属するAlibaba Cloudアカウントにのみ表示されます。
RAMユーザーがAlibaba Cloud管理コンソールにログインするか、操作を呼び出す前に、Alibaba Cloudアカウントによって承認されている必要があります。 権限付与後、RAMユーザーはAlibaba Cloudアカウントが所有するリソースを管理できます。
RAMユーザーのAccessKeyペアは、RAMによって定義されたルールに基づいてのみバケット内のリソースにアクセスするために使用されます。RAMユーザーのAccessKeyペアを使用して、従業員、システム、アプリケーションなどのユーザーを管理し、ユーザーのリソースへのアクセス許可を制御できます。 たとえば、RAMユーザーのAccessKeyペアを使用して、バケットの1つに対する読み取り専用権限をユーザーに付与できます。
一時的なアクセス権限
Alibaba Cloudは、RAMユーザーに永続的なアクセス資格情報を提供し、RAMロールに一時的なアクセス資格情報を提供します。 RAMロールは、ポリシーをアタッチできる仮想IDです。 RAMロールにはログインパスワードまたはAccessKeyペアはありません。 RAMロールは、信頼できるエンティティによって引き受けられる必要があります。 信頼できるエンティティは、RAMユーザー、Alibaba Cloudサービス、またはIDプロバイダー (IdP) です。 信頼できるエンティティがRAMロールを引き受ける場合、信頼できるエンティティはRAMロールのSTS (Security Token Service) トークンを取得して使用し、RAMロールが権限を持つリソースにアクセスできます。
RAMロールの一時的なアクセス資格情報は、STSによって定義されたルールに基づいてのみ、バケット内のリソースにアクセスするために使用できます。
ドメイン名
OSSが提供するデフォルトのドメイン名にリクエストを送信できます。 詳細は、「リージョンとエンドポイント」をご参照ください。
カスタムドメイン名を使用してOSSリソースにアクセスする場合は、アクセスするリソースが格納されているバケットにドメイン名をマッピングする必要があります。 詳細については、「カスタムドメイン名をバケットのデフォルトドメイン名にマップする」をご参照ください。