Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-12-26 GMT+08:00

Políticas personalizadas de OBS

Se pueden crear políticas personalizadas para complementar las políticas definidas por el sistema de OBS. Para ver las acciones admitidas para las políticas personalizadas, consulte Acciones relacionadas con buckets y Acciones relacionadas con objetos.

Puede crear políticas personalizadas de cualquiera de las dos formas siguientes:

  • Visual editor: Seleccione los servicios en la nube, acciones, recursos y condiciones de solicitud sin la necesidad de conocer la sintaxis de la política.
  • JSON: Edite las políticas de JSON desde cero o basándose en una política existente.

Para obtener más información, consulte Creación de una política personalizada. A continuación se proporcionan ejemplos de políticas personalizadas de OBS comunes.

Ejemplo de las políticas personalizadas

  • Ejemplo 1: Concede todos los permisos de OBS a los usuarios.
    Esta política permite a los usuarios realizar cualquier operación en OBS.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ]
            }
        ]
    }
  • Ejemplo 2: Concede todos los permisos de OBS Console a los usuarios.

    Esta política permite a los usuarios realizar todas las operaciones en OBS Console.

    Cuando un usuario inicia sesión en OBS Console, el usuario puede acceder a recursos de otros servicios, como información de auditoría en CTS, nombres de dominio de aceleración en CDN y claves en KMS. Por lo tanto, además de los permisos de OBS del ejemplo 1, también debe configurar los permisos de acceso a otros servicios. CDN es un servicio global, mientras que CTS y KMS son regionales. Debe configurar el permiso de Tenant Guest para el proyecto global y los proyectos regionales en función de los servicios y regiones que utilice.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ]
            }
        ]
    }
  • Ejemplo 3: Otorgar el permiso de solo lectura en un bucket a los usuarios (cualquier directorio).
    Este política permite a los usuarios listar y descargar todos los objetos de bucket obs-example.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:bucket:ListBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • Ejemplo 4: Otorgar el permiso de solo lectura en un bucket a los usuarios (directorio especificado).
    Este política permite a los usuarios descargar objetos solo en el directorio my-project/ de bucket obs-example. Los objetos de otros directorios se pueden enumerar, pero no se pueden descargar.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:bucket:ListBucket"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/my-project/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • Ejemplo 5: Otorgar los permisos de lectura y escritura en un bucket a los usuarios (directorio especificado).
    Este política permite a los usuarios listar, descargar, cargar y eliminar objetos en el directorio my-project de bucket obs-example.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject",
                    "obs:object:ListMultipartUploadParts",
                    "obs:bucket:ListBucket",
                    "obs:object:DeleteObject",
                    "obs:object:PutObject"
                ],
                "Resource": [
                    "obs:*:*:object:obs-example/my-project/*",
                    "obs:*:*:bucket:obs-example"
                ]
            }
        ]
    }
  • Ejemplo 6: Otorgar todos los permisos de un bucket a los usuarios.
    Este política permite a los usuarios realizar cualquier operación en bucket obs-example.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:*:*"
                ],
                "Resource": [
                    "obs:*:*:bucket:obs-example",
                    "obs:*:*:object:obs-example/*"
                ]
            }
        ]
    }
  • Ejemplo 7: Denegar permisos a los usuarios para cargar objetos.

    Una política de denegación debe usarse junto con otras políticas. Si los permisos asignados a un usuario contienen tanto "Allow" como "Deny", los permisos "Deny" tienen prioridad sobre los permisos "Allow".

    Si concede la directiva de sistema OBS OperateAccess a un usuario pero no desea que el usuario tenga el permiso de carga de objetos (que también es un permiso permitido por OBS OperateAccess), puede crear una directiva personalizada además de la política de OBS OperateAccess para denegar el permiso de carga del usuario. De acuerdo con el principio de autorización, la política con la declaración de denegación tiene prioridad, de modo que el usuario puede realizar todas las operaciones permitidas por OBS OperateAccess, excepto cargar objetos. A continuación se muestra un ejemplo de una política de denegación:

    { 
             "Version": "1.1", 
             "Statement": [ 
                     {
                             "Effect": "Deny", 
                             "Action": [ 
                                     "obs:object:PutObject" 
                             ],
                     } 
             ] 
     }