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