为接口终端节点配置终端节点策略,可以精确限定特定用户对阿里云服务中特定资源的可执行操作。
工作原理
使用接口终端节点访问阿里云服务时,可以为接口终端节点配置终端节点策略。终端节点策略遵循RAM权限策略的基本元素和语法结构,以JSON格式定义。
支持使用接口终端节点访问的阿里云服务均支持配置默认终端节点策略,授予对接口终端节点的完全访问权限。
仅对象存储 OSS、PAI - AI WorkSpace 支持配置自定义终端节点策略。
当创建终端节点访问非阿里云服务(伙伴服务、用户自建服务)时,不支持配置自定义终端节点策略,终端节点默认允许所有访问。
网关终端节点是一种特殊类型的终端节点,它不依赖于PrivateLink,仅支持访问有限的阿里云服务,支持配置自定义终端节点策略。
策略类型
终端节点策略分为两种类型:
默认终端节点策略:允许 VPC 中使用任何阿里云账户凭证的用户或服务访问对应服务中的任何资源。
{ // Effect:定义策略效果。 "Effect": "Allow", // Principal:定义策略授权的主体,即谁可以使用该终端节点。通配符*代表所有身份。 "Principal": "*", // Action:定义允许或拒绝的操作。 "Action": "*", // Resource:定义操作所对应的资源。 "Resource": "*" }自定义终端节点策略:根据安全需求,配置精细化的访问控制策略,限制特定用户对服务指定资源可执行的操作。
策略覆盖关系
终端节点策略不取代或覆盖基于身份的策略(Identity-based Policy)或基于资源的策略(Resource-based Policy,例如OSS 的 Bucket Policy)。一个请求的最终访问权限是所有相关策略共同作用的结果,可参考权限策略判定流程。
配置终端节点策略
控制台
前往终端节点 - 创建终端节点页面,创建接口终端节点时配置终端节点策略。
创建完成后,在目标终端节点详情页的终端节点策略页签下,单击编辑终端节点策略修改。
API
调用CreateVpcEndpoint时,传入PolicyDocument,配置终端节点策略。
调用UpdateVpcEndpointAttribute修改终端节点策略。
终端节点策略配置示例
示例1:拒绝特定操作
本终端节点策略允许所有用户执行除oss:PutObject(上传文件)之外的所有OSS操作。
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"oss:*"
],
"Resource": [
"acs:oss:*:*:*"
]
},
{
"Effect": "Deny",
"Action": [
"oss:PutObject"
],
"Resource": [
"acs:oss:*:*:*"
]
}
]
}示例2:指定允许访问的资源和动作
本终端节点策略仅允许对OSSpvl-policy-testBucket中的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下的RAM用户pvl-policy-allow通过终端节点访问服务,同时明确拒绝同一主账号下的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"
]
}
}
]
}