Stockage Objet - Refus d'accès à partir de l'IP source
Vue d'ensemble
Il s'agit ici d'utiliser une condition portant sur l'adresse IP source de la requête pour refuser l'accès à la donnée (compartiment et objet).
La condition est utilisée dans une stratégie de compartiment (bucket policy) et s'applique au compartiment (bucket) et ses objets.
Comportement de l'identification de l'IP source :
- depuis l'internet: il s'agit de l'IP publique à l'origine de la requête (ou qui l'achemine dans le cas d'une organisation)
- depuis l'intérieur du tenant Cloud Director : il s'agit de l'adresse IP externe configurée dans le réglage SNAT permettant l'accès direct au stockage objet
Cas d'usage typique: refuser l'accès depuis l'internet en autorisant uniquement l'accès depuis le tenant Cloud Director.
Cas d'usage avec AWS CLI
AWS CLI (Command Line Interface) est un outil à code source libre permettant de configurer et d'utiliser le stockage objet en passant des commandes dans un interface textuelle (un shell Linux ou la ligne de commande Windows).
Un guide utilisateur de l'outil est disponible sur https://docs.aws.amazon.com/cli/latest/userguide/.
Prérequis: identifier l'adresse IP à utiliser
Afficher le service NAT de votre passerelle (gateway) par défaut dans la configuration réseau.
Consulter la configuration SNAT autorisant l'accès au stockage objet et noter l'adresse IP externe qui s'affiche.
Ajouter une stratégie (policy) de compartiment pour refuser l'accès depuis l'internet
Créer un fichier RefusDaccesHorsTenant.json avec le contenu suivant en modifiant le nom du compartiment et l'adresse IP:
{
"Id": "Policy1729261020318",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1729261013302",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::compartiment",
"arn:aws:s3:::compartiment/*"
],
"Condition": {
"NotIpAddress": {
"aws:SourceIp": "10.94.6.1"
}
},
"Principal": "*"
}
]
}
Appliquer la stratégie au compartiment:
[root@mytest ]# aws --endpoint-url https://s3-region01.cloudavenue.orange-business.com s3api put-bucket-policy --bucket compartiment --policy file://RefusDaccesHorsTenant.json
Vérifier que l'accès au compartiment depuis l'internet est refusé
Sur une machine connectée à l'internet, configurer AWS CLI avec une paire AK/SK valide :
- il est possible de lister les buckets depuis l'internet
- l'accès au bucket et à ses objets est refusé
A noter
- il est possible d'appliquer la stratégie de compartiment (bucket policy) depuis l'interface Cloud Director
- la stratégie est très restrictive et perturbe fortement l'accès au bucket et à ses objets depuis l'interface Cloud Director
- après application de la stratégie, le retour arrière est impossible depuis l'interface Cloud Director (il faut utiliser l'API S3 depuis l'intérieur du tenant)