You need to enable JavaScript to run this app.
导航
配置双端固定
最近更新时间:2024.09.12 18:02:53首次发布时间:2023.07.14 19:44:36

本文介绍如何配置双端固定,以及双端固定的场景示例。

注意事项

TOS 只有从 VPC 终端节点发出的请求中才能获取到 SourceVpc 这一鉴权上下文信息。因此单独使用 SourceVpc 这个 condition 来限制请求需要符合某些条件实现单端固定,不会生效。

操作说明

配置双端固定时,您需要在终端节点处配置终端节点策略,限制 VPC 内云资源访问的对象存储范围。还需要在对象存储处配置桶策略或 IAM 策略,使得 VPC 内的账号拥有对存储桶执行指定操作的权限。

  1. 配置 VPC 终端节点策略。
    您可以在创建终端节点时,配置 VPC 终端节点策略,即配置访问策略参数。配置时,您可以通过 Action 指定允许执行的操作,通过 Resource 指定允许访问的对象存储资源范围。通过 Condition(例如tos:BucketTag) 指定允许访问的具有指定标签的存储桶。具体操作,请参见创建网关终端节点修改终端节点

    注意

    VPC 终端节点功能处于邀测状态,如您需要使用该功能,请联系客户经理。

  2. 配置桶策略或 IAM 策略。

示例一:授予 VPC 内的云资源对指定存储桶执行所有操作的权限

场景描述:在 VPC 终端节点策略处允许 VPC 内的云资源使用任意账号对 tos-example 存储桶执行所有操作,在桶策略处授予 VPC 内账号对 tos-example 存储桶执行所有操作的权限。

  • VPC 终端节点策略配置如下:

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": ["*"],
          "Resource": [
            "trn:tos:::tos-example",
            "trn:tos:::tos-example/*"
          ]
        }
      ]
    }
    
  • 桶策略配置如下:

    {
      "Statement": [
        {
          "Sid": "id-11",
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": [
            "*"
          ],
          "Resource": [
            "trn:tos:::tos-example",
            "trn:tos:::tos-example/*"
          ],
          "Condition": {
            "StringEquals": {
              "tos:sourcevpc": [
                "vpc-pedgr4xdnklc4acvz69o****"
              ]
            }
          }
        }
      ]
    }
    

示例二:授予 VPC 内的云资源对指定存储桶执行上传、下载对象操作的权限

场景描述: 在 VPC 终端节点策略处允许 VPC 内的云资源使用任意账号对 tos-example 存储桶执行上传、下载对象操作,在桶策略处授予 VPC 内账号对 tos-example 存储桶执行上传、下载对象的权限。

  • VPC 终端节点策略配置如下:

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": ["tos:PutObject","tos:GetObject"],
          "Resource": [
            "trn:tos:::tos-example/*"
          ]
        }
      ]
    }
    
  • 桶策略配置如下:

    {
      "Statement": [
        {
          "Sid": "id-11",
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": [
            "tos:PutObject",
            "tos:GetObject"
          ],
          "Resource": [
            "trn:tos:::tos-example/*"
          ],
          "Condition": {
            "StringEquals": {
              "tos:sourcevpc": [
                "vpc-pedgr4xdnklc4acvz69o****"
              ]
            }
          }
        }
      ]
    }
    

示例三:授予 VPC 内云资源对一组存储桶执行上传、下载对象操作的权限

TOS 支持通过 BucketTag 进行权限控制,您可以通过桶标签对存储桶进行分类,然后使用 VPC 终端节点策略和 IAM 策略授予 VPC 内云资源访问具有指定标签的存储桶的权限。
场景描述:在 VPC 终端节点策略处允许 VPC 内的云资源使用任意账号对桶标签为 Tag1:Value1 的存储桶执行上传、下载对象操作,在 IAM 策略处授予 VPC 内账号对存储桶执行上传、下载对象操作。

  • VPC 终端节点策略配置如下:

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": ["tos:PutObject","tos:GetObject"],
          "Resource": [
            "*"
          ],
          "Condition":{
              "StringEquals":{
                   "tos:BucketTag/Tag1": ["Value1"]
              }
          }
        }
      ]
    }
    
  • IAM 策略配置如下:

    {
        "Statement": [
            {
                "Sid": "id-11",
                "Effect": "Allow",
                "Action": [
                    "tos:PutObject",
                    "tos:GetObject"
                ],
                "Resource": [
                    "*"
                ],
                "Condition": {
                    "StringEquals": {
                        "SourceVpc": [
                            "vpc-pedgr4xdnklc4acvz69o****"
                        ]
                    }
                }
            }
        ]
    }
    

示例四:授予 VPC 内的云资源和来自 TOS 内部跨区域复制请求对指定存储桶执行上传、下载对象操作的权限

当同时设置了 VPC 的终端节点策略与 tos-example 桶策略后,由于双端固定的限制,其他云服务以及 TOS 内部跨区域复制和桶清单请求可能无法访问 tos-example 存储桶。针对这种情况,您可以指定 rolename 使得其他云服务和 TOS 内部请求能够正常访问存储桶 tos-example
场景描述:在 VPC 终端节点策略处允许 VPC 内的云资源使用任意账号对 tos-example 桶执行上传、下载对象操作,在桶策略处授予 VPC 内账号对 tos-example 存储桶执行上传、下载对象的权限,同时允许来自 TOS 内部跨区域复制请求执行上传、下载对象操作。

  • VPC 终端节点策略配置如下:

    {
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": ["tos:PutObject","tos:GetObject"],
          "Resource": [
            "trn:tos:::tos-example/*"
          ]
        }
      ]
    }
    
  • 桶策略配置如下:

    {
      "Statement": [
        {
          "Sid": "id-11",
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": [
            "tos:PutObject",
            "tos:GetObject"
          ],
          "Resource": [
            "trn:tos:::tos-example/*"
          ],
          "Condition": {
            "StringEquals": {
              "tos:sourcevpc": [
                "vpc-pedgr4xdnklc4acvz69o****"
              ]
            }
          }
        },
        {
          "Sid": "id-12",
          "Effect": "Allow",
          "Principal": [
            "*"
          ],
          "Action": [
            "tos:PutObject",
            "tos:GetObject"
          ],
          "Resource": [
            "trn:tos:::tos-example/*"
          ],
          "Condition": {
            "StringEquals": {
              "tos:rolename": [
                "ServiceRoleforReplicationAccessTOS"
              ]
            }
          }
        }
      ]
    }
    

    除此之外,桶策略也可以配置为拒绝除指定 VPC 或指定 rolename 外的访问。但此种配置会导致无法通过控制台访问该存储桶。
    拒绝除vpc-pedgr4xdnklc4acvz69o**** VPC 和跨区域复制外的请求在存储桶执行上传、下载对象操作,示例如下:

    {
      "Statement": [
        {
          "Sid": "id-11",
          "Effect": "Deny",
          "Principal": [
            "*"
          ],
          "Action": [
            "tos:PutObject",
            "tos:GetObject"
          ],
          "Resource": [
            "trn:tos:::tos-example/*"
          ],
          "Condition": {
            "StringNotEquals": {
              "tos:sourcevpc": [
                "vpc-pedgr4xdnklc4acvz69o****"
              ],
              "tos:rolename": [
                "ServiceRoleforReplicationAccessTOS"
              ]
            }
          }
        }
      ]
    }
    

rolename 说明

TOS 内部请求和其他云服务对应 rolename 如下:

请求来源

rolename

跨区域复制

ServiceRoleforReplicationAccessTOS

桶清单

TosArchiveTOSInventory

其他云服务

服务关联角色名称。

说明

为其他云服务设置 rolename 前,您需要创建角色,并设置授权的身份类型为云服务。关于创建服务关联角色的具体操作,请参见角色管理