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> Domain Name Service> Guía del usuario> Gestión de permisos> Creación de políticas personalizadas
Actualización más reciente 2023-04-24 GMT+08:00

Creación de políticas personalizadas

Puede crear políticas personalizadas para complementar las políticas definidas por el sistema e implementar un control de acceso más refinado.

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

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

A continuación se describe cómo crear una política personalizada que permita a los usuarios modificar zonas DNS en el editor visual y la vista JSON.

Para obtener más información, consulte Creación de una política personalizada. Se proporcionan algunos ejemplos de políticas DNS personalizadas comunes.

Creación de una política personalizada en el editor visual

  1. Inicie sesión en la consola de gestión.
  2. En la consola de gestión, pasa el cursor sobre el nombre de usuario en la esquina superior derecha, y elige Identity and Access Management en la lista desplegable.
  3. En el panel de navegación de la izquierda, elija Permissions.
  4. Haga clic en Create Custom Policy.

    Se muestra la página Create Custom Policy.

  5. Introduzca un nombre de política.
  6. Seleccione un ámbito en el que la política surtirá efecto según el tipo de servicios que se establezca en esta política. Para obtener más información, consulte Permisos del sistema.
    • Global services: seleccione esta opción si los servicios a los que está relacionada la política están disponibles para todas las regiones una vez desplegadas. Al crear directivas personalizadas para los servicios implementados globalmente, especifique el ámbito como Global services. Las políticas personalizadas de este ámbito deben adjuntarse a los grupos de usuarios de la región Servicio global.
    • Project-level services: seleccione esta opción si los servicios a los que está relacionada la política se despliegan en regiones específicas. Al crear directivas personalizadas para los servicios implementados regionalmente, especifique el ámbito como Project-level services. Las políticas personalizadas de este ámbito deben adjuntarse a grupos de usuarios en regiones específicas, excepto en la región de servicio global.

    Seleccione Project-level services aquí.

    Una política personalizada puede contener acciones de varios servicios que están todos disponibles globalmente o todos desplegados solo en proyectos específicos. Para definir los permisos necesarios para acceder a los servicios disponibles globalmente y específicos del proyecto, cree dos directivas personalizadas y especifique el ámbito como Global services y Project-level services respectivamente.

  7. Seleccione Visual editor.
  8. En el área Policy Content, configure una política personalizada.
    1. Seleccione Allow o Deny.
    2. Seleccione Cloud service.

      Solo se puede seleccionar un servicio en la nube para cada bloque de permisos. Para configurar permisos para varios servicios en la nube, haga clic en Agregar permisos o cambie a Creación de una política personalizada en la vista JSON.

    3. Seleccione acciones.
    4. (Opcional) Seleccione un tipo de recurso. Por ejemplo, si selecciona Specific, puede hacer clic en Specify resource path para especificar el recurso que se va a autorizar.
    5. (Opcional) Agregue condiciones de solicitud especificando claves de condición, operadores y valores.
      Tabla 1 Criterio

      Nombre

      Descripción

      Condition Key

      Una clave en el elemento Condition de una sentencia. Hay claves de condición globales y de nivel de servicio.

      • Clave de condición de nivel global: el prefijo es g:, que se aplica a todas las operaciones, como se muestra en Tabla 2.
      • Clave de condición a nivel de proyecto: El prefijo es la abreviatura de un servicio, por ejemplo, dns:. Esta clave solo se aplica a las operaciones del servicio correspondiente.

      Operator

      Se utiliza junto con una clave de condición para formar una sentencia de condición completa.

      Value

      Se utiliza junto con una clave de condición y un operador que requiere una palabra clave, para formar una sentencia de condición completa.

      Tabla 2 Condición de solicitud global

      Claves de condición globales

      Tipo

      Descripción

      g:CurrentTime

      Time

      Tiempo en la que se recibe una solicitud de autenticación. El tiempo está en formato ISO 8601, por ejemplo, 2012-11-11T23:59:59Z.

      g:DomainName

      String

      Nombre de cuenta

      g:MFAPresent

      Boolean

      Si se debe utilizar la autenticación multifactor (MFA) para obtener un token

      g:MFAAge

      Value

      Período de validez del token obtenido a través de MFA. Esta condición debe usarse junto con g:MFAPresent.

      g:ProjectName

      String

      Nombre del proyecto

      g:ServiceName

      String

      Nombre del servicio

      g:UserId

      String

      ID de usuario de IAM

      g:UserName

      String

      Nombre de usuario de IAM

  9. (Opcional) Cambie a la vista JSON. A continuación, puede modificar el contenido de la política en la estructura JSON.

    Si la estructura JSON es incorrecta después de la modificación, compruebe el contenido o haga clic en Reset para cancelar la modificación

  10. (Opcional) Para agregar otro bloque de permisos a la política, haga clic en Add Permissions. También puede hacer clic en el icono de (+) más a la derecha de un bloque de permisos existente para clonar sus permisos.
  11. (Opcional) Describa la política.
  12. Haga clic en OK. Se crea la política personalizada.
  13. Asigne la política a un grupo de usuarios para que los usuarios del grupo puedan heredar los permisos de la política haciendo referencia a Creación de un usuario y concesión de permisos DNS.

Creación de una política personalizada en la vista JSON

  1. Inicie sesión en la consola de gestión.
  2. En la consola de gestión, pasa el cursor sobre el nombre de usuario en la esquina superior derecha, y elige Identity and Access Management en la lista desplegable.
  3. En el panel de navegación de la izquierda, elija Permissions.
  4. Haga clic en Create Custom Policy.

    Se muestra la página Create Custom Policy.

  5. Introduzca un nombre de política.
  6. Seleccione un ámbito en el que la política surtirá efecto según el tipo de servicios que se establezca en esta política. Para obtener más información, consulte Permisos del sistema.
    • Global services: seleccione esta opción si los servicios a los que está relacionada la política están disponibles para todas las regiones una vez desplegadas. Al crear directivas personalizadas para los servicios implementados globalmente, especifique el ámbito como Global services. Las políticas personalizadas de este ámbito deben adjuntarse a los grupos de usuarios de la región Servicio global.
    • Project-level services: seleccione esta opción si los servicios a los que está relacionada la política se despliegan en regiones específicas. Al crear directivas personalizadas para los servicios implementados regionalmente, especifique el ámbito como Project-level services. Las políticas personalizadas de este ámbito deben adjuntarse a grupos de usuarios en regiones específicas, excepto en la región de servicio global.

    Seleccione Project-level services aquí.

    Una política personalizada puede contener acciones de varios servicios que están todos disponibles globalmente o todos desplegados solo en proyectos específicos. Para definir los permisos necesarios para acceder a los servicios disponibles globalmente y específicos del proyecto, cree dos directivas personalizadas y especifique el ámbito como Global services y Project-level services respectivamente.

  7. Seleccione JSON.
  8. (Opcional) Haga clic en Select Existing Policy y seleccione una política para usarla como plantilla, como DNS FullAccess.
  9. Haga clic en OK.
  10. Modifique las sentencias en la plantilla.
    • Effect: Escriba Allow o Deny.
    • Action: Ingrese las acciones que aparecen en la tabla de acciones de DNS API, por ejemplo, dns:zone:create.

    El valor Version de una política personalizada debe ser 1.1.

  11. (Opcional) Describa la política.
  12. Haga clic en OK. Si se muestra la lista de políticas, la política se crea correctamente. Si se muestra un mensaje que indica contenido de política incorrecto, modifique la política.
  13. Asigne la política a un grupo de usuarios para que los usuarios del grupo puedan heredar los permisos de la política haciendo referencia a Creación de un usuario y concesión de permisos DNS.

Ejemplo de personalización de una política en la vista JSON

  • Ejemplo 1: Autorizar a los usuarios a crear zonas, agregar conjuntos de registros y ver las zonas y conjuntos de registros.
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "dns:zone:create",
                    "dns:recordset:create",
                    "dns:zone:list"
    				"dns:recordset:list"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "vpc:*:get*,
                    "vpc:*:list*"
                ]
            }
        ]
    }
  • Ejemplo 2: No permitir que los usuarios eliminen recursos DNS.

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

    El siguiente método se puede utilizar si necesita asignar permisos de la política DNS FullAccess a un usuario, pero también prohibir que el usuario elimine recursos DNS. Crear una política personalizada para no permitir la eliminación de recursos y asignar ambas políticas al grupo al que pertenece el usuario. A continuación, el usuario puede realizar todas las operaciones en DNS excepto la eliminación de recursos. El seguiente se muestra un ejemplo de política de denegación:

    { 
          "Version": "1.1", 
          "Statement": [ 
                { 
    		  "Effect": "Deny", 
                      "Action": [ 
                            "dns:*:delete*" 
                      ] 
                } 
          ] 
    }
  • Ejemplo 3: Definición de permisos para varios servicios en una política

    Una política personalizada puede contener acciones de varios servicios que son todos de tipo global o de nivel de proyecto. La siguiente es una política con varias acciones:

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "dns:zone:update",
                    "dns:zone:list"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "vpc:subnets:create",
                    "vpc:vips:update"
                ]
            }
        ]
    }