Tous les produits
Search
Centre de documentation

Function Compute:Accorder des permissions sur différents groupes de fonctions à divers utilisateurs RAM

Dernière mise à jour :Aug 12, 2026

Function Compute prend en charge le contrôle d'accès basé sur les attributs (ABAC) au moyen de tags. En associant des politiques limitées par tag à des groupes d'utilisateurs Resource Access Management (RAM), vous pouvez isoler la gestion des fonctions entre les équipes.

Fonctionnement

Le contrôle d'accès basé sur les tags repose sur trois clés de condition de politique RAM qui fonctionnent conjointement pour imposer des limites de tag :

Clé de condition Élément contrôlé
acs:RequestTag/<tag-key> Exige la présence du tag spécifié lorsqu'un utilisateur RAM crée une fonction. La fonction doit être taguée dès sa création.
acs:ResourceTag/<tag-key> Limite toutes les opérations de gestion aux fonctions portant déjà le tag spécifié.
fc:TagResources / fc:UntagResources (Deny) Empêche les utilisateurs RAM d'ajouter ou de supprimer des tags. Sans cette restriction, un utilisateur pourrait modifier les tags d'une fonction afin d'accéder à des ressources situées hors de son périmètre autorisé.

Ces trois éléments forment ensemble un périmètre de permission fermé : les utilisateurs ne peuvent créer que des fonctions taguées, agir uniquement sur les fonctions portant leur tag, et ne peuvent pas modifier les tags pour contourner ces limites.

Cas d'utilisation

Une entreprise gère plusieurs fonctions sous un même compte Alibaba Cloud et doit restreindre chaque équipe aux seules fonctions dont elle est propriétaire :

  • Équipe de développement : peut uniquement consulter et gérer les fonctions taguées pour l'environnement de développement.

  • Équipe d'exploitation et maintenance : peut uniquement consulter et gérer les fonctions taguées pour l'environnement de production.

Le tableau suivant présente le plan de configuration :

Équipe Groupe d'utilisateurs RAM Politique d'accès Tag
Équipe de développement developer FCPolicyForDevTeam team:dev
Équipe d'exploitation et maintenance operator FCPolicyForOpsTeam team:ops

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Important

N'associez pas de politiques à privilèges élevés telles que AliyunFCFullAccess ou AliyunFCReadOnlyAccess aux utilisateurs RAM. Ces politiques contournent les conditions basées sur les tags et permettent à l'utilisateur de voir toutes les fonctions, ce qui compromet l'isolation des permissions offerte par cette configuration.

Les sous-ressources et configurations d'une fonction — telles que les alias, les déclencheurs, les configurations asynchrones, les configurations de concurrence, les instances, les attachements VPC et les tâches asynchrones — héritent des paramètres de contrôle d'accès de la fonction. Seuls les utilisateurs RAM disposant des tags correspondants peuvent les gérer.

Configurer le contrôle d'accès basé sur les tags

Étape 1 : Tagger vos fonctions

Connectez-vous à la console Function Compute avec votre compte Alibaba Cloud. Créez des fonctions et associez-y des tags afin d'identifier l'équipe à laquelle chacune appartient :

  • Associez le tag team:dev aux fonctions destinées à l'équipe de développement.

  • Associez le tag team:ops aux fonctions destinées à l'équipe d'exploitation et maintenance.

Pour obtenir des instructions sur l'association des tags, consultez Configurer les tags.

Étape 2 : Créer des utilisateurs RAM

Connectez-vous à la console RAM avec votre compte Alibaba Cloud et créez deux utilisateurs RAM, un pour chaque équipe. Consultez Créer un utilisateur RAM.

Étape 3 : Créer des groupes d'utilisateurs RAM et ajouter des membres

Créez deux groupes d'utilisateurs nommés developer et operator. Ajoutez les utilisateurs RAM correspondants à chaque groupe. Les utilisateurs RAM héritent automatiquement des permissions de leur groupe.

Consultez Créer un groupe d'utilisateurs RAM et Ajouter un utilisateur RAM à un groupe d'utilisateurs RAM.

Étape 4 : Créer des politiques personnalisées

Connectez-vous à la console RAM avec votre compte Alibaba Cloud et créez une politique personnalisée.

Chaque politique contient quatre instructions qui, ensemble, imposent la limite de tag :

  1. Autoriser toutes les actions FC lorsque le tag team correspond lors de la création de la ressource (acs:RequestTag).

  2. Autoriser toutes les actions FC sur les ressources portant déjà le tag team correspondant (acs:ResourceTag).

  3. Autoriser le listage des tags et la récupération des paramètres du compte (nécessaire au fonctionnement du filtrage par tag dans la console).

  4. Refuser la modification des tags : sans cette règle, un utilisateur pourrait retagger n'importe quelle fonction pour accéder à des ressources hors de son périmètre.

FCPolicyForDevTeam (pour le groupe d'utilisateurs developer) :

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "fc:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:RequestTag/team": [
                        "dev"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "fc:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/team": [
                        "dev"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "fc:ListTaggedResources",
                "tag:ListTagKeys",
                "fc:GetAccountSettings"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "fc:UntagResources",
                "fc:TagResources"
            ],
            "Resource": "*"
        }
    ]
}

FCPolicyForOpsTeam (pour le groupe d'utilisateurs operator) :

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "fc:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:RequestTag/team": [
                        "ops"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "fc:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "acs:ResourceTag/team": [
                        "ops"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "fc:ListTaggedResources",
                "tag:ListTagKeys",
                "fc:GetAccountSettings"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "fc:UntagResources",
                "fc:TagResources"
            ],
            "Resource": "*"
        }
    ]
}

Développer pour afficher les politiques facultatives

Pour éviter les problèmes de permissions lors de l'utilisation d'autres fonctionnalités de Function Compute, ajoutez les instructions facultatives suivantes aux politiques ci-dessus.

{
  "Effect": "Allow",
  "Action": [
    "log:Get*",
    "log:List*",
    "log:Query*",
    "log:CreateProject",
    "log:CreateLogStore",
    "log:CreateIndex"
  ],
  "Resource": "*"
},
{
  "Effect": "Allow",
  "Action": [
    "fc:GetLayerVersionByArn",
    "fc:ListLayers",
    "fc:PutLayerACL",
    "fc:ListLayerVersions",
    "fc:CreateLayerVersion",
    "fc:DeleteLayerVersion",
    "fc:GetLayerVersion"
  ],
  "Resource": "*"
},
{
  "Effect": "Allow",
  "Action": [
    "fc:ListCustomDomains",
    "fc:GetCustomDomain",
    "fc:DeleteCustomDomain",
    "fc:UpdateCustomDomain",
    "fc:CreateCustomDomain"
  ],
  "Resource": "*"
},
{
  "Effect": "Allow",
  "Action": "ram:ListRoles",
  "Resource": "*"
}
Politique Objectif
log:Get*, log:List*, log:Query*, log:CreateProject, log:CreateLogStore, log:CreateIndex Permet à Function Compute de créer et de lire des journaux.
Actions sur les couches (fc:GetLayerVersionByArn, fc:ListLayers, etc.) Autorise l'utilisation des fonctionnalités liées aux couches.
Actions sur les domaines personnalisés (fc:ListCustomDomains, fc:GetCustomDomain, etc.) Autorise l'utilisation des fonctionnalités de domaine personnalisé.
ram:ListRoles Permet d'interroger la liste des rôles lors de la configuration d'un rôle de fonction.
Pour configurer et utiliser des produits tels que OSS, NAS et VPC dans Function Compute, accordez également les permissions requises pour ces produits. Consultez Politiques d'accès et exemples .

Étape 5 : Associer des politiques aux groupes d'utilisateurs

  1. Associez FCPolicyForDevTeam au groupe d'utilisateurs developer et FCPolicyForOpsTeam au groupe d'utilisateurs operator.

  2. Associez les politiques système AliyunRAMFullAccess et AliyunECSFullAccess aux deux groupes d'utilisateurs. Celles-ci permettent aux utilisateurs RAM des groupes de créer des fonctions avec les tags spécifiés, de créer des utilisateurs et des groupes RAM, ainsi que de créer et d'associer des politiques d'accès.

Consultez Accorder des permissions à un groupe d'utilisateurs RAM.

La figure suivante présente les politiques recommandées pour le groupe d'utilisateurs developer.

image

Étape 6 : Vérifier la configuration

  1. Connectez-vous à la console Function Compute en tant que chaque utilisateur RAM. Consultez Se connecter à la console de gestion Alibaba Cloud en tant qu'utilisateur RAM.

  2. Dans le volet de navigation de gauche, choisissez Function Management > Functions.

  3. Dans la barre de menu supérieure, sélectionnez la région où se trouvent les fonctions taguées.

  4. Sur la page Functions, cliquez sur Tag Filtering et filtrez par Tag Key team et la Tag Value correspondante (dev ou ops).

Un utilisateur RAM ne peut consulter et gérer des fonctions qu'en filtrant par un tag inclus dans les politiques accordées à son groupe d'utilisateurs. Sans filtrage par tag, aucune fonction n'est visible.

Sélectionnez la même région que celle des fonctions lors de l'exécution des opérations. L'accès interrégional ne fonctionne pas avec cette configuration.

La figure suivante montre un utilisateur RAM développeur filtrant les fonctions autorisées par le tag team:dev.

image

Étapes suivantes