Serverless App Engine (SAE) s'appuie sur Alibaba Cloud Resource Access Management (RAM) pour contrôler l'accès aux ressources SAE. Plutôt que de partager les identifiants du compte ou les paires AccessKey entre plusieurs utilisateurs, accordez aux utilisateurs RAM uniquement les autorisations nécessaires afin de réduire l'exposition aux risques de sécurité.
Cette rubrique présente les politiques système disponibles, explique comment créer des politiques personnalisées et fournit des modèles JSON prêts à l'emploi pour les scénarios d'autorisation courants.
Prérequis
Avant de commencer, assurez-vous de disposer :
D'une compréhension de base de la structure et de la syntaxe des politiques RAM. Consultez Structure et syntaxe des politiques et Éléments de base d'une politique
Présentation des politiques RAM
Une politique RAM définit les actions autorisées ou refusées sur certaines ressources, ainsi que les conditions d'application. SAE prend en charge deux types de politiques :
| Type de politique | Gestionnaire | Granularité | Modifiable |
|---|---|---|---|
| Politique système | Alibaba Cloud | Gros grain | Non |
| Politique personnalisée | Vous | Grain fin | Oui |
Politiques système
SAE propose un ensemble de politiques système gérées par Alibaba Cloud. Attachez ces politiques aux utilisateurs RAM via la console RAM.
Lorsqu'un utilisateur RAM se connecte pour la première fois à la console SAE , SAE affiche une boîte de dialogue de bienvenue. Le propriétaire du compte peut alors attacher les politiques requises dans la console RAM.
Les politiques système suivantes sont disponibles :
| Nom de la politique | Fonctionnalités débloquées |
|---|---|
| AliyunSAEFullAccess | Accès complet à SAE. Nécessaire pour gérer les applications. |
| AliyunSLBReadOnlyAccess | Accès en lecture seule à Server Load Balancer (SLB). Requis pour utiliser les fonctionnalités liées à SLB dans SAE. |
| AliyunACMFullAccess | Accès complet à Application Configuration Management (ACM). Requis pour utiliser les fonctionnalités ACM intégrées à SAE. |
| AliyunECSReadOnlyAccess | Accès en lecture seule à Elastic Compute Service (ECS). Nécessaire pour sélectionner un groupe de sécurité existant lors de la création d'une application. |
| AliyunOOSReadOnlyAccess | Accès en lecture seule à Operation Orchestration Service (OOS). Requis pour utiliser la fonctionnalité de démarrage et d'arrêt planifiés afin de gérer les applications par lots. |
| AliyunBSSReadOnlyAccess | Accès en lecture seule à Billing Management. Nécessaire pour afficher les soldes des plans de ressources sur la page Vue d'ensemble de la console SAE. |
| AliyunARMSReadOnlyAccess | Accès en lecture seule à Application Real-Time Monitoring Service (ARMS). Requis pour utiliser la surveillance des applications intégrée à SAE. |
| AliyunRAMReadOnlyAccess | Accès en lecture seule à RAM. Nécessaire pour interroger les autorisations d'un utilisateur RAM et recevoir des invites pour accorder les autorisations manquantes. |
| AliyunCloudMonitorReadOnlyAccess | Accès en lecture seule à CloudMonitor. Requis pour utiliser la surveillance de base intégrée à SAE. |
| AliyunContainerRegistryReadOnlyAccess | Accès en lecture seule à Container Registry. Nécessaire pour sélectionner Container Registry Enterprise Edition lors du déploiement d'applications à l'aide d'images. |
| AliyunALBReadOnlyAccess | Accès en lecture seule à Application Load Balancer (ALB). |
| AliyunYundunCertReadOnlyAccess | Accès en lecture seule à Certificate Management Service. |
| AliyunEventBridgeReadOnlyAccess | Accès en lecture seule à EventBridge. Requis pour créer et mettre à jour des tâches. |
La politique AliyunSAEFullAccess accorde des autorisations complètes sur toutes les ressources SAE. Pour un contrôle plus granulaire au niveau du namespace ou de l'application, ou pour des autorisations sur les services associés, utilisez plutôt une politique personnalisée.
Politiques personnalisées
Si les politiques système ne répondent pas à vos besoins, créez une politique personnalisée afin de définir des autorisations précises au niveau du namespace ou de l'application.
L'Assistant d'autorisation SAE vous permet de configurer visuellement les autorisations et de générer des instructions de politique sans rédiger manuellement du code JSON. Il vous aide également à créer et à attacher des politiques personnalisées aux utilisateurs RAM directement depuis la console RAM.
Règles d'autorisation
Format ARN des ressources
Le type de ressource SAE que vous pouvez autoriser est application. Le format ARN est le suivant :
acs:sae:${regionid}:${accountid}:application/${namespaceid}/${appid}
| Paramètre | Description |
|---|---|
${regionid} |
ID de la région (par exemple, cn-shanghai). Vous pouvez utiliser * à la place. |
${accountid} |
ID du compte Alibaba Cloud. Vous pouvez utiliser * à la place. |
${namespaceid} |
ID du namespace. Le namespace par défaut possède un ID vide, échappé sous la forme _default dans les ARN. Les ID de namespace ne peuvent contenir que des lettres minuscules ou des chiffres. |
${appid} |
ID de l'application. Vous pouvez utiliser * à la place. |
Exemples d'ARN
Les exemples suivants utilisent la région Chine (Shanghai) (cn-shanghai).
Une application spécifique dans le namespace test :
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****
Toutes les applications du namespace par défaut :
acs:sae:cn-shanghai:*:application/_default/*
Exemples de politiques
Tous les exemples utilisent la région Chine (Shanghai). Adaptez l'ID de la région, les ID des namespaces et les ID des applications à votre environnement.
Scénario 1 : Accorder des autorisations au niveau du namespace
Objectif : Accorder à un utilisateur RAM un accès en lecture sur l'ensemble de SAE et un accès en écriture complet à des namespaces spécifiques et à leurs applications.
Dans cet exemple, l'utilisateur RAM est autorisé à gérer les ressources liées au namespace par défaut, au namespace dont l'ID est test, ainsi qu'aux applications contenues dans ces namespaces.
| Ressource | Actions | Effet |
|---|---|---|
acs:sae:cn-shanghai:*:* |
sae:Query*, sae:List*, sae:Describe*, sae:*Ingress*, sae:*ChangeOrder*, sae:*Pipeline* |
Allow |
acs:sae:cn-shanghai:*:application/test/* |
sae:* |
Allow |
Cette politique accorde un accès en écriture complet à l'intégralité du namespacetest, y compris à toutes les applications qu'il contient. L'instruction en lecture seule de la première ligne couvre toutes les ressources de la région, mais n'accorde pas d'accès en écriture en dehors du namespacetest. Pour accorder également un accès en écriture au namespace par défaut, ajoutez une deuxième entrée de ressource pouracs:sae:cn-shanghai:*:application/_default/*.
{
"Version": "1",
"Statement": [
{
"Action": [
"sae:Query*",
"sae:List*",
"sae:Describe*",
"sae:*Ingress*",
"sae:*ChangeOrder*",
"sae:*Pipeline*"
],
"Resource": "acs:sae:cn-shanghai:*:*",
"Effect": "Allow"
},
{
"Action": [
"sae:*"
],
"Resource": [
"acs:sae:cn-shanghai:*:application/test/*"
],
"Effect": "Allow"
}
]
}
Scénario 2 : Accorder des autorisations au niveau de l'application
Objectif : Accorder à un utilisateur RAM un accès en lecture sur l'ensemble de SAE et un accès en écriture complet uniquement à des applications spécifiques.
Dans cet exemple, l'utilisateur RAM peut gérer deux applications spécifiques :
| Application | Namespace | ID de l'application |
|---|---|---|
| Application 1 | test | 0c815215-46a1-46a2-ba1e-102a740**** |
| Application 2 | default | e468a92b-1529-4d20-8ab1-9d1595dc**** |
| Ressource | Actions | Effet |
|---|---|---|
acs:sae:cn-shanghai:*:* |
sae:Query*, sae:List*, sae:Describe*, sae:*Ingress*, sae:*ChangeOrder*, sae:*Pipeline* |
Allow |
acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740**** |
sae:* |
Allow |
acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc**** |
sae:* |
Allow |
Cette politique restreint l'accès en écriture aux deux applications nommées uniquement. L'utilisateur RAM ne peut pas créer, mettre à jour ni supprimer d'autres applications dans ces namespaces, même si la première instruction accorde un accès en lecture sur toute la région.
{
"Version": "1",
"Statement": [
{
"Action": [
"sae:Query*",
"sae:List*",
"sae:Describe*",
"sae:*Ingress*",
"sae:*ChangeOrder*",
"sae:*Pipeline*"
],
"Resource": "acs:sae:cn-shanghai:*:*",
"Effect": "Allow"
},
{
"Action": [
"sae:*"
],
"Resource": [
"acs:sae:cn-shanghai:*:application/test/0c815215-46a1-46a2-ba1e-0102a740****",
"acs:sae:cn-shanghai:*:application/_default/e468a92b-1529-4d20-8ab1-9d1595dc****"
],
"Effect": "Allow"
}
]
}
Scénario 3 : Accorder l'accès aux services Alibaba Cloud associés
Les applications SAE doivent souvent appeler les API d'autres services Alibaba Cloud au moment de l'exécution, par exemple pour accéder aux équilibreurs de charge, aux instances de calcul ou aux données de surveillance. Attachez les politiques système correspondantes à l'utilisateur RAM pour chaque service nécessaire.
Par exemple, accordez à l'utilisateur RAM un accès en lecture seule à ECS (AliyunECSReadOnlyAccess), à SLB (AliyunSLBReadOnlyAccess) et à ARMS (AliyunARMSReadOnlyAccess).
N'attachez que les politiques relatives aux services effectivement utilisés par votre application.