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.
Cómputo
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gestión y gobernanza
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migración
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análisis
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Otros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Seguridad y cumplimiento
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Servicios multimedia
Media Processing Center
Video On Demand
Live
SparkRTC
Almacenamiento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Contenedores
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bases de datos
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicaciones empresariales
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribución de contenido y cómputo de borde
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluciones
SAP Cloud
High Performance Computing
Servicios para desarrolladores
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
aPaaS MacroVerse
KooPhone
KooDrive

Sintaxis de política

Actualización más reciente 2024-07-30 GMT+08:00

A continuación se utiliza una política personalizada para OBS como ejemplo para describir la sintaxis.

{
    "Version": "1.1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "obs:bucket:ListAllMyBuckets",
                "obs:bucket:HeadBucket",
                "obs:bucket:ListBucket",
                "obs:bucket:GetBucketLocation"
            ],
            "Condition": {
                "StringEndWithIfExists": {
                    "g:UserName": [
                        "specialCharactor"
                    ]
                },
                "Bool": {
                    "g:MFAPresent": [
                        "true"
                    ]
                }
            },
            "Resource": [
                "obs:*:*:bucket:*"
            ]
        }
    ]
}

Estructura de políticas

Una política consiste en una versión y una o más sentencias (que indican diferentes acciones).

Figura 1 Estructura de políticas

Parámetros de política

Los parámetros de directiva incluyen Version y Statement, que se describen en la tabla siguiente. Puede crear políticas personalizadas especificando los parámetros. Para obtener más información, véase Casos de uso de políticas personalizadas.

Tabla 1 Parámetros de política

Parámetro

Descripción

Valor

Version

Versión de política.

1.1: indica el control de acceso basado en políticas.

Statement

Effect

Determina si se permiten o deniegan las operaciones definidas en la acción.

  • Allow
  • Deny
NOTA:

Si una acción tiene efectos Allow y Deny, el efecto Deny tiene prioridad.

Action

Operaciones a realizar en el servicio.

Formato: "Service name:Resource type:Operation". Se admiten caracteres carácter comodín (*), que indican todas las opciones.

Ejemplo:

obs:bucket:ListAllMybuckets: Permisos para listar todos los buckets OBS.

Vea todas las acciones del servicio en su Referencia de API, por ejemplo, consulte Acciones admitidas de OBS.

Condition

Determina cuándo entra en vigor una política. Una condición consiste en una clave de condición y un operador.

Formato: "Condition operator:{Condition key:[Value 1,Value 2]}"

Si establece varias condiciones, la política solo tendrá efecto cuando se cumplan todas las condiciones.

Ejemplo:

StringEndWithIfExists":{"g:UserName":["specialCharactor"]}: La instrucción es válida para usuarios cuyos nombres terminan con specialCharactor.

Resource

Recursos sobre los que entra en vigor la política.

Formato: Service name:Region:Account ID:Resource type:Resource path. Se admiten caracteres carácter comodín (*). Para obtener más información sobre los servicios en la nube que admiten la autorización a nivel de recursos y los tipos de recursos admitidos, consulte Servicios en la nube compatibles con la autorización a nivel de recursos mediante IAM.

Ejemplo:

  • obs:*:*:bucket:*: Todos los buckets de OBS.
  • obs:*:*:object:my-bucket/my-object/*: Todos los objetos del directorio my-object del bucket my-bucket.
  • Condition key
    Una clave de condición es una clave en el elemento Condition de una sentencia. Hay claves de condición globales y de nivel de servicio.
    • Las claves de condición globales (comenzando con g:) se aplican a todas las operaciones. IAM proporciona common global condition keys y special global condition keys.
      • Claves de condición globales comunes: Los servicios en la nube no necesitan proporcionar información de identidad del usuario. En su lugar, IAM abstrae automáticamente la información del usuario y autentica a los usuarios. Para obtener más información, véase Tabla 2.
      • Claves de condición global especiales: IAM obtiene información de condición de los servicios en la nube para la autenticación. Solo algunos servicios en la nube admiten claves de condición globales especiales.
    • Las claves de condición de nivel de servicio (comenzando con una abreviatura de nombre de servicio, por ejemplo, obs:) solo se aplican a las operaciones en el servicio especificado. Para obtener más información, consulte la guía del usuario del servicio en la nube correspondiente, por ejemplo, consulte Condiciones de solicitud de OBS.
    Tabla 2 Claves de condición global comunes

    Clave de condición global

    Tipo

    Descripción

    g:CurrentTime

    Time

    Tiempo en la que se recibe una solicitud de autenticación. La hora está en formato ISO 8601, por ejemplo 2012-11-11T23:59:59Z. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:DomainName

    String

    Nombre de la cuenta del solicitante. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:MFAPresent

    Boolean

    Si se obtiene un token a través de la autenticación MFA. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:MFAAge

    Number

    Período de validez de un token obtenido mediante autenticación MFA. Esta condición debe usarse junto con g:MFAPresent. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:ProjectName

    String

    Nombre del proyecto. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:ServiceName

    String

    Nombre del servicio. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:UserId

    String

    ID de usuario de IAM. (Ver una política de ejemplo que utiliza esta clave de condición)

    g:UserName

    String

    Nombre de usuario IAM. (Ver una política de ejemplo que utiliza esta clave de condición)

    Tabla 3 Claves de condición global especiales

    Clave de condición global

    Tipo

    Descripción

    g:SourceIp

    IP Address

    Dirección IP del usuario que envía una solicitud.

    g:SourceVpc

    String

    ID de VPC del usuario que envía una solicitud.

    g:SourceVpce

    String

    ID de punto de conexión de VPC del usuario que envía una solicitud.

    g:TagKeys

    String

    Clave de etiqueta de recurso.

    g:ResourceTag/{TagKey}

    String

    Valor de clave de etiqueta de recurso.

    1. g:CurrentTime

      Ejemplo: La siguiente política otorga permiso para crear roles personalizados en IAM desde el 1 de marzo de 2023, 08:00 GMT+08:00 hasta el 30 de marzo de 2023, 08:00 GMT+08:00. El valor de la clave de condición g:CurrentTime está en formato UTC.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "DateGreaterThan": {
                                         "g:CurrentTime": ["2023-03-01T00:00:00Z"]
                                },
                                "DateLessThan": {
                                         "g:CurrentTime": ["2023-03-30T00:00:00Z"]
                                }
                        }
               }]
      }
    2. g: DomainName

      Ejemplo: La siguiente política solo permite que el usuario zhangsan cree roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g:DomainName": ["zhangsan"]
                                }
                        }
               }]
      }
    3. g:MFAPresent

      Ejemplo: La siguiente política permite a los usuarios que obtengan credenciales mediante MFA crear roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "Bool": {
                                         "g:MFAPresent": ["true"]
                                }
                        }
               }]
      }
    4. g:MFAAge

      Ejemplo: La siguiente política permite a los usuarios que obtengan credenciales mediante MFA con un período válido superior a 900s crear roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                " NumberGreaterThanEquals ": {
                                         "g:MFAAge": ["900"]
                                }
                        }
               }]
      }
    5. g:ProjectName

      Ejemplo: La siguiente política permite a los usuarios que obtengan credenciales de CN North-Beijing crear roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                " StringEquals ": {
                                         "g: ProjectName ": ["cn-north-4"]
                                }
                        }
               }]
      }
    6. g: ServiceName

      Ejemplo: La siguiente política permite a los usuarios acceder a todos los servicios excepto IAM. El valor de esta clave de condición coincide con Service Name en la solicitud de autenticación.

      {
               "Version": "1.1",
               "Statement": [{
                        "Action": [
                                "*:*:*"
                        ],
                        "Effect": "Allow",
                        "Condition": {
                                "StringNotEqualsIgnoreCase": {
                                         "g:ServiceName": [
                                                  "iam"
                                         ]
                                }
                        }
               }]
      }
    7. g: UserId

      Ejemplo: La siguiente política solo permite al usuario cuyo ID sea xxxxxxxxxxx… crear roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g: UserId ": ["xxxxxxxxxxx…"]
                                }
                        }
               }]
      }
    8. g: UserName

      Ejemplo: La siguiente política solo permite que el usuario lisi cree roles personalizados en IAM.

      {
               "Version": "1.1",
               "Statement": [{
                        "Effect": "Allow",
                        "Action": ["iam:roles:createRoles"],
                        "Condition": {
                                "StringEquals": {
                                         "g: UserName ": ["lisi"]
                                }
                        }
               }]
      }
    • Claves de condición multivalor
      1. ForAllValues: Comprueba si el valor de cada miembro del conjunto de solicitudes es un subconjunto del conjunto de claves de condición. La condición devuelve true si cada valor de clave de la solicitud coincide con al menos un valor de la política.
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ims:images:share"
                    ],
                    "Condition": {
                        "ForAllValues:StringEquals": {
                            "ims:TargetOrgPaths": [
                                "orgPath1",
                                "orgPath2",
                                "orgPath3"
                            ]
                        }
                    }
                }
            ]
        }

        Esta política muestra cómo usar el calificador ForAllValues con el operador de condición StringEquals. La condición determina si se permite el uso compartido con las cuentas de miembro en la ruta de organización orgPath1, orgPath2 o orgPath3.

        Supongamos que un usuario realiza una solicitud para compartir IMS con las cuentas de miembro en las rutas de organización orgPath1 y orgPath3. Se permite la solicitud porque los atributos solicitados del usuario coinciden con los valores especificados en la política.

        Si la solicitud del usuario incluye orgPath1, orgPath2, orgPath3 y orgPath4, la solicitud falla porque orgPath4 no está incluida en el operador de condición.

      2. ForAnyValue: Prueba si al menos un miembro del conjunto de valores de solicitud coincide con al menos un miembro del conjunto de valores de clave de condición. La condición devuelve true si cualquiera de los valores de clave de la solicitud coincide con cualquiera de los valores de condición de la política. Para ninguna clave coincidente o un conjunto de datos nulo, la condición devuelve false.
        {
            "Version": "1.1",
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ims:images:share"
                    ],
                    "Condition": {
                        "ForAnyValue:StringEquals": {
                            "ims:TargetOrgPaths": [
                                "orgPath1",
                                "orgPath2",
                                "orgPath3"
                            ]
                        }
                    }
                }
            ]
        }

        Esta política muestra cómo usar el calificador ForAnyValue con el operador de condición StringEquals. La condición determina si se permite el uso compartido con las cuentas de miembro en la ruta de organización orgPath1, orgPath2 o orgPath3.

        Supongamos que un usuario realiza una solicitud para compartir IMS con las cuentas de miembro en la ruta de organización orgPath1 o orgPath4. Se permite la solicitud porque los atributos solicitados del usuario coinciden con los valores especificados en la política.

        Si el usuario inicia una solicitud para compartir IMS con las cuentas de miembro en la ruta de organización orgPath4 o orgPath5, la solicitud falla porque orgPath4 y orgPath5 no están incluidos en el operador de condición.

    Condition operators

    Figura 2 Operadores de condiciones
    1. Si un único operador de condición incluye múltiples valores para una clave, ese operador de condición se evalúa usando un OR lógico. La condición devuelve true si alguno de los valores de clave de la solicitud coincide con cualquiera de los valores de condición de la política.
      AVISO:

      Para los operadores de condiciones coincidentes anulados (como StringNotEquals), el valor de solicitud no puede coincidir con ninguno de los valores de condición basándose en los operadores de condición.

    2. Si la política tiene varios operadores de condiciones o varias claves conectadas a un único operador de condiciones, las condiciones se evalúan mediante un AND lógico.
  • Operator

    Un operador, una clave de condición y un valor de condición juntos constituyen una declaración de condición completa. Una política solo entra en vigor cuando se cumplen las condiciones de solicitud. El sufijo de operador IfExists indica que una política entra en vigor si un valor de solicitud está vacío o cumple la condición especificada. Por ejemplo, si se selecciona el operador StringEqualsIfExists para una política, la política tiene efecto si un valor de solicitud está vacío o es igual al valor de condición especificado. Los operadores son operadores de cadena. No distinguen entre mayúsculas y minúsculas a menos que se especifique lo contrario.

    • Operadores de condición de string
      Tabla 4 Operadores de condición de string

      Tipo

      Operador

      Descripción

      String

      StringEquals

      Coincidencia exacta, sensible a mayúsculas y minúsculas

      StringNotEquals

      Coincidencia negativa, sensible a mayúsculas y minúsculas

      StringEqualsIgnoreCase

      Coincidencia exacta

      StringNotEqualsIgnoreCase

      Coincidencia negativa

      StringMatch

      Coincidencia sensible a mayúsculas y minúsculas. Los valores son expresiones regulares que admiten solo comodines de coincidencia de varios caracteres (*) y comodines de coincidencia de un solo carácter (?).

      StringNotMatch

      Coincidencia negativa sensible a mayúsculas y minúsculas. Los valores son expresiones regulares que admiten solo comodines de coincidencia de varios caracteres (*) y comodines de coincidencia de un solo carácter (?).

      Por ejemplo, la siguiente sentencia contiene un elemento de condición que utiliza "g:DomainName" para especificar que el principal cuyo nombre de dominio es "ZhangSan" puede obtener el contenido y los metadatos del objeto.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:object:GetObject"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "g:DomainName": [
                              "ZhangSan"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condición numérica
      Tabla 5 Operadores de condición numérica

      Tipo

      Operador

      Descripción

      Number

      NumberEquals

      Coincidencia

      NumberNotEquals

      Coincidencia negativa

      NumberLessThan

      Coincidencia de "menos que"

      NumberLessThanEquals

      Coincidencia "Menos que o igual"

      NumberGreaterThan

      Coincidencia de "mayor que"

      NumberGreaterThanEquals

      Coincidencia "mayor que o igual"

      Por ejemplo, la siguiente sentencia contiene un elemento de condición que utiliza el operador de condición "NumericLessThanEquals" con la clave "obs:max-keys" para especificar que el solicitante puede enumerar hasta 10 objetos en "example_bucket" a la vez.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:ListBucket"
                  ],
                  "Resource": [
                      "OBS:*:*:bucket:example_bucket"
                  ],
                  "Condition": {
                      "NumberLessThanEquals": {
                          "obs:max-keys": [
                              "10"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condición de fecha
      Tabla 6 Operadores de condición de fecha

      Tipo

      Operador

      Descripción

      Date

      DateLessThan

      Coincidencia antes de una fecha y hora específicas

      DateLessThanEquals

      Coincidencia en o antes de una fecha y hora específicas

      DateGreaterThan

      Coincidencia después de una fecha y hora específicas

      DateGreaterThanEquals

      Coincidencia en o después de una fecha y hora específicas

      Por ejemplo, la siguiente sentencia contiene un elemento de condición que utiliza el operador de condición "DateLessThan" con la clave "g:CurrentTime" para especificar que el solicitante puede crear buckets solo antes del 1 de agosto de 2022.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "obs:bucket:CreateBucket"
                  ],
                  "Condition": {
                      "DateLessThan": {
                          "g:CurrentTime": [
                              "2022-08-01T00:00:00Z"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condición Bool
      Tabla 7 Operadores de condición Bool

      Tipo

      Operador

      Descripción

      Bool

      Bool

      Las condiciones booleanas permiten construir elementos de condición que restringen el acceso basándose en la comparación de una clave con "true" o "false".

      Por ejemplo, esta política basada en identidad utiliza el operador de condición Bool con la clave "g:MFAPresent" para permitir que solo los solicitantes con MFA habilitado puedan modificar las claves de acceso permanente especificadas.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "iam:credentials:updateCredential"
                  ],
                  "Condition": {
                      "Bool": {
                          "g:MFAPresent": [
                              "true"
                          ]
                      }
                  }
              }
          ]
      }
    • Operadores de condición Null
      Tabla 8 Operadores de condición Null

      Tipo

      Operador

      Descripción

      Null

      Null

      Utilice un operador de condición Null para comprobar si una clave de condición está ausente en el momento de la autorización. En la sentencia de política, use "true" (la clave no existe o es nula) o "false" (la clave existe y su valor no es nulo).

      Por ejemplo, puede usar este operador de condición para especificar que solo se permiten las solicitudes de creación de buckets desde las VPC.

      {
          "Version": "1.1",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      " obs:bucket:CreateBucket"
                  ],
                  "Condition": {
                      "Null": {
                          "obs:SourceVpc": [
                              "false"
                          ]
                      }
                  }
              }
          ]
      }
    • Sufijo del operador IfExists

      Puede agregar "IfExists" al final de cualquier nombre de operador de condición, excepto la "Null condition", por ejemplo, StringEqualsIfExists. Si la clave de política está presente en el contexto de la solicitud, procese la clave como se especifica en la política. Si la clave no está presente, evalúe el elemento de condición como true.

Utilizamos cookies para mejorar nuestro sitio y tu experiencia. Al continuar navegando en nuestro sitio, tú aceptas nuestra política de cookies. Descubre más

Comentarios

Comentarios

Comentarios

0/500

Seleccionar contenido

Enviar el contenido seleccionado con los comentarios