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.
Centro de ayuda> Identity and Access Management> Referencia de la API> API> Gestión de políticas personalizadas> Creación de una política personalizada para servicios en la nube
Actualización más reciente 2022-11-08 GMT+08:00

Creación de una política personalizada para servicios en la nube

Función

Esta API se proporciona para que el administrador cree una política personalizada para los servicios en la nube.

Se puede llamar a la API utilizando tanto el punto de conexión global como los puntos de conexión específicos de la región. Para los puntos de conexión de IAM, consulte Regions y puntos de conexión.

URI

POST /v3.0/OS-ROLE/roles

Parámetros de solicitud

Tabla 1 Parámetros en el encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

Content-Type

String

Rellene application/json;charset=utf8 en este campo.

X-Auth-Token

String

Consulte Acciones.

Tabla 2 Parámetros en el cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

role

Object

Información de política personalizada.

Tabla 3 role

Parámetro

Obligatorio

Tipo

Descripción

display_name

String

Nombre para mostrar de la política personalizada.

type

String

Ámbito de aplicación de la política personalizada.

  • Servicios globales: AX
  • Proyectos específicos de la región: XA

Establezca el modo de visualización de una política personalizada en AX o XA.

NOTA:
  • Para asignar una política personalizada que contenga operaciones OBS a un grupo de usuarios, cree dos políticas personalizadas con el ámbito establecido en servicios globales y proyectos específicos de región respectivamente y otros parámetros que sean los mismos y, a continuación, adjunte las dos políticas al grupo de usuarios.
  • Para minimizar el alcance de la autorización, no incluya acciones de otros servicios en la nube en las políticas OBS personalizadas.

description

String

Descripción de la política personalizada.

description_cn

No

String

Descripción de la política personalizada en chino.

policy

Object

Contenido de la política personalizada.

Tabla 4 role.policy

Parámetro

Obligatorio

Tipo

Descripción

Version

String

Versión de política. Al crear una política personalizada, establezca este parámetro en 1.1.

NOTA:
  • 1.0: Función definida por el sistema. Solo se proporciona un número limitado de roles de nivel de servicio para la autorización.
  • 1.1: Política. Una política define los permisos necesarios para realizar operaciones en un recurso de nube específico bajo ciertas condiciones.

Statement

Array of objects

Sentencia de la política. Una política puede contener un máximo de ocho sentencias.

Tabla 5 role.policy.Statement

Parámetro

Obligatorio

Tipo

Descripción

Action

Array of strings

Permiso de operación específico en un recurso. Se permite un máximo de 100 acciones.

NOTA:
  • El formato de valor es Service name:Resource type:Operation, por ejemplo, vpc:ports:create.
  • Nombre del servicio: indica el nombre del producto, como ecs, evs, or vpc. Solo se permiten letras minúsculas. Los tipos de recursos y las operaciones no distinguen entre mayúsculas y minúsculas. Puede utilizar un asterisco (*) para representar todas las operaciones.
  • Una política personalizada (role.policy.Statement) no puede contener acciones de servicios globales y de nivel de proyecto. Para obtener más información sobre el alcance de los permisos de servicio, consulte Permisos de sistema.

Effect

String

Efectos de la autorización. El valor puede ser Allow o Deny. Si las instrucciones Permitir y Deny se encuentran en una política, la autenticación comienza desde las sentencias Deny.

Opciones:

  • Allow
  • Deny

Condition

No

Map<String,Map<String,Array<String>>>

Condiciones para que el permiso entre en vigor. Se permite un máximo de 10 condiciones. Para obtener más información sobre los parámetros de condición, consulte Creación de una política personalizada.

NOTA:

Tome la condición en la solicitud de ejemplo como un ejemplo, los valores de la clave de condición (obs:prefix) y cadena (public) deben ser iguales (StringEquals).

 "Condition": {
              "StringEquals": {
                "obs:prefix": [
                  "public"
                ]
              }
            }

Resource

No

Array of strings

Recurso en la nube. La matriz puede contener un máximo de 10 cadenas de recursos, y cada cadena no puede exceder de 128 caracteres.

NOTA:
  • Formato: ::::. Por ejemplo, obs:::bucket:*. Se permiten asteriscos.
  • El segmento de región puede ser * o una región accesible para el usuario. El recurso especificado debe pertenecer al servicio correspondiente que realmente existe.

Parámetros de respuesta

Tabla 6 Parámetros en el cuerpo de respuesta

Parámetro

Tipo

Descripción

role

Object

Información de política personalizada.

Tabla 7 role

Parámetro

Tipo

Descripción

catalog

String

Catálogo de servicios.

display_name

String

Nombre para mostrar de la política personalizada.

description

String

Descripción de la política personalizada.

links

Object

Enlace de recurso de la política personalizada.

policy

Object

Contenido de la política personalizada.

description_cn

String

Descripción de la política personalizada en chino.

domain_id

String

ID de cuenta.

type

String

Modo de visualización.

NOTA:
  • AX: el proyecto de servicio global
  • XA: proyectos específicos de la región
  • Establezca el modo de visualización de una política personalizada en AX o XA.

id

String

ID de política personalizado.

name

String

Nombre de la política personalizada.

updated_time

String

Hora en la que se actualizó por última vez la política personalizada.

created_time

String

Hora en la que se creó la política personalizada.

references

String

Número de referencias.

Tabla 9 role.policy

Parámetro

Tipo

Descripción

Version

String

Versión de política.

NOTA:
  • 1.0: Función definida por el sistema. Solo se proporciona un número limitado de roles de nivel de servicio para la autorización.
  • 1.1: Política. Una política define los permisos necesarios para realizar operaciones en un recurso de nube específico bajo ciertas condiciones.

Statement

Array of objects

Sentencia de la política. Una política puede contener un máximo de ocho sentencias.

Tabla 10 role.policy.Statement

Parámetro

Obligatorio

Tipo

Descripción

Action

Array of strings

Permiso de operación específico en un recurso. Se permite un máximo de 100 acciones.

NOTA:
  • El formato de valor es Service name:Resource type:Operation, por ejemplo, vpc:ports:create.
  • Nombre del servicio: indica el nombre del producto, como ecs, evs, or vpc. Solo se permiten letras minúsculas. Los tipos de recursos y las operaciones no distinguen entre mayúsculas y minúsculas. Puede utilizar un asterisco (*) para representar todas las operaciones.

Effect

String

Efectos de la autorización. El valor puede ser Allow o Deny. Si las instrucciones Permitir y Deny se encuentran en una política, la autenticación comienza desde las sentencias Deny.

Opciones:

  • Allow
  • Deny

Condition

No

Map<String,Map<String,Array<String>>>

Condiciones para que el permiso entre en vigor. Se permite un máximo de 10 condiciones. Para obtener más información sobre los parámetros de condición, consulte Creación de una política personalizada.

NOTA:

Tome la condición en la solicitud de ejemplo como un ejemplo, los valores de la clave de condición (obs:prefix) y cadena (public) deben ser iguales (StringEquals).

 "Condition": {
              "StringEquals": {
                "obs:prefix": [
                  "public"
                ]
              }
            }

Resource

No

Array of strings

Recurso en la nube. La matriz puede contener un máximo de 10 cadenas de recursos, y cada cadena no puede exceder de 128 caracteres.

NOTA:
  • Formato: ::::. Por ejemplo, obs:::bucket:*. Se permiten asteriscos.
  • El segmento de región puede ser * o una región accesible para el usuario. El recurso especificado debe pertenecer al servicio correspondiente que realmente existe.

Solicitud de ejemplo

POST https://iam.myhuaweicloud.com/v3.0/OS-ROLE/roles
{
    "role": {
        "display_name": "IAMCloudServicePolicy",
        "type": "AX",
        "description": "IAMDescription",
        "description_cn": "Description in Chinese",
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "ap-southeast-1"
                            ]
                        }
                    },
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ]
                }
            ]
        }
    }
}

Ejemplo de respuesta

Código de estado: 201

La política personalizada se crea correctamente.

{
    "role": {
        "catalog": "CUSTOMED",
        "display_name": "IAMCloudServicePolicy",
        "description": "IAMDescription",
        "links": {
            "self": "https://iam.myhuaweicloud.com/v3/roles/93879fd90f1046f69e6e0b31c94d2615"
        },
        "policy": {
            "Version": "1.1",
            "Statement": [
                {
                    "Action": [
                        "obs:bucket:GetBucketAcl"
                    ],
                    "Resource": [
                        "obs:*:*:bucket:*"
                    ],
                    "Effect": "Allow",
                    "Condition": {
                        "StringStartWith": {
                            "g:ProjectName": [
                                "ap-southeast-1"
                            ]
                        }
                    }
                }
            ]
        },
        "description_cn": "Description in Chinese",
        "domain_id": "d78cbac186b744899480f25bd...",
        "type": "AX",
        "id": "93879fd90f1046f69e6e0b31c9...",
        "name": "custom_d78cbac186b744899480f25bd022f468_1"
    }
}

Códigos de estado

Código de estado

Descripción

201

La política personalizada se crea correctamente.

400

Parámetros no válidos.

401

Error de autenticación.

403

Acceso denegado.

500

Error de servidor interno.

Códigos de error

Ninguno