インターフェイスエンドポイントにエンドポイントポリシーを設定することで、ユーザーが Alibaba Cloud サービス内のリソースに対して実行できる操作を制御します。
仕組み
エンドポイントポリシーをインターフェイスエンドポイントにアタッチして、Alibaba Cloud サービスへのアクセスを制御できます。エンドポイントポリシーは、Resource Access Management (RAM) ポリシーの基本的な要素と構文に従った JSON フォーマットを使用します。
インターフェイスエンドポイント経由でアクセス可能なすべての Alibaba Cloud サービスは、デフォルトのエンドポイントポリシーをサポートしており、インターフェイスエンドポイント経由でのフルアクセスを許可します。
カスタムエンドポイントポリシーをサポートしているのは、Object Storage Service (OSS) と PAI - AI WorkSpace のみです。
パートナーサービスやユーザー作成サービスなど、Alibaba Cloud 以外のサービスにアクセスするためにエンドポイントを作成する場合、カスタムエンドポイントポリシーは設定できません。デフォルトでは、エンドポイントはすべてのアクセスを許可します。
ゲートウェイエンドポイントは特殊なタイプのエンドポイントです。PrivateLink には依存せず、限られた Alibaba Cloud サービスへのアクセスのみをサポートし、カスタムエンドポイントポリシーをサポートします。
ポリシーのタイプ
エンドポイントポリシーには 2 つのタイプがあります:
デフォルト:VPC 内の任意のユーザーまたはサービスが、自身のアカウント認証情報を使用して、関連付けられたサービス内の任意のリソースにアクセスすることを許可します。
{ // Effect: ポリシーの効果を定義します。 "Effect": "Allow", // Principal: ポリシーによって権限が付与されるプリンシパルを定義します。これにより、エンドポイントを使用できるユーザーを指定します。ワイルドカード文字 (*) は、すべての ID を表します。 "Principal": "*", // Action: 許可または拒否される操作を定義します。 "Action": "*", // Resource: 操作が実行されるリソースを定義します。 "Resource": "*" }カスタム:ユーザーが詳細なアクセスコントロールポリシーを設定し、リソースに対して実行できる操作を制限できます。
ポリシーのオーバーライドルール
エンドポイントポリシーは、OSS のバケットポリシーなどの ID ベースのポリシーやリソースベースのポリシーを置き換えたり、オーバーライドしたりするものではありません。適用されるすべてのポリシーを総合的に評価した結果によって、最終的なアクセス権限が決定されます。詳細については、「アクセスポリシーの評価方法」をご参照ください。
エンドポイントポリシーの設定
コンソール
エンドポイント - エンドポイントの作成 ページに移動します。インターフェイスエンドポイントを作成するときは、[エンドポイントポリシー] を設定します。
エンドポイントの作成後、その詳細ページに移動します。[エンドポイントポリシー] タブで、[編集] をクリックします。
API
CreateVpcEndpoint 操作を呼び出す際に、PolicyDocument パラメーターを指定してエンドポイントポリシーを設定します。
UpdateVpcEndpointAttribute 操作を呼び出して、エンドポイントポリシーを変更します。
例
操作の拒否
このエンドポイントポリシーは、すべてのユーザーに対して、oss:PutObject (ファイルのアップロード) を除くすべての OSS 操作を許可します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:*"
],
"Resource": [
"acs:oss:*:*:*"
]
},
{
"Effect": "Deny",
"Action": [
"oss:PutObject"
],
"Resource": [
"acs:oss:*:*:*"
]
}
]
}許可されるリソースと操作の指定
このエンドポイントポリシーは、pvl-policy-test という名前の OSS バケット内の policy-test.txt ファイルに対して、リスト (List*)、アップロード (PutObject)、ダウンロード (GetObject) 操作のみを許可します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:GetObject",
"oss:PutObject"
],
"Resource": [
"acs:oss:*:*:pvl-policy-test/policy-test.txt"
]
},
{
"Effect": "Allow",
"Action": [
"oss:List*"
],
"Resource": [
"acs:oss:*:*:pvl-policy-test"
],
"Condition": {
"StringLike": {
"oss:Prefix": "policy-test.txt*"
}
}
}
]
}例 3:特定の RAM ユーザーのみにアクセスを許可
このエンドポイントポリシーは、ID が 14199926XXXXXXXX の Alibaba Cloud アカウント配下の RAM ユーザー pvl-policy-allow のみが、エンドポイント経由でサービスにアクセスすることを許可します。また、このポリシーは、同じ Alibaba Cloud アカウントに属する RAM ユーザー pvl-policy-deny からのアクセスリクエストを明示的に拒否します。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"*"
],
"Resource": [
"*"
],
"Principal": {
"RAM": [
"acs:ram::14199926XXXXXXXX:user/pvl-policy-allow"
]
}
},
{
"Effect": "Deny",
"Action": [
"*"
],
"Resource": [
"*"
],
"Principal": {
"RAM": [
"acs:ram::14199926XXXXXXXX:user/pvl-policy-deny"
]
}
}
]
}