Todos los productos
Search
Centro de documentos

Object Storage Service:Accessing OSS through access points

Última actualización: Sep 03, 2026

Los access points proporcionan puntos de entrada independientes para los buckets. Cree un access point separado para cada aplicación o equipo y utilice las políticas de access point para gestionar los permisos de forma individual; así evitará reglas complejas en una sola política de bucket.

Funcionamiento

Un access point actúa como una capa de proxy para un bucket. Al crear uno, OSS genera un alias de access point único que reemplaza el nombre del bucket en las solicitudes. Cada access point cuenta con su propia política de access point (que define las acciones permitidas, los recursos y las identidades) y un origen de red (internet o una VPC específica) para lograr un acceso aislado y adaptado a cada escenario.

Cuando un usuario realiza una solicitud a través de un access point, el sistema evalúa conjuntamente la RAM policy, la bucket policy y la política del access point. La solicitud se completa correctamente solo cuando tanto las políticas combinadas de RAM/bucket como la política del access point se evalúan como Allow. Permission evaluation logic.

De forma predeterminada, un access point no tiene acceso al bucket. Configure la delegación de permisos en la política del bucket mediante las claves de condición oss:DataAccessPointArn, oss:DataAccessPointAccount o oss:AccessPointNetworkOrigin para otorgar explícitamente al access point acceso al bucket.

Inicio rápido

Cree un access point, delegue permisos en la política del bucket y luego acceda a los recursos mediante el alias del access point.

Paso 1: Crear un access point

Cree un access point y configure su política para definir quién puede realizar qué acciones sobre qué recursos de OSS y bajo qué condiciones.

  1. Vaya a la Access Point List y haga clic en Create Access Point.

  2. Introduzca un Access Point Name, seleccione el bucket asociado y el Network Origin, y luego haga clic en Next.

    Nota
    • Si establece el Network Origin en VPC, debe introducir un VPC ID. Puede obtener el VPC ID desde la VPC Console.

    • La región de la VPC especificada debe ser una de las regions that support OSS gateway endpoints. Si las regiones no coinciden, las solicitudes de autenticación no podrán asociarse correctamente con la VPC indicada, lo que provocará fallos de autenticación.

  3. Desactive la opción Block Public Access y configure una política de access point.

    GUI

    Parámetro

    Descripción

    Applied To

    Seleccione si desea autorizar el acceso al Whole Bucket o a Specific Resources.

    Resource Paths

    • Si establece Applied To en Whole Bucket, el campo Resource Paths se configura como accesspoint/{Access Point Name}/*.

    • Si establece Applied To en Specific Resources, introduzca el directorio u objeto individual que desea autorizar. Puede agregar varias entradas.

    Authorized User

    Especifique el destinatario de los permisos.

    • RAM user: Seleccione un usuario de RAM que pertenezca a la cuenta actual de Alibaba Cloud.

      La cuenta que ha iniciado sesión debe ser una cuenta de Alibaba Cloud o un usuario de RAM con permisos de gestión de buckets y permiso ListUsers. De lo contrario, no será posible listar los usuarios de RAM.

    • Other Account: Introduzca el UID de otra cuenta o usuario de RAM, o bien un usuario con rol asumido cuyo ARN comience con arn:sts, por ejemplo arn:sts::1798**:assumed-role/role-name/session-name. Puede otorgar permisos a varios usuarios, con una entrada por línea.

    Authorized Operation

    • Simple Settings: Seleccione una combinación común de operaciones autorizadas. Las opciones incluyen Read-Only (excluding ListObject), Read-Only (including ListObject), Read/Write, Full Access y Deny Access.

    • Advanced Settings: Personalice el Effect (Allow o Reject) y la Action.

    Syntax

    Introduzca la política de autorización en formato JSON en el editor.

    Ejemplo de política: Otorgar permisos de lectura/escritura al usuario 20816353761158**** .
    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:GetObject",
          "oss:PutObject",
          "oss:GetObjectAcl",
          "oss:PutObjectAcl",
          "oss:ListObjects",
          "oss:AbortMultipartUpload",
          "oss:ListParts",
          "oss:RestoreObject",
          "oss:ListObjectVersions",
          "oss:GetObjectVersion",
          "oss:GetObjectVersionAcl",
          "oss:RestoreObjectVersion"
        ],
        "Principal": [
          "20816353761158****"
        ],
        "Resource": [
          "acs:oss:{region-id}:179882766168****:accesspoint/{ap-name}/object/*"
        ]
      }, {
        "Effect": "Allow",
        "Action": [
          "oss:ListObjects",
          "oss:GetObject"
        ],
        "Principal": [
          "20816353761158****"
        ],
        "Resource": [
          "acs:oss:{region-id}:179882766168****:accesspoint/{ap-name}"
        ],
        "Condition": {
          "StringLike": {
            "oss:Prefix": [
              "*"
            ]
          }
        }
      }]
    }

    Un documento de política contiene Version y Statement.

    • Version: La versión de la política. Este valor es fijo en 1 y no se puede modificar.

    • Statement: Una regla de la política. Cada declaración contiene Effect, Action, Principal, Resource y Condition.

      Elemento de la política

      Descripción

      Effect

      El efecto de la política. Los valores válidos son Allow y Deny.

      Action

      La operación que se realizará sobre el recurso. Se admite el comodín de asterisco (*).

      Principal

      El usuario, la cuenta o el rol al que aplica la política.

      Resource

      Los recursos a los que aplica la política.

      Condition

      Las condiciones bajo las cuales la política entra en vigor.

      Si se especifican varias condiciones, se evalúan mediante un AND lógico; todas las condiciones deben cumplirse para que la política surta efecto.

      Todos los elementos de la política se definen en Authorization Syntax and Elements.

  4. Haga clic en Submit y espere a que se cree el access point.

Paso 2: Delegar permisos

Después de crear un access point, configure la delegación de permisos en la política del bucket para otorgarle acceso al mismo. Hay tres tipos de delegación disponibles:

  • oss:DataAccessPointArn: Delega permisos de acceso para un access point específico.

  • oss:DataAccessPointAccount: Delega permisos de acceso para todos los access points bajo la cuenta actual de Alibaba Cloud.

  • oss:AccessPointNetworkOrigin: Delega permisos de acceso para todos los access points que tienen un origen de red específico.

Access point específico

  1. Vaya a la Bucket List y haga clic en el nombre del bucket de destino.

  2. En el panel de navegación izquierdo, elija Access Control > Bucket Policy y luego haga clic en la pestaña Add Rule by Syntax.

  3. Haga clic en Edit e introduzca la política de autorización en formato JSON en el editor.

    Nota

    Reemplace el UID, el nombre del bucket, el ID de región y el nombre del access point con sus valores reales. Si la política del bucket ya contiene declaraciones, agregue esta regla al arreglo Statement.

    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:*"
        ],
        "Principal": [
          "*"
        ],
        "Resource": [
          "acs:oss:*:179882766168****:example-bucket",
          "acs:oss:*:179882766168****:example-bucket/*"
        ],
        "Condition": {
          "StringEquals": {
            "oss:DataAccessPointArn": [
              "acs:oss:oss-{region-id}:179882766168****:accesspoint/{ap-name}"
            ]
          }
        }
      }]
    }
  4. Haga clic en Save para aplicar la política del bucket.

Todos los access points

  1. Vaya a la Bucket List y haga clic en el nombre del bucket de destino.

  2. En el panel de navegación izquierdo, elija Access Control > Bucket Policy y luego haga clic en la pestaña Add Rule by Syntax.

  3. Haga clic en Edit e introduzca la política de autorización en formato JSON en el editor.

    Nota

    Reemplace el UID y el nombre del bucket con sus valores reales. Si la política del bucket ya contiene declaraciones, agregue esta regla al arreglo Statement.

    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:*"
        ],
        "Principal": [
          "*"
        ],
        "Resource": [
          "acs:oss:*:179882766168****:example-bucket",
          "acs:oss:*:179882766168****:example-bucket/*"
        ],
        "Condition": {
          "StringEquals": {
            "oss:DataAccessPointAccount": [
              "179882766168****"
            ]
          }
        }
      }]
    }
  4. Haga clic en Save para aplicar la política del bucket.

Por origen de red

  1. Vaya a la Bucket List y haga clic en el nombre del bucket de destino.

  2. En el panel de navegación izquierdo, elija Access Control > Bucket Policy y luego haga clic en la pestaña Add Rule by Syntax.

  3. Haga clic en Edit e introduzca la política de autorización en formato JSON en el editor.

    Nota
    • Reemplace el UID y el nombre del bucket con sus valores reales. Si la política del bucket ya contiene declaraciones, agregue esta regla al arreglo Statement.

    • Cuando oss:AccessPointNetworkOrigin se establece en internet, los permisos se delegan a todos los access points cuyo origen de red es internet. Esta configuración permite el acceso tanto desde internet como desde VPCs. Para restringir el acceso únicamente a VPCs, cambie el valor a vpc.

    {
      "Version": "1",
      "Statement": [{
        "Effect": "Allow",
        "Action": [
          "oss:*"
        ],
        "Principal": [
          "*"
        ],
        "Resource": [
          "acs:oss:*:179882766168****:example-bucket",
          "acs:oss:*:179882766168****:example-bucket/*"
        ],
        "Condition": {
          "StringEquals": {
            "oss:AccessPointNetworkOrigin": [
              "internet"
            ]
          }
        }
      }]
    }
  4. Haga clic en Save para aplicar la política del bucket.

Nota

Si recibe un error como "The bucket policy contains public access semantics", desactive Block Public Access para el bucket antes de delegar permisos.

Paso 3: Acceder a los recursos

Las identidades autorizadas (como los usuarios de RAM) utilizan el alias del access point para acceder a los recursos de OSS.

APIs compatibles

API

Descripción

PutAccessPointPolicy

Configura una política de access point.

GetAccessPointPolicy

Obtiene la configuración de una política de access point.

DeleteAccessPointPolicy

Elimina una política de access point.

ListObjects (GetBucket)

Lista información sobre todos los objetos en un bucket.

ListObjectsV2 (GetBucketV2)

ListObjectVersions (GetBucketVersions)

Lista todas las versiones de los objetos en un bucket, incluidos los marcadores de eliminación.

PutObject

Carga un objeto.

GetObject

Obtiene un objeto.

CopyObject

Copia un objeto.

AppendObject

Carga un objeto anexando datos.

DeleteObject

Elimina un solo objeto.

DeleteMultipleObjects

Elimina varios objetos.

HeadObject

Devuelve solo los metadatos de un objeto, no su contenido.

GetObjectMeta

Devuelve metadatos parciales de un objeto, como su ETag, tamaño y hora LastModified, pero no su contenido.

PostObject

Carga un objeto mediante un formulario HTML.

RestoreObject

Restaura un objeto Archive, Cold Archive o Deep Cold Archive.

SelectObject

Ejecuta una sentencia SQL sobre un objeto de destino y devuelve el resultado.

InitiateMultipartUpload

Inicializa una carga multiparte.

UploadPart

Carga una parte en una carga multiparte.

UploadPartCopy

Crea una parte copiando datos de un objeto existente.

CompleteMultipartUpload

Completa una carga multiparte ensamblando las partes cargadas previamente.

AbortMultipartUpload

Cancela una carga multiparte y elimina cualquier parte que se haya cargado.

ListMultipartUploads

Lista todas las cargas multiparte en curso.

ListParts

Lista las partes que se han cargado para una carga multiparte específica.

PutObjectACL

Modifica los permisos de acceso de un objeto.

GetObjectACL

Consulta los permisos de acceso de un objeto.

PutSymlink

Crea un enlace simbólico.

GetSymlink

Lee el destino de un enlace simbólico.

PutObjectTagging

Establece o actualiza las etiquetas de un objeto.

GetObjectTagging

Recupera las etiquetas de un objeto.

DeleteObjectTagging

Elimina todas las etiquetas de un objeto.

SDK

Solo los SDKs de Java y Python admiten alias de access point.

import com.aliyun.sdk.service.oss2.OSSClient;
import com.aliyun.sdk.service.oss2.credentials.CredentialsProvider;
import com.aliyun.sdk.service.oss2.credentials.StaticCredentialsProvider;
import com.aliyun.sdk.service.oss2.models.GetObjectRequest;

import java.io.File;

/**
 * OSS Java SDK V2 example: Download an object to a local file by using an access point.
 */
public class DownloadObjectWithAccessPoint {

    public static void main(String[] args) {
        // Create an OSS client.
        String accessKeyId = System.getenv("OSS_ACCESS_KEY_ID");
        String accessKeySecret = System.getenv("OSS_ACCESS_KEY_SECRET");
        CredentialsProvider provider = new StaticCredentialsProvider(accessKeyId, accessKeySecret);
        OSSClient client = OSSClient.newBuilder()
                .credentialsProvider(provider)
                .region("<region-id>")
                .build();

        // Download the object to a local file by using an access point alias.
        String bucket = "example-ap-b156d01070a10322664d6704cd1d47****-ossalias";
        String key = "example.jpg";
        File file = new File("example.jpg");
        client.getObjectToFile(GetObjectRequest.newBuilder()
                .bucket(bucket)
                .key(key)
                .build(), file);
        System.out.println("Download complete: " + key + " -> " + file.getPath());

        // Close the client.
        try {
            client.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""OSS Python SDK V2 example: Download an object to a local file by using an access point."""

import alibabacloud_oss_v2 as oss

def main() -> None:
    """Main function"""
    # Create an OSS client.
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
    config = oss.config.load_default()
    config.credentials_provider = credentials_provider
    config.region = "<region-id>"
    config.endpoint = "oss-<region-id>.aliyuncs.com"
    client = oss.Client(config)

    # Download the object to a local file by using an access point alias.
    bucket = "example-ap-b156d01070a10322664d6704cd1d47****-ossalias"
    key = "example.jpg"
    file_path = "example.jpg"
    request = oss.GetObjectRequest(bucket, key)
    client.get_object_to_file(request, file_path)
    print(f"Download complete: {key} -> {file_path}")

if __name__ == "__main__":
    main()

ossutil

Utilice el alias del access point como nombre del bucket en los comandos de ossutil.

ossutil cp oss://example-ap-b156d01070a10322664d6704cd1d47****-ossalias/example.jpg /tmp

REST API

Utilice el alias del access point en el encabezado Host:

GET /ObjectName HTTP/1.1
Host: example-ap-b156d01070a10322664d6704cd1d47****-ossalias.oss-{region-id}.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

Puede usar curl para comprobar rápidamente la conectividad y la configuración de permisos de su access point:

curl -v \
  -H "Date: <GMT time>" \
  -H "Authorization: OSS <AccessKeyId>:<Signature>" \
  "https://<access-point-alias>.oss-<region-id>.oss-accesspoint.aliyuncs.com/<ObjectName>" \
  -o <local-file-path>

Escenario de ejemplo

Este ejemplo utiliza access points para proporcionar acceso seguro y aislado a múltiples departamentos en un escenario de análisis de big data.

Escenario

Una empresa (UID de cuenta de Alibaba Cloud: 137918634953****) almacena datos recopilados centralmente en un bucket llamado examplebucket. Diez departamentos comerciales diferentes necesitan acceder a este bucket con los siguientes requisitos:

Departamento

Alcance de acceso

Permisos

Origen de red

Departamentos 1–3

Directorio dir1/

Solo lectura

Internet

Departamento 4

Todo el bucket

Lectura/Escritura

Internet

Departamentos 5–10

Directorio dir2/

Lectura/Escritura

Solo VPC

Diseño de la solución

Diseñe tres access points para los diferentes escenarios de acceso, utilizando políticas de access point para el control de permisos y las restricciones de red.

Access point

Parámetro

Origen de red

Destinatario

Recurso autorizado

Permisos

Access Point 1

ap-01

Internet

Usuarios de RAM de los Departamentos 1–3 (UID: 26571698800555****)

dir1/*

Solo lectura

Access Point 2

ap-02

Internet

Usuarios de RAM del Departamento 4 (UID: 25770968794578****)

* (todo el bucket)

Lectura/Escritura

Access Point 3

ap-03

VPC

Usuarios de RAM de los Departamentos 5–10 (UID: 26806658794579****)

dir2/*

Lectura/Escritura

Política de access point

ap-01: Acceso de solo lectura

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:GetObject",
      "oss:GetObjectAcl",
      "oss:ListObjects",
      "oss:RestoreObject",
      "oss:ListObjectVersions",
      "oss:GetObjectVersion",
      "oss:GetObjectVersionAcl",
      "oss:RestoreObjectVersion"
    ],
    "Principal": [
      "26571698800555****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-01/object/dir1/*"
    ]
  },{
    "Effect": "Allow",
    "Action": [
      "oss:ListObjects",
      "oss:GetObject"
    ],
    "Principal": [
      "26571698800555****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-01"
    ],
    "Condition": {
      "StringLike": {
        "oss:Prefix": [
          "dir1/*"
        ]
      }
    }
  }]
}

ap-02: Acceso de lectura/escritura

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:GetObject",
      "oss:PutObject",
      "oss:GetObjectAcl",
      "oss:PutObjectAcl",
      "oss:ListObjects",
      "oss:AbortMultipartUpload",
      "oss:ListParts",
      "oss:RestoreObject",
      "oss:ListObjectVersions",
      "oss:GetObjectVersion",
      "oss:GetObjectVersionAcl",
      "oss:RestoreObjectVersion"
    ],
    "Principal": [
      "25770968794578****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-02/object/*"
    ]
  },{
    "Effect": "Allow",
    "Action": [
      "oss:ListObjects",
      "oss:GetObject"
    ],
    "Principal": [
      "25770968794578****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-02"
    ],
    "Condition": {
      "StringLike": {
        "oss:Prefix": [
          "*"
        ]
      }
    }
  }]
}

ap-03: Acceso de lectura/escritura desde VPC

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:GetObject",
      "oss:PutObject",
      "oss:GetObjectAcl",
      "oss:PutObjectAcl",
      "oss:ListObjects",
      "oss:AbortMultipartUpload",
      "oss:ListParts",
      "oss:RestoreObject",
      "oss:ListObjectVersions",
      "oss:GetObjectVersion",
      "oss:GetObjectVersionAcl",
      "oss:RestoreObjectVersion"
    ],
    "Principal": [
      "26806658794579****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-03/object/dir2/*"
    ]
  },{
    "Effect": "Allow",
    "Action": [
      "oss:ListObjects",
      "oss:GetObject"
    ],
    "Principal": [
      "26806658794579****"
    ],
    "Resource": [
      "acs:oss:{region-id}:137918634953****:accesspoint/ap-03"
    ],
    "Condition": {
      "StringLike": {
        "oss:Prefix": [
          "dir2/*"
        ]
      }
    }
  }]
}

Delegación de política de bucket

Este escenario utiliza oss:DataAccessPointAccount para una delegación unificada en todos los access points bajo la misma cuenta. Para un control granular, utilice oss:DataAccessPointArn para delegar por access point.

Delegación unificada

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:*"
    ],
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:137918634953****:examplebucket",
      "acs:oss:*:137918634953****:examplebucket/*"
    ],
    "Condition": {
      "StringEquals": {
        "oss:DataAccessPointAccount": [
          "137918634953****"
        ]
      }
    }
  }]
}

Delegación individual

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": [
      "oss:*"
    ],
    "Principal": [
      "*"
    ],
    "Resource": [
      "acs:oss:*:137918634953****:examplebucket",
      "acs:oss:*:137918634953****:examplebucket/*"
    ],
    "Condition": {
      "StringEquals": {
        "oss:DataAccessPointArn": [
          "acs:oss:oss-{region-id}:137918634953****:accesspoint/ap-01",
          "acs:oss:oss-{region-id}:137918634953****:accesspoint/ap-02",
          "acs:oss:oss-{region-id}:137918634953****:accesspoint/ap-03"
        ]
      }
    }
  }]
}

Lógica de evaluación de permisos

Resultado de política de RAM y bucket

Resultado de política de access point

Resultado final

Allow

Allow

Allow

Allow

Deny

Deny

Allow

Implicit Deny

Implicit Deny

Deny

Allow

Deny

Deny

Deny

Deny

Deny

Implicit Deny

Deny

Implicit Deny

Allow

Implicit Deny

Implicit Deny

Deny

Deny

Implicit Deny

Implicit Deny

Implicit Deny

  • Allow: La solicitud coincide con una declaración Allow y no hay declaraciones Deny.

  • Denegación explícita: La solicitud coincide con una declaración Deny. Deny tiene prioridad sobre Allow.

  • Denegación implícita: La solicitud no coincide ni con una declaración Allow ni con una Deny. De forma predeterminada, una identidad de RAM no tiene permisos. Cualquier acción no permitida explícitamente se deniega implícitamente.

Cuotas y limitaciones

Limitación

Descripción

Método de creación

Cree access points mediante la consola de OSS, la API u ossutil. No se admite la creación mediante SDKs.

Cantidad de access points

Máximo de 1,000 access points por cuenta de Alibaba Cloud.

Reglas de modificación

Después de la creación, solo se puede modificar la política del access point. El nombre y el alias son inmutables.

Método de acceso

No se admite el acceso anónimo.

Preguntas frecuentes

¿La política de access point admite listas de permitidos de IP?

Sí. Agregue una condición acs:SourceIp a su política de access point para implementar control de acceso basado en IP. Ejemplo:

{
  "Version": "1",
  "Statement": [{
    "Effect": "Allow",
    "Action": ["oss:GetObject"],
    "Principal": ["*"],
    "Resource": ["acs:oss:{region-id}:179882766168****:accesspoint/{ap-name}/object/*"],
    "Condition": {
      "IpAddress": {
        "acs:SourceIp": ["192.168.1.0/24", "203.0.113.5"]
      }
    }
  }]
}

Esta política permite que solo las solicitudes provenientes de las IPs o rangos CIDR especificados accedan a los recursos a través del access point. El ejemplo usa "203.0.113.5" (una IP sin máscara), que es la forma recomendada de especificar una sola IP. Si prefiere la notación CIDR (como /32 para una sola IP), elija el operador de condición apropiado:

Operador de condición

Comportamiento

Caso de uso

IpAddress

Excluye las IPs límite (direcciones de red y broadcast)

IPs simples o rangos /1~/31

IpAddressIncludeBorder

Incluye las IPs límite

Cuando se usa /32 para una sola IP

IpAddress excluye las IPs límite (direcciones de red y broadcast) al evaluar rangos CIDR. Con una máscara /32, la propia IP es la dirección límite y queda excluida, lo que hace que la política no tenga efecto. Utilice IpAddressIncludeBorder en su lugar:

"Condition": {
  "IpAddressIncludeBorder": {
    "acs:SourceIp": ["203.0.113.5/32"]
  }
}

Permisos obligatorios para la creación

Se requieren los siguientes permisos: oss:CreateAccessPoint, oss:GetAccessPoint, oss:DeleteAccessPoint, oss:ListAccessPoints, oss:PutAccessPointPolicy, oss:GetAccessPointPolicy, oss:DeleteAccessPointPolicy, oss:PutBucketPolicy, oss:GetBucketPolicy y oss:DeleteBucketPolicy.

Documentos relacionados