La referencia de la API muestra la acción en la página propia de cada punto final. Ambos provienen del mismo lugar: la llamada de autorización en el servicio, leída en el momento de la compilación.
Volúmenes, instantáneas y políticas
Estos siguen a sus nombres de extremo, y el recurso es el CRN del volumen, instantánea o política sobre la que se está actuando.
Buckets y objetos
El lado de objeto toma sus nombres de acción de S3, por lo que varios de ellos no coinciden con el punto final que protegen. Estos son los que vale la pena leer antes de escribir una política.Cuatro cosas que los nombres no te dicen
Listado de objetos que necesitastorage:ListBucket, no un ListObjects acción. La misma acción cubre la lista de versiones de objetos y la lista de cargas de múltiples partes.Este es el nombre de S3: la acción se llama por la cosa que estás listando dentro, no por lo que viene de vuelta.
Listar tus depósitos es storage:ListAllMyBuckets. Se comprueba con la cuenta, por lo que no puede ser ampliado a depósitos particulares — concederlo permite a un llamador ver que cada depósito existe, y nada más.
Eliminar un sub-recurso de bucket toma la acción Put, no una acción de eliminación.DELETE /v1/buckets/{bucket}/cors requiere storage:PutBucketCORS; lo mismo se aplica para el ciclo de vida, el cifrado, el etiquetado y el bloqueo de objetos. Borrar una configuración es escribirla en vacío.
DELETE en una clave de objeto tiene dos respuestas. Eliminar el objeto necesita storage:DeleteObject, pero DELETE /v1/buckets/{bucket}/objects/{key}?tagging — que elimina las etiquetas del objeto y deja el objeto — necesita storage:PutObject. Eliminar etiquetas es una mutación del objeto, no una eliminación de él. Una credencial concedida storage:DeleteObject solo encontrará el formulario de etiquetado rechazado.
Dos capas en el lado del objeto
Cada solicitud de objeto es decidida por IAM y por la política de depósito, en este orden:1
Llamantes anónimos
La política del bucket decide por sí sola. Sin política no hay acceso.
2
Llamantes autenticados
Un
deny explícito en cualquiera de las capas rechaza la solicitud de manera directa. Si no es así, un allow explícito de cualquiera capa es suficiente para continuar. Sin ninguno de los dos, la solicitud es rechazada — una denegación implícita.crn:iam::<account-handle>:role/<role-uuid> o crn:iam::<account-handle>:service-account/<service-account-uuid>. Utilice la identidad principal inmutable, no el CRN de recurso del rol que contiene su nombre. Los usuarios utilizan CRN de usuario calificados por la organización de Workspace. Los grupos no son solicitantes principales.
El acceso a depósitos entre cuentas o entre organizaciones también requiere que la propia directiva de cuenta del principal permita la acción. Una política de depósito no es una forma de asumir un rol en otra organización. Las negaciones explícitas siguen siendo efectivas.
Recursos
Los CRN de almacenamiento se basan en el nombre y llevan la región y la cuenta:bucket/reports/2026/* — de la misma manera que tiene un alcance a una convención de nombres en volúmenes: crn:storage:*:my-account:volume/prod-*.
Condiciones
Los volúmenes, las instantáneas y las políticas toman un mapa detags, y se aplican ambas claves de contexto de etiquetas:
basalt:RequestTag/<key>— lo que un llamador puede etiquetar un recurso como, que es lo que hace que una creación sea autorizable antes de que el recurso exista.basalt:ResourceTag/<key>— los recursos existentes que una acción puede tocar.
s3:RequestObjectTag/<key>— lo que una escritura está tratando de establecer.s3:ExistingObjectTag/<key>— lo que ya está en el objeto.basalt:TagKeys— el conjunto de claves de etiquetas que lleva una solicitud.
Qué aspecto tiene una negación
Una comprobación fallida responde403:
Las solicitudes en el punto final del protocolo S3 responden en el propio formato de error de S3 en lugar de este. Consulta los códigos de error de S3. La decisión es la misma, solo el sobre difiere.

