Resource Access Management (RAM) ID が Tablestore に対するリソースアクセスリクエストを開始した場合、ポリシー評価が実行され、リクエストが認証を通過するかどうかが判断されます。リクエストは、認証に合格した場合にのみ許可されます。 RAM ID は、RAM ユーザーまたは RAM ロールです。リクエストは、Alibaba Cloud 管理コンソール、API 操作、または CLI を使用して開始できます。このトピックでは、Tablestore のポリシー評価プロセスについて説明します。
認証
Tablestore はリクエストを受信すると、認証に基づいてリクエストを許可するか拒否するかを決定します。認証は、制御ポリシー、ID 検証、ロールベースのセッションポリシー、RAM ポリシー、インスタンスポリシー、およびネットワークアクセス制御リスト (ACL) に基づいて実行されます。
ポリシー評価の結果として、以下の項目が考えられます。
許可: リクエストがポリシー内の拒否ステートメントではなく許可ステートメントに一致する場合、リクエストを許可します。
明示的拒否: リクエストがポリシー内の拒否ステートメントに一致する場合、リクエストを明示的に拒否します。
暗黙的拒否: リクエストが許可ステートメントまたは拒否ステートメントに一致しない場合、またはポリシーが存在しない場合、リクエストを暗黙的に拒否します。
リクエストがポリシー内の許可ステートメントと拒否ステートメントの両方に同時に一致する場合、拒否ステートメントが優先されます。この場合、ポリシー評価の結果は明示的拒否になります。
デフォルトでは、RAM ID によって開始されたすべてのリクエストは暗黙的に拒否されます。
認証プロセス
Tablestore は、認証のために次の手順を実行します。
リクエストされたリソースを所有するアカウントが、制御ポリシーが有効になっているリソースディレクトリのメンバーアカウントであるかどうかを確認します。
リクエストされたリソースを所有するアカウントがリソースディレクトリのメンバーアカウントでない場合、またはアカウントが制御ポリシーが有効になっていないリソースディレクトリのメンバーアカウントである場合は、次の手順に進みます。
リクエストされたリソースを所有するアカウントが、制御ポリシーが有効になっているリソースディレクトリのメンバーアカウントである場合は、制御ポリシー評価を実行します。
制御ポリシー評価の結果が明示的拒否または暗黙的拒否の場合、Tablestore はリクエストを拒否します。
制御ポリシー評価の結果が許可の場合、次の手順に進みます。
ID 検証に合格したかどうかを確認します。
Tablestore は、リクエストに含まれる署名とサーバーによって計算された署名を比較します。
署名が異なる場合、Tablestore はリクエストを拒否します。
署名が同じ場合、次の手順に進みます。
ロールベースのセッションポリシーに基づいてリクエストをチェックする必要があるかどうかを確認します。
ロールベースのセッションポリシーに基づいてリクエストをチェックする必要がある場合、Tablestore はセッションポリシー評価を実行します。
セッションポリシー評価の結果が明示的拒否または暗黙的拒否の場合、Tablestore はリクエストを拒否します。
セッションポリシー評価の結果が許可の場合、次の手順に進みます。
ロールベースのセッションポリシーに基づいてリクエストをチェックする必要がない場合は、次の手順に進みます。
リクエストの操作カテゴリを確認します。
CreateInstance などの Tablestore 管理 API 操作は、インスタンスに対する操作を実行するために呼び出されます。 CreateTable などの Tablestore データ API 操作は、基本的なデータ操作、およびデータテーブルと時系列テーブルに対する操作を実行するために呼び出されます。 詳細については、「[管理 API 操作の概要]」および「[データ API 操作の概要]」をご参照ください。
リクエストの操作カテゴリが管理 API 操作の場合、RAM ポリシー評価を実行します。
リクエストの操作カテゴリがデータ API 操作の場合、ネットワーク ACL を確認します。
Tablestore は、リクエストを開始したユーザーが、リクエストされたリソースが属するインスタンスの所有者であるかどうか基づいて、ネットワーク ACL を確認します。
ネットワーク ACL チェックの結果が拒否されない場合、次の手順に進みます。
ネットワーク ACL チェックの結果が拒否された場合、Tablestore はリクエストを拒否します。
RAM ポリシーとインスタンスポリシーの評価を実行します。
RAM ポリシーは、ID ベースのアクセス制御ポリシーです。 RAM ポリシーを設定して、Tablestore 内のリソースへのアクセスを管理できます。 Tablestore が RAM ポリシーに基づいてリクエストを認証する場合、Tablestore はリクエストの送信に使用されたアカウントに基づいて、リクエストを許可するか拒否するかを決定します。
RAM ユーザーの AccessKey ペアまたは Security Token Service (STS) 認証情報を使用して、RAM ユーザーが属する Alibaba Cloud アカウントまたは RAM ロールの所有者が所有していないインスタンスにアクセスするリクエストを送信した場合、RAM ポリシー評価の結果は暗黙的拒否になります。
Tablestore が RAM によって提供される認証操作を呼び出してリクエストを認証する場合、Tablestore は RAM がリクエストの送信に使用されたアカウントとインスタンスが属するリソースグループに基づいて認証を実行することを許可します。 RAM ポリシー評価の結果は、許可、明示的拒否、または暗黙的拒否です。
インスタンスポリシーは、リソースベースの承認ポリシーです。インスタンスの所有者は、インスタンスポリシーを設定して、RAM ユーザーにインスタンスまたはインスタンス内の特定のリソースに対して特定の操作を実行する権限を付与できます。
インスタンスにインスタンスポリシーが設定されていない場合、インスタンスポリシー評価の結果は暗黙的拒否になります。
インスタンスにインスタンスポリシーが設定されている場合、Tablestore はインスタンスポリシー評価を実行します。インスタンスポリシー評価の結果は、許可、明示的拒否、または暗黙的拒否です。
前の評価の結果に明示的な拒否ステートメントが含まれているかどうかを確認します。
含まれている場合、Tablestore はリクエストを拒否します。
それ以外の場合は、次の手順に進みます。
前の評価の結果に許可ステートメントが含まれているかどうかを確認します。
含まれている場合、Tablestore はリクエストを許可します。
それ以外の場合は、Tablestore はリクエストを拒否します。
参照
制御ポリシーとロールベースのセッションポリシーの評価の詳細については、「[ポリシー評価プロセス]」をご参照ください。
リソースディレクトリと制御ポリシーの詳細については、「[リソースディレクトリとは]」および「[概要]」をご参照ください。
Tablestore のアクセス制御方法の詳細については、「[アクセス制御の概要]」、「[RAM ポリシー]」、「[制御ポリシー]」、「[ネットワーク ACL]」、および「[インスタンスポリシー]」をご参照ください。