Fonctionnalités AWS CLI et IAM
L'AWS Command Line Interface (CLI) est l'outil standard pour gérer le stockage objet compatible S3. Ceph S3 prend en charge un large éventail d'appels API AWS S3 et IAM (Identity and Access Management).
Ce document vous guide dans l'installation de l'AWS CLI et montre comment utiliser les fonctionnalités IAM de Ceph pour gérer des autorisations d'accès fines pour les utilisateurs et les applications.
1. Installation et préparation de l'AWS CLI
Comme les paquets système et les modules Python des distributions Linux récentes entrent souvent en conflit, nous recommandons d'installer dans un environnement Python virtuel (venv). Cela évite les conflits avec le système d'exploitation.
# Install system packages for Python pip and venv (example for Debian/Ubuntu)
sudo apt update
sudo apt install python3-pip python3-venv
# Create virtual environment (e.g., in the home directory)
python3 -m venv ~/ceph.venv
# Activate virtual environment
source ~/ceph.venv/bin/activate
# Install or upgrade pip, wheel, and the required AWS/Ceph tools
pip install -U pip wheel
pip install -U awscli s3cmd boto3
[!IMPORTANT] Remarque : Vous devez activer l'environnement virtuel dans chaque nouvelle session de terminal (
source ~/ceph.venv/bin/activate) avant d'utiliser les commandesaws.
2. Configuration de l'AWS CLI pour Ceph S3
Comme nous n'utilisons pas le réseau natif d'AWS, nous devons indiquer au CLI nos endpoints Ceph S3 spécifiques. Nous recommandons d'utiliser des variables d'environnement.
Remplacez xxx par votre Access Key et votre Secret Key, que vous avez générées dans le Cloud Services Portal.
# Credentials
export AWS_ACCESS_KEY_ID="xxx"
export AWS_SECRET_ACCESS_KEY="xxx"
# Ceph-specific fixes for checksums
export AWS_REQUEST_CHECKSUM_CALCULATION=when_required
export AWS_RESPONSE_CHECKSUM_VALIDATION=when_required
# Define S3 endpoint and region (example ch-zh1)
export AWS_ENDPOINT_URL=https://s3.ewstorage.ch
export AWS_DEFAULT_REGION=ch-zh1
# Or for Region2:
export AWS_ENDPOINT_URL=https://s3.ch-ge1.ewstorage.ch
export AWS_DEFAULT_REGION=ch-ge1
# Test: List your own buckets
aws s3 ls
3. IAM (Identity and Access Management) dans Ceph
Ceph prend en charge les fonctions API IAM essentielles d'AWS. Cela vous permet d'attribuer des autorisations d'accès fines. Au lieu d'accorder un accès complet (avec vos clés principales) à chaque système, vous pouvez créer des « IAM Users » dédiés pour des applications spécifiques (par exemple des scripts de sauvegarde, des applications web) et limiter leurs autorisations via une politique utilisateur.
Pour restreindre l'accès à des buckets individuels pour tous les identifiants d'un projet, consultez Politiques de bucket et Access Fencing.
3.1 Créer un nouvel utilisateur IAM
Créez un nouvel utilisateur (par exemple app-backup-user). Cet utilisateur existe logiquement sous votre compte principal.
aws iam create-user \
--user-name app-backup-user
3.2 Générer des clés d'accès pour l'utilisateur IAM
Pour que le nouvel utilisateur puisse s'authentifier, nous devons lui créer des clés d'accès :
aws iam create-access-key \
--user-name app-backup-user
[!NOTE] Notez les valeurs affichées pour
AccessKeyIdetSecretAccessKey. La Secret Key ne s'affichera en entier qu'une seule fois !
3.3 Créer et attribuer une politique utilisateur
Par défaut, le nouvel utilisateur IAM n'a aucune autorisation. Nous devons lui accorder explicitement des droits. Contrairement à une politique de bucket (qui est attachée au bucket), une politique utilisateur est attachée directement à l'utilisateur.
Créons un fichier policy.json. Cette politique accorde à l'utilisateur un accès S3 complet, mais uniquement à un bucket spécifique nommé mein-backup-bucket.
cat <<EOF > policy.json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::mein-backup-bucket",
"arn:aws:s3:::mein-backup-bucket/*"
]
}
]
}
EOF
Attribuons maintenant cette politique à l'utilisateur :
aws iam put-user-policy \
--user-name app-backup-user \
--policy-name BackupBucketAccess \
--policy-document file://policy.json
3.4 Vérifier les politiques IAM
Vous pouvez vérifier les autorisations attribuées à tout moment :
# List all policies for a user
aws iam list-user-policies \
--user-name app-backup-user
# View a specific policy
aws iam get-user-policy \
--user-name app-backup-user \
--policy-name BackupBucketAccess
Avec ces fonctionnalités IAM, vous pouvez appliquer parfaitement le principe du moindre privilège dans votre stockage Ceph S3.