Utilisez une politique personnalisée pour répondre à des exigences spécifiques de contrôle d'accès. La console RAM vous permet de créer une politique personnalisée via l'éditeur visuel ou par modification de script. Cette rubrique décrit les concepts de base, les cas d'utilisation, la procédure, la syntaxe et des exemples de création d'une politique personnalisée.
Cas d'utilisation
Les politiques système fournissent des autorisations à grain grossier. Si vous avez besoin d'un contrôle d'accès à grain fin, créez une politique personnalisée.
Par exemple, vous pouvez créer une politique personnalisée pour accorder à un utilisateur RAM l'autorisation de consulter uniquement les paramètres de snapshot.
Procédure
Les exemples suivants montrent comment créer une politique personnalisée.
Exemple 1 : Consulter les paramètres de snapshot
Pour accorder à un utilisateur RAM l'autorisation de consulter uniquement les paramètres de snapshot, procédez comme suit :
Accédez à la page Create Policy. Pour Service, sélectionnez Media Services > ApsaraVideo Live.
Développez la liste read action. Dans la zone de recherche, saisissez DescribeLiveSnapshotConfig, puis sélectionnez-le dans les résultats.
Cliquez sur OK.
Saisissez un nom de politique et cliquez sur OK.
Créez un utilisateur RAM et attachez-lui la nouvelle politique. Pour plus d'informations, consultez la rubrique Create a RAM user and grant permissions.
Une fois ces étapes terminées, l'utilisateur RAM peut appeler l'opération DescribeLiveSnapshotConfig et recevoir les données correctes. Toute tentative d'appel d'autres opérations renvoie une erreur d'autorisation.
Exemple 2 : Consulter les paramètres de snapshot par IP
L'exemple 1 accorde l'autorisation d'appeler l'opération DescribeLiveSnapshotConfig. Pour ajouter un contrôle plus granulaire, tel que la restriction d'accès par adresse IP, procédez comme suit :
Accédez à la page Policies et recherchez la politique que vous avez créée dans l'exemple 1.
Cliquez sur le nom de la politique pour ouvrir la page des détails de la politique.
Cliquez sur Modify Policy pour ouvrir la page de modification et sélectionnez l'onglet Visual editor. La page de modification indique que le type de politique est custom policy et que la version actuelle est v2. L'onglet policy document affiche le contenu JSON de la politique, qui possède une valeur Effect définie sur Allow.
Dans la section Condition, cliquez sur Add condition. Définissez Key sur acs:SourceIp, Operator sur IpAddress et Value sur l'IP Address souhaitée.
Cliquez sur OK, puis cliquez à nouveau sur OK pour enregistrer les modifications.
Une fois ces étapes terminées, l'opération ne peut aboutir que si la requête est envoyée depuis l'adresse IP spécifiée. Sinon, la requête échoue avec une erreur d'autorisation.
Pour plus d'informations sur la création d'une politique personnalisée, consultez la rubrique Create a custom policy.
Syntaxe
La politique est décrite au format JSON sur la page des détails de la politique, sous l'onglet policy document. Pour l'exemple 2, le document de politique est le suivant :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1"
]
}
}
}
]
}
Les éléments du document de politique sont décrits ci-dessous :
-
Version
L'élément Version définit la version de la politique. La valeur doit être 1.
-
Statement
Une politique se compose d'un ou plusieurs blocs Statement. Chaque statement définit des autorisations et inclut des éléments tels que Action, Effect, Resource et Condition. Lorsqu'une requête est effectuée, le système évalue chaque statement. Un effet Deny prévaut toujours sur un effet Allow. La requête est autorisée uniquement si elle correspond à un ou plusieurs statements Allow et à aucun statement Deny.
-
Effect
Définit l'effet du statement, qui peut être Allow ou Deny.
-
Action
Spécifie les opérations API pour l'autorisation. Les actions pour ApsaraVideo Live utilisent le format
live:API name, par exemplelive:DescribeLiveSnapshotConfig. Séparez plusieurs actions par une virgule. Vous pouvez combiner plusieurs actions pour créer un ensemble d'autorisations.Pour obtenir la liste de toutes les opérations disponibles, consultez la rubrique API reference.
-
Resource
Spécifie la ou les ressources couvertes par la politique. Vous pouvez utiliser le caractère générique (*). Le format est
acs:{ramCode}:{region}:{accountId}:{relative}. Un élément Resource peut contenir une liste de plusieurs ressources. Pour ApsaraVideo Live, les valeurs valides pour ramCode sont live, cdn et live-interaction. Le champ region n'est pas pris en charge actuellement et doit être défini sur*. accountId correspond à votre ID de compte. relative spécifie la ressource exacte. Il est souvent défini sur , mais certaines opérations prennent en charge les autorisations au niveau des ressources. Vous pouvez également définir l'ensemble de l'élément Resource sur , comme indiqué dans l'exemple.RemarqueLorsque vous utilisez l'éditeur visuel, le ramCode correspondant est automatiquement sélectionné en fonction de l'opération API.
-
Condition
Spécifie les conditions d'application de la politique. Cet élément est facultatif.
Les conditions suivantes sont prises en charge :
Condition
Description
Value
acs:SourceIp
Spécifie une adresse IP ou un bloc CIDR.
Adresses IP. Le caractère générique (*) est pris en charge.
acs:SecureTransport
Indique si la requête doit utiliser HTTPS.
true ou No
acs:MFAPresent
Indique si l'utilisateur doit être connecté avec une authentification multifacteur (MFA).
true ou false
acs:CurrentTime
Spécifie l'heure à laquelle la requête est reçue par le serveur.
Heure au format ISO 8601. Exemple : 2012-11-11T23:59:59Z.
Pour plus d'informations sur les éléments de base et la syntaxe des politiques, consultez les rubriques Policy elements et Policy structure and syntax.
Modification de script
Une fois que vous maîtrisez la syntaxe des politiques, vous pouvez également modifier les politiques en utilisant la modification de script. Par exemple, pour ajouter l'adresse IP 127.0.0.2 à la politique de l'exemple 2, procédez comme suit :
Accédez à la page Policies et recherchez la politique que vous avez créée dans l'exemple 1.
Cliquez sur le nom de la politique pour ouvrir la page des détails de la politique.
Cliquez sur Modify Policy pour ouvrir la page de modification, puis sélectionnez l'onglet JSON Editor.
Dans le tableau acs:SourceIp, ajoutez l'adresse IP 127.0.0.2.
Cliquez sur OK pour enregistrer les modifications.
Le document de politique mis à jour est le suivant :
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": "live:DescribeLiveSnapshotConfig",
"Resource": "*",
"Condition": {
"IpAddress": {
"acs:SourceIp": [
"127.0.0.1",
"127.0.0.2"
]
}
}
}
]
}
Gestion des versions
Pour revenir à une version antérieure d'une politique, utilisez la gestion des versions. Sur la page des détails de la politique, sélectionnez l'onglet Versions, recherchez la version cible et cliquez sur Set As Default Version.
Une politique peut comporter au maximum cinq versions.
Utilisation avancée
Prenons le scénario métier suivant pour la création d'une politique personnalisée :
Vous souhaitez contrôler les autorisations pour l'opération AddLiveAppSnapshotConfig.
L'opération ne doit être autorisée que sur domainA et domainB.
Pour répondre à ces exigences, vous pouvez contrôler l'accès au niveau des ressources. Procédez comme suit :
Accédez à la page Create Policy. Pour Service, sélectionnez Media Services > ApsaraVideo Live.
Développez la liste write action. Dans la zone de recherche, saisissez AddLiveAppSnapshotConfig, puis sélectionnez-le dans les résultats.
Dans la section Resource, sélectionnez Specified Resources, puis cliquez sur Add resource. Définissez Account sur * et Resource sur domainA. Répétez cette étape pour ajouter domainB.
Cliquez sur OK.
-
Saisissez un nom de politique et cliquez sur OK. Le document de politique est le suivant :
{ "Version": "1", "Statement": [ { "Effect": "Allow", "Action": "live:AddLiveAppSnapshotConfig", "Resource": [ "acs:cdn:*:*:domain/domainA", "acs:cdn:*:*:domain/domainB" ] } ] } Attachez la politique créée à l'utilisateur RAM cible.
Une fois ces étapes terminées, l'utilisateur RAM peut ajouter des paramètres de snapshot uniquement pour domainA et domainB.
Le format du contrôle au niveau des ressources varie selon l'opération API. Nous vous recommandons d'utiliser l'éditeur visuel pour configurer des autorisations à grain fin.