Utilisez Resource Access Management (RAM) pour accorder à vos employés des autorisations spécifiques sur les ressources API Gateway, telles que les groupes d'API, les API, les plug-ins et les applications.
Ignorez cette rubrique si vous n'avez pas besoin de gérer les autorisations pour les API.
Les utilisateurs RAM peuvent consulter, créer ou supprimer des groupes d'API, des API ou des plug-ins dans API Gateway. Ils ne sont pas propriétaires de ces ressources : le compte Alibaba Cloud peut révoquer leurs autorisations à tout moment.
L'autorisation basée sur les tags permet d'isoler les ressources entre le compte Alibaba Cloud et les utilisateurs RAM.
Avant de gérer les autorisations d'API avec RAM, familiarisez-vous avec RAM et API Gateway. Le centre d'aide Alibaba Cloud propose une documentation sur ces services pour vous aider à les prendre en main.
Aperçu des politiques
Une politique définit les autorisations à l'aide de quatre éléments : Effect, Resource, Action et Condition.
1. Politique système
API Gateway fournit deux politiques système intégrées. Consultez-les sur la page Policies de la console RAM. 
AliyunApiGatewayFullAccess : accorde des autorisations de gestion complètes sur toutes les ressources API Gateway, y compris les groupes d'API, les API, les politiques de limitation du débit et les applications.
AliyunApiGatewayReadOnlyAccess : accorde un accès en lecture seule à toutes les ressources API Gateway, y compris les groupes d'API, les API, les politiques de limitation du débit et les applications. Toutefois, l'utilisateur RAM ne peut pas gérer les ressources.
2. Politique personnalisée
Créez une politique personnalisée pour accorder des autorisations plus fines sur des actions ou des ressources spécifiques. Par exemple, créez une politique personnalisée pour accorder des autorisations de modification sur GetUsers. Pour consulter vos politiques personnalisées, connectez-vous à la console RAM, choisissez Permissions > Policies, puis sélectionnez Custom Policy dans la liste déroulante Policy Type.
Syntaxe des politiques
Une politique utilise une syntaxe spécifique pour définir les autorisations. Attachez une politique à un utilisateur ou à un groupe pour accorder des autorisations sur des ressources spécifiques.
Exemple :
{
"Version": "1",
"Statement": [
{
"Action": "apigateway:Describe*",
"Resource": "*",
"Effect": "Allow"
}
]
}
Cette politique permet à un utilisateur RAM d'interroger toutes les ressources API Gateway.
The Action element describes one or more API operations. The parameters in the Action element must be specified in the following format:
"Action":"<service-name>:<action-name>"
Paramètres :
service-name : le nom du service Alibaba Cloud. Définissez la valeur sur apigateway pour API Gateway.
-
action-name : le nom d'une opération d'API. Prend en charge le caractère générique (*). La section « Syntaxe des ressources » répertorie toutes les opérations disponibles.
Si vous définissez « Action » sur « apigateway:Describe* », l'utilisateur RAM autorisé dispose des autorisations nécessaires pour interroger toutes les ressources dans API Gateway.
Si vous définissez « Action » sur « apigateway:* », l'utilisateur RAM autorisé dispose des autorisations nécessaires pour gérer toutes les ressources dans API Gateway.
Syntaxe des ressources
L'élément Resource spécifie les objets couverts par une instruction. Dans API Gateway, vous pouvez spécifier des groupes d'API, des politiques de limitation du débit et des applications. Utilisez le format suivant :
acs:<service-name>:<region>:<account-id>:<relative-id>
Paramètres :
acs : l'espace de noms du cloud public Alibaba Cloud.
service-name : le nom du service Alibaba Cloud. Définissez la valeur sur apigateway pour API Gateway.
region : la région où la politique s'applique. Utilisez le caractère générique (*) pour toutes les régions.
account-id : l'ID du compte, par exemple 123456789012****. Prend en charge le caractère générique (*).
relative-id : l'identifiant de la ressource, spécifié dans un format semblable à un chemin de fichier.
Un RDPath se présente sous l'un des formats suivants :
acs:apigateway:$regionid:$accountid:apigroup/$groupId
Exemple :
acs:apigateway:*:*:apigroup/cbd157704e624ab58a204fd3e0b5ad79
Le tableau suivant répertorie les opérations d'API disponibles pour le paramètre action-name dans les politiques API Gateway. Pour plus d'informations, consultez la « Référence de l'API API Gateway ».
|
action-name |
Description |
Resource |
|
CreateApiGroup |
Crée un groupe d'API. |
acs:apigateway:$regionid:$accountid:apigroup/* |
|
ModifyApiGroup |
Modifie un groupe d'API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DeleteApiGroup |
Supprime un groupe d'API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DescribeApiGroups |
Interroge les groupes d'API. |
acs:apigateway:$regionid:$accountid:apigroup/* |
|
CreateApi |
Crée une API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DeployApi |
Publie une API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
AbolishApi |
Dépublie une API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DeleteApi |
Supprime une API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DescribeApis |
Interroge les API. |
acs:apigateway:$regionid:$accountid:apigroup/* |
|
CreatePlugin |
Crée un plug-in. |
acs:apigateway:$regionid:$accountid:plugin/* |
|
ModifyPlugin |
Modifie un plug-in. |
acs:apigateway:$regionid:$accountid:plugin/$pluginId |
|
DeletePlugin |
Supprime un plug-in. |
acs:apigateway:$regionid:$accountid:plugin/$pluginId |
|
AttachPlugin |
Lie un plug-in à une API. |
acs:apigateway:$regionid:$accountid:plugin/$pluginId |
|
DetachPlugin |
Détache un plug-in d'une API. |
acs:apigateway:$regionid:$accountid:plugin/$pluginId |
|
DescribePluginsByApi |
Interroge les plug-ins liés à une API. |
acs:apigateway:$regionid:$accountid:plugin/$pluginId |
|
CreateApp |
Crée une application. |
acs:apigateway:$regionid:$accountid:app/* |
|
ModifyApp |
Modifie une application. |
acs:apigateway:$regionid:$accountid:app/$appId |
|
DeleteApp |
Supprime une application. |
acs:apigateway:$regionid:$accountid:app/$appId |
|
DescribeAppAttributes |
Interroge les applications. |
acs:apigateway:$regionid:$accountid:app/$appId |
|
SetApisAuthorities |
Autorise une application à appeler des API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
DescribeAuthorizedApps |
Interroge les applications autorisées à appeler une API. |
acs:apigateway:$regionid:$accountid:apigroup/$groupId |
|
SetVpcAccess |
Crée une autorisation d'accès au réseau privé virtuel (VPC). |
acs:apigateway:$regionid:$accountid:vpcaccess/* |
|
RemoveVpcAccess |
Supprime une autorisation d'accès VPC. |
acs:apigateway:$regionid:$accountid:vpcaccess/* |
|
DescribeVpcAccesses |
Interroge les autorisations d'accès VPC. |
acs:apigateway:$regionid:$accountid:vpcaccess/* |
|
DescribeInstances |
Interroge les instances dédiées. |
acs:apigateway:$regionid:$accountid:instance/$instanceId |
Exemples
Autoriser un utilisateur RAM à interroger toutes les API :
{
"Version": "1",
"Statement": [
{
"Action": "apigateway:Describe*",
"Resource":"acs:apigateway:$regionid:$accountid:apigroup/*",
"Effect": "Allow"
}
]
}
Autoriser un utilisateur RAM à interroger tous les groupes d'API auxquels le tag version:v1 est associé :
{
"Version": "1",
"Statement": [
{
"Action": "apigateway:Describe*",
"Resource":"acs:apigateway:$regionid:$accountid:apigroup/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"apigateway:tag/version": "v1"
}
}
}
]
}
Autoriser un utilisateur RAM à gérer toutes les API d'un groupe d'API :
{
"Version": "1",
"Statement": [
{
"Action": "apigateway:*",
"Resource": [
"acs:apigateway:$regionid:$accountid:apigroup/$groupId",
"acs:apigateway:$regionid:$accountid:app/$appId",
"acs:apigateway:$regionid:$accountid:vpcaccess/*"
],
"Effect": "Allow"
}
]
}
Note: In the preceding examples, you can specify the wildcard character (*) for variables based on your business requirements.