Configurez une stratégie d'instance pour protéger une instance Tablestore en restreignant l'accès selon des conditions telles que l'adresse IP source, le réseau source et la version TLS.
Fonctionnement
Une stratégie d'instance est une politique d'autorisation basée sur les ressources, attachée à une instance. Elle définit quels principaux peuvent effectuer quelles actions sur quelles ressources, et sous quelles conditions. Pour connaître la syntaxe et les éléments des stratégies, consultez la rubrique Syntaxe et éléments des politiques d'autorisation.
Lorsque Tablestore évalue les stratégies attachées, le refus explicite est prioritaire : toute règle Deny correspondante bloque la requête, indépendamment des règles Allow éventuelles.
Méthodes de configuration
Console
Connectez-vous à la console Tablestore, puis changez de région en haut de la page.
Cliquez sur le nom de l'instance cible ou sur Instance Management, puis sélectionnez l'onglet Security Policy.
-
Cliquez sur Authorize. Dans l'onglet Visualized Policy, définissez le paramètre Effect sur Allow ou Deny et configurez la Condition de la stratégie.
RemarquePour afficher la stratégie sous forme de script JSON, basculez vers l'onglet Script-based Policy.
Paramètre
Description
Condition Key
La clé de condition. Valeurs possibles :
-
acs:SourceVpc: Restreint l'accès du client en fonction du VPC source. -
ots:TLSVersion: Restreint l'accès du client en fonction de la version TLS utilisée par la source. -
acs:SourceIp: Restreint l'accès du client en fonction de l'adresse IP source. -
ots:AccessId: Restreint l'accès du client en fonction de l'ID AccessKey (AK) de l'utilisateur demandeur. -
acs:SecureTransport: Restreint l'accès du client en fonction de l'utilisation ou non du protocole HTTPS pour la requête.
ImportantLa clé de condition
acs:SourceIpcorrespond uniquement à l'adresse IP source de la requête, sans distinguer le trafic public du trafic interne au VPC. Si vous utilisez uniquementacs:SourceIppour restreindre l'accès, les requêtes provenant d'autres VPC qui utilisent par hasard la même plage d'adresses IP sont également autorisées, ce qui crée un risque d'accès non autorisé. Associez toujoursacs:SourceIpàacs:SourceVpcpour rendre l'origine réseau explicite.Operator
L'opérateur appliqué à la clé de condition. Pour plus d'informations, consultez la rubrique Opérateurs de condition.
Condition Value
La valeur correspondant à la Condition Key sélectionnée.
-
acs:SourceVpc: Saisissez un ID VPC valide. Pour n'autoriser que l'accès Internet, saisissezvpc-*avec l'opérateurStringNotLike.Pour saisir plusieurs valeurs, placez un ID VPC par ligne.
-
ots:TLSVersion: Sélectionnez une version TLS. Les valeurs valides sont TLSv1, TLSv1.1, TLSv1.2 et TLSv1.3. -
acs:SourceIp: Saisissez une adresse IP ou un bloc CIDR.Pour saisir plusieurs valeurs, placez une adresse IP ou un bloc CIDR par ligne.
-
ots:AccessId: Saisissez l'ID AccessKey (AK) de l'utilisateur.Pour saisir plusieurs valeurs, placez un ID AccessKey par ligne.
-
acs:SecureTransport: Définissez la valeur surtruepour n'autoriser que l'accès HTTPS, ou surfalsepour n'autoriser que l'accès HTTP.
-
Cliquez sur Yes.
Une fois la stratégie attachée, consultez la stratégie complète dans l'onglet Script-based Policy.
API
Utilisez les opérations UpdateInstancePolicy et DeleteInstancePolicy pour gérer la stratégie d'instance.
Scénarios courants et exemples de stratégies
Les exemples suivants présentent les combinaisons de conditions et les stratégies JSON pour des scénarios typiques de contrôle d'accès.
Autoriser l'accès uniquement depuis des adresses IP publiques spécifiques
Restreignez l'accès à des adresses IP publiques spécifiques en associant acs:SourceIp à acs:SourceVpc afin que l'origine réseau soit sans ambiguïté. Pour faire correspondre le trafic Internet public, définissez acs:SourceVpc sur vpc-* avec l'opérateur StringNotLike.
Définissez le paramètre Effect sur Allow et ajoutez les deux conditions suivantes :
|
Condition Key |
Operator |
Condition Value |
|
|
|
L'adresse IP publique ou le bloc CIDR autorisé à accéder à l'instance. |
|
|
|
|
L'instruction Allow autorise les requêtes provenant de l'adresse IP publique 203.0.113.5. La première instruction Deny bloque toutes les autres adresses IP publiques, et la seconde bloque toutes les requêtes provenant de VPC. Par conséquent, seules les requêtes issues de l'adresse IP publique spécifiée peuvent accéder à l'instance myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"NotIpAddress": {
"acs:SourceIp": ["203.0.113.5"]
},
"StringNotLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringLike": {
"acs:SourceVpc": ["vpc-*"]
}
}
}
]
}
Autoriser l'accès uniquement depuis un VPC spécifique
Utilisez cette configuration pour limiter l'instance au trafic provenant d'un VPC nommé spécifique.
Définissez le paramètre Effect sur Allow et ajoutez la condition suivante :
|
Condition Key |
Operator |
Condition Value |
|
|
|
L'ID du VPC autorisé à accéder à l'instance. |
L'instruction Allow autorise les requêtes provenant du VPC vpc-bp1xxxxxxxxxxxxxxxx. L'instruction Deny bloque les requêtes provenant d'autres VPC et d'Internet public. Par conséquent, seules les requêtes issues du VPC spécifié peuvent accéder à l'instance myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
}
]
}
Autoriser l'accès uniquement depuis une plage d'adresses IP spécifique dans un VPC spécifique
Combinez les conditions VPC et plage d'adresses IP pour n'autoriser que le bloc CIDR choisi au sein du VPC sélectionné à atteindre l'instance.
Définissez le paramètre Effect sur Allow et ajoutez les deux conditions suivantes :
|
Condition Key |
Operator |
Condition Value |
|
|
|
Le bloc CIDR autorisé à accéder à l'instance. |
|
|
|
L'ID du VPC, qui restreint la source de la requête à ce VPC. |
L'instruction Allow autorise les requêtes provenant du bloc CIDR 192.168.0.0/16 dans le VPC vpc-bp1xxxxxxxxxxxxxxxx. La première instruction Deny bloque les requêtes provenant d'autres VPC et d'Internet public. La seconde bloque les requêtes provenant de l'extérieur du bloc CIDR spécifié au sein du VPC désigné. Par conséquent, seules les requêtes issues du bloc CIDR spécifié dans le VPC indiqué peuvent accéder à l'instance myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"IpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
},
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"acs:SourceVpc": ["vpc-bp1xxxxxxxxxxxxxxxx"]
},
"NotIpAddress": {
"acs:SourceIp": ["192.168.0.0/16"]
}
}
}
]
}
Restreindre la version TLS pour l'accès à l'instance
Exigez que les clients négocient l'une des versions TLS répertoriées avant de pouvoir atteindre l'instance.
Définissez le paramètre Effect sur Allow et ajoutez la condition suivante :
|
Condition Key |
Operator |
Condition Value |
|
|
|
|
L'instruction Allow autorise les requêtes utilisant TLSv1.2 ou TLSv1.3. L'instruction Deny bloque toutes les autres versions TLS. Par conséquent, seules les requêtes utilisant TLSv1.2 ou TLSv1.3 peuvent accéder à l'instance myinstance.
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
},
{
"Effect": "Deny",
"Action": ["ots:*"],
"Resource": ["acs:ots:*:13791xxxxxxxxxxx:instance/myinstance*"],
"Principal": ["*"],
"Condition": {
"StringNotEquals": {
"ots:TLSVersion": ["TLSv1.2", "TLSv1.3"]
}
}
}
]
}
Limites
La taille totale de toutes les entrées de condition ajoutées à une seule instance ne peut pas dépasser 4 Ko.