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 2022-11-07 GMT+08:00

Cómo crear una política personalizada

Las políticas personalizadas se pueden crear como un suplemento a las políticas del sistema de FunctionGraph.

Puede crear políticas personalizadas de cualquiera de las siguientes maneras:

  • Visual editor: Seleccione servicios en la nube, acciones, recursos y condiciones de solicitud. Esto no requiere conocimiento de la sintaxis de políticas.
  • JSON: Edite las políticas 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. En esta sección se presentan los ejemplos de políticas personalizadas comunes de FunctionGraph.

Ejemplo de políticas personalizadas

  • Ejemplo 1: Autorizar a un usuario a consultar el código de función y la configuración
    {     
        "Version": "1.1",     
        "Statement": [         
            {             
                "Effect": "Allow",            
                "Action": [
                   "functiongraph:function:list",
                   "functiongraph:function:getConfig",
                   "funcitongraph:function:getCode"             
                ]        
             }     
        ] 
    }
  • Ejemplo 2: Denegar la eliminación de funciones

    Una política con solo los permisos "Denegar" debe usarse junto con otras políticas para que surtan efecto. Si ambos permisos "Permitir" y "Denegar" se asignan a un usuario, los permisos "Denegar" tienen prioridad sobre los permisos "Permitir".

    Si necesita asignar permisos de la política FunctionGraph FullAccess a un usuario pero evitar que el usuario elimine funciones, cree una política personalizada para denegar la eliminación de funciones y adjunte ambas políticas al grupo al que pertenece el usuario. De esta manera, el usuario puede realizar todas las operaciones de FunctionGraph excepto la eliminación de funciones. A continuación se muestra un ejemplo de una política de denegación:

    {
        "Version": "1.1",
        "Statement": [
            "Effect": "Deny",
            "Action": [
                "functiongraph:function:delete" 
            ] 
        ]
    }
  • Ejemplo 3: Configuración de permisos para recursos específicos

    Puede conceder permisos de usuario de IAM para recursos específicos. Por ejemplo, para conceder permisos de usuario para la función functionname en la aplicación Default, establezca functionname en una ruta de recurso especificada que es: FUNCTIONGRAPH:*:*:function:Default/functionname.

    Especificar recursos de función:

    Formato: FUNCTIONGRAPH:*:*:function: application or function name

    Para los recursos de función, IAM genera automáticamente el prefijo de ruta de recursos FUNCTIONGRAPH:*:*:function: Puede especificar una ruta de recurso agregando el nombre de la aplicación o función junto al prefijo de ruta de acceso. Se admiten comodines Wildcards (*). Por ejemplo, FUNCTIONGRAPH:*:*:function:Default/* indica cualquier función en la aplicación Default.

    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "functiongraph:function:list"
                ]
            },
            {
                "Effect": "Allow",
                "Action": [
                    "functiongraph:function:listAlias",
                    "functiongraph:function:listVersion",
                    "functiongraph:function:getConfig",
                    "functiongraph:function:getCode",
                    "functiongraph:function:updateCode",
                    "functiongraph:function:invoke",
                    "functiongraph:function:updateConfig",
                    "functiongraph:function:createVersion",
                    "functiongraph:function:updateAlias",
                    "functiongraph:function:createAlias"
                ],
                "Resource": [
                    "FUNCTIONGRAPH:*:*:function:Default/*"
                ]
            }
        ]
    }