Note :
- Ce tutoriel nécessite l'accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, voir Introduction à l' niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les données d'identification, la location et les compartiments Oracle Cloud Infrastructure. À la fin de votre laboratoire, remplacez ces valeurs par celles propres à votre environnement en nuage.
Migrer les clés secrètes d'AWS Secrets Manager vers les clés secrètes Oracle Cloud Infrastructure Secrets in Vault
Présentation
Avantages lors de la migration des clés secrètes d'Amazon Web Services (AWS) vers Oracle Cloud Infrastructure (OCI) :
- Gestion centralisée des clés secrètes : Si vous utilisez déjà OCI pour l'infrastructure, la conservation de toutes vos clés secrètes dans la chambre forte OCI peut simplifier la gestion en garantissant la cohérence des politiques de sécurité.
- Conformité et sécurité : Le service de chambre forte OCI s'intègre à de nombreux services OCI où un contrôle géré par le client est nécessaire en fournissant le chiffrement avec des clés personnalisées, des contrôles d'accès et des journaux de vérification.
- Considération des coûts : Les options de tarification et de stockage du service de chambre forte pour OCI peuvent être plus rentables que celles d'AWS Secrets Manager, selon votre utilisation.
Types de clé secrète pris en charge dans la chambre forte pour OCI
-
Le service de clés secrètes OCI prend en charge tout type de clé secrète, y compris PASSPHRASE, SSH_KEY et BYTES. Bien qu'il s'agisse de types qui peuvent être générés automatiquement par OCI, lors de la création manuelle de clés secrètes, vous n'êtes pas limité à ces types. Assurez-vous que les types de clé secrète dans AWS correspondent aux formats acceptés par OCI. Pour plus d'informations, voir Gestion des clés secrètes de chambre forte.
-
La chambre forte OCI nécessite que le contenu de clé secrète soit au format base64, ce qui garantit un stockage sécurisé des données binaires.
Objectifs
- Ce tutoriel explique comment migrer des clés secrètes stockées dans AWS Secrets Manager vers OCI Vault à l'aide de Python. Vous apprendrez à extraire des clés secrètes d'AWS et à les stocker en toute sécurité dans les clés secrètes OCI dans la chambre forte avec l'encodage base64.
Préalables
-
Trousses SDK AWS et OCI : Assurez-vous que les bibliothèques
boto3
etoci
sont installées dans votre environnement. Il s'agit des trousses SDK officielles pour AWS et OCI, respectivement. Exécutez la commande suivante pour l'installation.pip install boto3 oci
-
Configuration de la chambre forte OCI :
-
ID chambre forte : Identificateur unique de la chambre forte OCI où la clé secrète sera stockée.
-
ID clé : Clé de chiffrement pour chiffrer la clé secrète dans la chambre forte OCI.
-
ID compartiment : Compartiment OCI où réside la chambre forte.
-
-
Données d'identification AWS : Assurez-vous que les données d'identification AWS sont correctement configurées dans OCI Cloud Shell ou l'interface de ligne de commande OCI, à l'aide de
aws configure
ou au moyen de variables d'environnement. Pour plus d'informations, voir Authentification à l'aide des données d'identification d'utilisateur IAM pour l'interface de ligne de commande AWS. -
Configuration OCI : Assurez-vous que
~/.oci/config
est correctement configuré à l'aide de Cloud Shell ou de l'interface de ligne de commande OCI avec vos données d'identification OCI. Pour plus d'informations, voir Installation de l'interface de ligne de commande.
Migrer des clés secrètes depuis AWS vers OCI
-
Extraire et voir les clés secrètes AWS. Pour migrer des clés secrètes depuis AWS, assurez-vous d'abord d'avoir une liste des clés secrètes à transférer. Dans cet exemple, nous migrons deux clés secrètes :
awssecret4
etawssecret5
.La capture d'écran suivante montre les clés secrètes dans AWS Secrets Manager avant la migration.
-
Créez une chambre forte et une clé de chiffrement dans OCI. Pour configurer une chambre forte et une clé OCI pour chiffrer les clés secrètes, voir Création d'une clé de chiffrement principale.
-
Utilisez un script Python pour migrer les clés secrètes. Téléchargez et enregistrez le script Python suivant sous le nom
aws_to_oci_secret_migration.py
. Le script automatise le processus d'extraction des clés secrètes AWS et de stockage dans le service de chambre forte OCI.Note : Remplacez les paramètres fictifs tels que
your_aws_secret1
,your_aws_region
,your_oci_vault_id
, etc., par vos valeurs réelles. Le préfixe spécifié sera utilisé pour créer les clés secrètes dans la chambre forte, ce qui aidera à isoler la création de clés secrètes à l'aide du script.script :
import boto3 # AWS SDK to interact with AWS services import oci # OCI SDK to interact with Oracle Cloud import base64 # To handle base64 encoding from botocore.exceptions import ClientError # For handling errors with AWS # AWS configuration AWS_SECRET_NAMES = ["your_aws_secret1", "your_aws_secret2"] # List of AWS secrets to migrate AWS_REGION = "your_aws_region" # AWS region where the secrets are stored # OCI configuration VAULT_ID = "your_oci_vault_id" # OCI Vault ID COMPARTMENT_ID = "your_oci_compartment_id" # OCI Compartment ID KEY_ID = "your_oci_key_id" # OCI Key ID OCI_SECRET_NAME_PREFIX = "your_prefix" # Prefix for the secret names in OCI Vault def get_aws_secret(secret_name): """Retrieve the secret value from AWS Secrets Manager.""" session = boto3.session.Session() # Create a session with AWS client = session.client(service_name='secretsmanager', region_name=AWS_REGION) # Create a Secrets Manager client try: # Get the secret value get_secret_value_response = client.get_secret_value(SecretId=secret_name) secret = get_secret_value_response['SecretString'] # This is the actual secret data return secret except ClientError as e: print(f"Error retrieving secret from AWS: {e}") # In case something goes wrong return None def create_oci_secret(secret_content, secret_name): """Create a new secret in OCI Vault.""" config = oci.config.from_file() # This loads your OCI configuration from ~/.oci/config vaults_client = oci.vault.VaultsClient(config) # Use the VaultsClient to create a secret in OCI Vault # Encode secret content to Base64 format secret_content_base64 = base64.b64encode(secret_content.encode('utf-8')).decode('utf-8') # Proper base64 encoding try: # Creating a new secret in OCI Vault create_secret_response = vaults_client.create_secret( create_secret_details=oci.vault.models.CreateSecretDetails( vault_id=VAULT_ID, compartment_id=COMPARTMENT_ID, secret_name=secret_name, key_id=KEY_ID, secret_content=oci.vault.models.Base64SecretContentDetails( content=secret_content_base64, # Base64 encoded content content_type="BASE64" # Specifying the content type as BASE64 ), description="Migrated from AWS Secrets Manager" # A brief description ) ) print(f"Secret '{secret_name}' successfully created in OCI Vault.") except oci.exceptions.ServiceError as e: print(f"Error creating secret in OCI Vault: {e}") # If something goes wrong def main(): # Step 1: Retrieve and migrate secrets from AWS Secrets Manager for aws_secret_name in AWS_SECRET_NAMES: aws_secret_content = get_aws_secret(aws_secret_name) if aws_secret_content: # Generate OCI secret name based on AWS secret name oci_secret_name = f"{OCI_SECRET_NAME_PREFIX}_{aws_secret_name}" # Step 2: Create the secret in OCI Vault create_oci_secret(aws_secret_content, oci_secret_name) if __name__ == "__main__": main()
-
Une fois le script enregistré, exécutez-le avec la commande suivante.
python3 aws_to_oci_secret_migration.py
-
Après avoir exécuté le script avec succès, vous pouvez vérifier les nouvelles clés secrètes créées dans la chambre forte OCI.
Étapes suivantes
La migration de clés secrètes d'AWS vers OCI peut vous aider à rationaliser vos opérations, en particulier si vous utilisez OCI pour le reste de votre infrastructure en nuage. En utilisant l'automatisation Python, vous pouvez transférer efficacement les clés secrètes, en vous assurant qu'elles sont stockées en toute sécurité et conformes aux normes de chiffrement d'OCI.
Confirmation
- Auteur - Vishak Chittuvalapil (ingénieur en nuage principal)
Autres ressources d'apprentissage
Explorez d'autres laboratoires sur la page docs.oracle.com/learn ou accédez à plus de contenu d'apprentissage gratuit sur le canal YouTube d'Oracle Learning. De plus, visitez education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir de la documentation sur le produit, visitez Oracle Help Center.
Migrate Secrets from AWS Secrets Manager to Oracle Cloud Infrastructure Secrets in Vault
G17349-02
October 2024