Tous les produits
Search
Centre de documentation

Function Compute:Politiques et exemples de politiques

Dernière mise à jour :Sep 21, 2026

Function Compute s'appuie sur Resource Access Management (RAM) pour la gestion des permissions. Avec RAM, vous n'avez pas besoin de partager vos paires AccessKey avec d'autres utilisateurs. Vous pouvez plutôt accorder aux utilisateurs uniquement les permissions minimales requises. Une paire AccessKey comprend un AccessKey ID et un AccessKey secret. Cette rubrique décrit les politiques pour Function Compute, notamment les politiques système et les politiques personnalisées. Elle fournit également des exemples de politiques personnalisées.

Types de politiques

Dans RAM, une politique est un ensemble de permissions définies selon la Structure et syntaxe des politiques. Une politique définit avec précision l'ensemble des ressources autorisées, l'ensemble des actions et les conditions d'autorisation. Les politiques pour Function Compute incluent les types suivants :

  • Politiques système : Alibaba Cloud crée et met à jour les politiques système. Vous pouvez utiliser ces politiques, mais vous ne pouvez pas les modifier.

  • Politiques personnalisées : Vous pouvez créer, mettre à jour et supprimer des politiques personnalisées. Vous devez gérer les versions de ces politiques.

Politiques système

Lors de votre première connexion à la console Function Compute en tant qu'utilisateur RAM, vous devez utiliser votre compte Alibaba Cloud pour attacher les politiques système de Function Compute et d'autres services Alibaba Cloud à cet utilisateur. L'accès aux services Alibaba Cloud, y compris Function Compute, n'est possible pour l'utilisateur RAM qu'après l'attachement de ces politiques système.

Les éléments suivants répertorient les politiques système par type :

  • Politiques système pour Function Compute

    Nom de la politique

    Description

    AliyunFCReadOnlyAccess

    Autorisations en lecture seule sur toutes les ressources Function Compute.

    AliyunFCInvocationAccess

    Autorisations permettant d'invoquer des fonctions.

    AliyunFCFullAccess

    Autorisations permettant de gérer toutes les ressources Function Compute.

    Remarque

    La politique AliyunFCFullAccess inclut les autorisations des politiques AliyunFCInvocationAccess et AliyunFCReadOnlyAccess. Une fois la politique AliyunFCFullAccess attachée à un utilisateur RAM, il n'est pas nécessaire de lui attacher également les politiques AliyunFCInvocationAccess ou AliyunFCReadOnlyAccess.

  • Politiques système pour d'autres services Alibaba Cloud

    Service Alibaba Cloud

    Politique système

    Simple Log Service

    • AliyunLogReadOnlyAccess : autorisations en lecture seule sur les ressources Simple Log Service.

    • AliyunLogFullAccess : autorisations permettant de gérer les ressources Simple Log Service.

    Remarque

    Pour accéder à Simple Log Service en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunLogReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    Object Storage Service (OSS)

    • AliyunOSSReadOnlyAccess : autorisations en lecture seule sur les ressources OSS.

    • AliyunOSSFullAccess : autorisations permettant de gérer les ressources OSS.

    CloudMonitor

    AliyunCloudMonitorReadOnlyAccess : autorisations en lecture seule sur les ressources CloudMonitor.

    Certificate Management Service

    AliyunYundunCertReadOnlyAccess : autorisations en lecture seule sur les ressources Certificate Management Service.

    Virtual Private Cloud (VPC)

    AliyunVPCReadOnlyAccess : autorisations en lecture seule sur les ressources VPC.

    Elastic Compute Service (ECS)

    AliyunECSReadOnlyAccess : autorisations en lecture seule sur les ressources ECS.

    RAM

    • AliyunRAMReadOnlyAccess : autorisations en lecture seule sur les ressources RAM, y compris la consultation des utilisateurs, des groupes et des informations d'autorisation.

    • AliyunRAMFullAccess : autorisations permettant de gérer les ressources RAM, y compris la gestion des utilisateurs et l'octroi d'autorisations.

    Remarque

    Si vous n'attachez que la politique AliyunRAMReadOnlyAccess à un utilisateur RAM, celui-ci ne pourra obtenir que la liste des rôles dans la console. Pour effectuer d'autres opérations en tant qu'utilisateur RAM, vous devez lui attacher la politique AliyunRAMFullAccess.

    Application Real-Time Monitoring Service (ARMS)

    • AliyunARMSReadOnlyAccess : autorisations en lecture seule sur les ressources ARMS.

    • AliyunARMSFullAccess : autorisations permettant de gérer les ressources ARMS.

    Remarque

    Pour accéder à ARMS en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunARMSReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    Simple Message Queue (formerly MNS)

    • AliyunMNSReadOnlyAccess : autorisations en lecture seule sur les ressources Simple Message Queue (formerly MNS).

    • AliyunMNSFullAccess : autorisations permettant de gérer les ressources Simple Message Queue (formerly MNS).

    Remarque

    Pour accéder à Simple Message Queue (formerly MNS) en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunMNSReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.Simple Message Queue (formerly MNS)

    EventBridge

    • AliyunEventBridgeReadOnlyAccess : autorisations en lecture seule sur les ressources EventBridge.

    • AliyunEventBridgeFullAccess : autorisations permettant de gérer les ressources EventBridge.

    Remarque

    Pour accéder à EventBridge en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunEventBridgeReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    ApsaraMQ for RocketMQ

    • AliyunMQReadOnlyAccess : autorisations en lecture seule sur les ressources ApsaraMQ for RocketMQ.

    • AliyunMQFullAccess : autorisations permettant de gérer les ressources ApsaraMQ for RocketMQ.

    Remarque

    Pour accéder à ApsaraMQ for RocketMQ en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunMQReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    Container Registry

    • AliyunContainerRegistryReadOnlyAccess : autorisations en lecture seule sur les ressources Container Registry.

    • AliyunContainerRegistryFullAccess : autorisations permettant de gérer les ressources Container Registry.

    Remarque

    Pour accéder à Container Registry en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunContainerRegistryReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    File Storage NAS (NAS)

    • AliyunNASReadOnlyAccess : autorisations en lecture seule sur les ressources NAS.

    • AliyunNASFullAccess : autorisations permettant de gérer les ressources NAS.

    Remarque

    Pour accéder à NAS en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunNASReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    ApsaraDB RDS

    • AliyunRDSReadOnlyAccess : autorisations en lecture seule sur les ressources ApsaraDB RDS.

    • AliyunRDSFullAccess : autorisations permettant de gérer les ressources ApsaraDB RDS.

    Remarque

    Pour accéder à ApsaraDB RDS en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunRDSReadOnlyAccess à l'utilisateur RAM, conformément au principe du moindre privilège.

    Alibaba Cloud DevOps

    • AliyunRDCReadOnlyAccess : autorisations en lecture seule sur les ressources Apsara DevOps RDC.

    • AliyunRDCFullAccess : autorisations permettant de gérer les ressources Apsara DevOps RDC.

    Remarque

    Pour accéder à ApsaraDB RDS en tant qu'utilisateur RAM, il suffit d'attacher la politique AliyunRDCReadOnlyAccesss à l'utilisateur RAM, conformément au principe du moindre privilège.

Important

Si vous ne parvenez pas à mettre à jour les déclencheurs en tant qu'utilisateur RAM après avoir attaché une politique liée aux déclencheurs, telle que AliyunOSSFullAccess, à l'aide d'un compte Alibaba Cloud, vous devez attacher la politique personnalisée suivante à l'utilisateur RAM via le compte Alibaba Cloud. Une fois cette politique personnalisée attachée, vous pourrez mettre à jour les déclencheurs d'événements OSS en tant qu'utilisateur RAM.

 {
        "Statement": [
            {
                "Action": [
                    "ram:PassRole"
                ],
                "Effect": "Allow",
                "Resource": "*"
            }
        ],
        "Version": "1"
    }

Stratégies personnalisées

Outre les stratégies système, Function Compute prend en charge des stratégies personnalisées qui vous permettent d'accorder des autorisations granulaires aux utilisateurs RAM. Pour plus d'informations sur les stratégies, consultez la rubrique Éléments de stratégie d'autorisation.

Action

Resource

Description

fc:GetAsyncTask

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/{taskId}

Tâches asynchrones

fc:StopAsyncTask

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/{taskId}

fc:ListAsyncTasks

acs:fc:{region}:{uid}:functions/{functionName}/async-tasks/*

fc:ListFunctionAsyncInvokeConfigs

acs:fc:{region}:{uid}:async-invoke-configs/* acs:fc:{region}:{uid}:functions/{functionName}

Configurations d'appel asynchrone

fc:ListConcurrencyConfigs

acs:fc:{region}:{uid}:concurrency-configs/* acs:fc:{region}:{uid}:functions/{functionName}

Configurations de concurrence

fc:ListCustomDomains

acs:fc:{region}:{uid}:custom-domains/*

Tous les noms de domaine personnalisés

fc:GetCustomDomain

acs:fc:{region}:{uid}:custom-domains/{domainName}

Noms de domaine personnalisés spécifiés

fc:DeleteCustomDomain

fc:UpdateCustomDomain

fc:CreateCustomDomain

fc:ListFunctions

acs:fc:{region}:{uid}:functions/*

Toutes les ressources de fonction

fc:DeleteConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:PutConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:DeleteFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:UpdateFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:CreateFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:GetConcurrencyConfig

acs:fc:{region}:{uid}:functions/{functionName}

fc:GetFunction

acs:fc:{region}:{uid}:functions/{functionName}

fc:ListAliases

acs:fc:{region}:{uid}:functions/{functionName}/aliases/*

Tous les alias

fc:CreateAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

Alias spécifiés

fc:UpdateAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:GetAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:DeleteAlias

acs:fc:{region}:{uid}:functions/{functionName}/aliases/{aliasName}

fc:ListInstances

acs:fc:{region}:{uid}:functions/{functionName}/instances/*

Informations sur l'instance

fc:ListTriggers

acs:fc:{region}:{uid}:functions/{functionName}/triggers/*

Toutes les ressources de déclencheur sous la fonction spécifiée

fc:CreateTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

Ressources de déclencheur spécifiques sous la fonction spécifiée

fc:UpdateTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:GetTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:DeleteTrigger

acs:fc:{region}:{uid}:functions/{functionName}/triggers/{triggerName}

fc:PublishFunctionVersion

acs:fc:{region}:{uid}:functions/{functionName}/versions

Toutes les versions

fc:ListFunctionVersions

acs:fc:{region}:{uid}:functions/{functionName}/versions/*

fc:DeleteFunctionVersion

acs:fc:{region}:{uid}:functions/{functionName}/versions/{versionId}

Versions spécifiées

fc:ListVpcBindings

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/*

Configurations VPC

fc:CreateVpcBinding

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/*

fc:DeleteVpcBinding

acs:fc:{region}:{uid}:functions/{functionName}/vpc-bindings/{vpcId}

fc:GetFunctionCode

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

Tout le code de fonction

fc:GetFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

Toutes les ressources de fonction

fc:DeleteProvisionConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:PutProvisionConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:InvokeFunction

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:PutFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:GetProvisionConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:DeleteFunctionAsyncInvokeConfig

acs:fc:{region}:{uid}:functions/{functionName} acs:fc:{region}:{uid}:functions/{functionName}/{qualifier}

fc:GetLayerVersionByArn

acs:fc:{region}:{uid}:layerarn/{arn}

Tous les layers

fc:ListLayers

acs:fc:{region}:{uid}:layers/*

fc:PutLayerACL

acs:fc:{region}:{uid}:layers/{layerName}

fc:ListLayerVersions

acs:fc:{region}:{uid}:layers/{layerName}/versions/*

fc:CreateLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/*

fc:DeleteLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/{version}

fc:GetLayerVersion

acs:fc:{region}:{uid}:layers/{layerName}/versions/{version}

fc:ListProvisionConfigs

acs:fc:{region}:{uid}:provision-configs/* acs:fc:{region}:{uid}:functions/{functionName}

Configurations d'instance provisionnée

Vous pouvez utiliser la stratégie personnalisée précédente pour configurer les autorisations permettant d'appeler la fonction demo dans la région Chine (Hangzhou). L'extrait de code suivant présente les détails :

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "fc:InvokeFunction"
            ],
            "Resource": "acs:fc:cn-hangzhou:*:functions/demo",
            "Effect": "Allow"
        }
    ]
}

Exemples de politiques

Politique personnalisée pour créer et interroger des services, ainsi que pour créer et appeler des fonctions

{
	"Version": "1",
	"Statement": [{
			"Action": [
				"fc:CreateFunction",
				"fc:GetFunction",
				"fc:InvokeFunction"
			],
			"Resource": "*",
			"Effect": "Allow"
		},
		{
			"Action": [
				"ram:PassRole"
			],
			"Effect": "Allow",
			"Resource": "*"
		}
	]
}

Politique personnalisée pour accéder aux journaux

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "log:ListProject",
                "log:ListLogStore"
            ],
            "Resource": "acs:log:*:*:project/*"
        }
    ]
}

Politique personnalisée pour accéder aux déclencheurs d'événements OSS

{
  "Statement": [
    {
      "Action": [
        "oss:ListBucket",
        "oss:GetBucketEventNotification",
        "oss:PutBucketEventNotification",
        "oss:DeleteBucketEventNotification"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

Politique personnalisée pour interdire la création de services pouvant accéder à Internet

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableServiceInternetAccess": "true"
        }
      }
    },
    {
      "Action": "fc:CreateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "fc:EnableServiceInternetAccess": "false"
        }
      }
    }
  ]
}

Politique personnalisée pour interdire la création de services non autorisés à accéder à Simple Log Service

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableServiceSLSLogging": "false"
        }
      }
    },
    {
      "Action": "fc:CreateFunction",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "fc:EnableServiceSLSLogging": "true"
        }
      }
    }
  ]
}

Politique personnalisée pour interdire la création de déclencheurs accessibles via Internet

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerInternet": "true"
        }
      }
    },
    {
      "Action": "fc:CreateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerInternet": "true"
        }
      }
    }
  ]
}

Cette politique empêche les utilisateurs de définir le paramètre disableURLInternet sur false lors des opérations CreateTrigger et UpdateTrigger. La valeur de ce paramètre ne peut être définie que sur true, ce qui indique que les noms de domaine publics par défaut ne sont pas pris en charge. Cette restriction s'applique uniquement aux déclencheurs HTTP. Pour plus d'informations, consultez la rubrique HTTPTriggerConfig.

Dans ce cas, l'erreur 403 AccessDenied est renvoyée si vous définissez disableURLInternet=false. L'exemple de code suivant illustre ce scénario :

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateTrigger' on resource 'acs:fc:xx:xx:functions/xx/triggers/xx' with condition '[fc:EnableHTTPTriggerInternet=true]'"
}

Politique personnalisée pour interdire la création de déclencheurs accessibles en mode anonyme

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:UpdateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerAnonymous": "true"
        }
      }
    },
    {
      "Action": "fc:CreateTrigger",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableHTTPTriggerAnonymous": "true"
        }
      }
    }
  ]
}

Cette politique interdit aux utilisateurs de définir le paramètre authType sur anonymous lors des opérations CreateTrigger et UpdateTrigger. La valeur de ce paramètre ne peut être définie que sur function, ce qui spécifie qu'une authentification est requise. Cette restriction s'applique uniquement aux déclencheurs HTTP. Pour plus d'informations, consultez la rubrique HTTPTriggerConfig.

Dans ce cas, l'erreur 403 AccessDenied est renvoyée si vous définissez authType=anonymous. L'exemple de code suivant illustre ce scénario :

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateTrigger' on resource 'acs:fc:xx:xx:functions/xx/triggers/xx' with condition '[fc:EnableHTTPTriggerAnonymous=true]'"
}

Politique personnalisée pour interdire la création de noms de domaine personnalisés autorisant les requêtes HTTP

{
  "Version": "1",
  "Statement": [
    {
      "Action": "fc:CreateCustomDomain",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableCustomDomainHTTP": "true"
        }
      }
    },
    {
      "Action": "fc:UpdateCustomDomain",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "fc:EnableCustomDomainHTTP": "true"
        }
      }
    }
  ]
}

Cette politique empêche les utilisateurs de définir le paramètre protocol sur HTTP ou HTTP,HTTPS lors des opérations CreateCustomDomain et UpdateCustomDomain. Vous ne pouvez définir ce paramètre que sur HTTPS.

L'erreur 403 AccessDenied est renvoyée si vous tentez d'activer HTTP pour un nom de domaine personnalisé. L'exemple de code suivant illustre ce scénario :

{
  "statusCode":403,
  "Code":"AccessDenied",
  "Message":"the caller is not authorized to perform 'fc:CreateCustomDomain' on resource 'acs:fc:xxx:xxx:custom-domains/xxx' with condition '[fc:EnableCustomDomainHTTP=true]'"
}