Remarques :
- Ce tutoriel nécessite un accès à Oracle Cloud. Pour vous inscrire à un compte gratuit, reportez-vous à Introduction au niveau gratuit d'Oracle Cloud Infrastructure.
- Il utilise des exemples de valeurs pour les informations d'identification, la location et les compartiments Oracle Cloud Infrastructure. Lorsque vous terminez votre atelier, remplacez ces valeurs par celles propres à votre environnement cloud.
Migration de clés secrètes d'AWS Secrets Manager vers les clés secrètes Oracle Cloud Infrastructure Secrets in Vault
Introduction
Avantages liés à la migration de 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 OCI Vault peut simplifier la gestion en garantissant la cohérence des stratégies de sécurité.
- Conformité et sécurité : OCI Vault s'intègre à de nombreux services OCI où le contrôle géré par le client est nécessaire en fournissant un cryptage avec des clés personnalisées, des contrôles d'accès et des journaux d'audit.
- Considération des coûts : les options de tarification et de stockage d'OCI Vault peuvent être plus rentables que celles d'AWS Secrets Manager, en fonction de votre utilisation.
Types de clé secrète pris en charge dans OCI Vault
-
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 que ces types puissent ê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, reportez-vous à Gestion des clés secrètes Vault.
-
OCI Vault exige que le contenu de clé secrète soit au format base64, ce qui garantit le 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 Vault avec l'encodage base64.
Prérequis
-
SDK AWS et OCI : assurez-vous que les bibliothèques
boto3
etoci
sont installées dans votre environnement. Il s'agit respectivement des SDK officiels pour AWS et OCI. Exécutez la commande suivante pour l'installation.pip install boto3 oci
-
Configuration du coffre OCI :
-
ID de coffre : identificateur unique du coffre OCI dans lequel la clé secrète sera stockée.
-
ID de clé : clé de cryptage permettant de crypter la clé secrète dans OCI Vault.
-
ID de compartiment : compartiment OCI dans lequel réside le coffre.
-
-
Informations d'identification AWS : assurez-vous que les informations 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 de variables d'environnement. Pour plus d'informations, reportez-vous à Authentification à l'aide des informations d'identification utilisateur IAM pour l'interface de ligne de commande AWS. -
Configuration OCI : assurez-vous que
~/.oci/config
est correctement configuré à l'aide d'OCI Cloud Shell ou de l'interface de ligne de commande OCI avec vos informations d'identification OCI. Pour plus d'informations, reportez-vous à Installation de l'interface de ligne de commande.
Migrer des clés secrètes d'AWS vers OCI
-
Récupérez et affichez les clés secrètes AWS. Pour migrer des clés secrètes à partir d'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 présente les clés secrètes dans AWS Secrets Manager avant la migration.
-
Créez un coffre et une clé de cryptage dans OCI. Afin de configurer un coffre OCI et une clé pour le cryptage des clés secrètes, reportez-vous à Création d'une clé de cryptage maître.
-
Utilisez le script Python pour migrer les clés secrètes. Téléchargez et enregistrez le script Python suivant en tant que
aws_to_oci_secret_migration.py
. Le script automatise le processus d'extraction des clés secrètes AWS et de stockage dans OCI Vault.Remarque : remplacez les espaces réservés tels que
your_aws_secret1
,your_aws_region
,your_oci_vault_id
, etc., par vos valeurs réelles. Le préfixe indiqué sera utilisé pour créer les clés secrètes dans le coffre, ce qui permettra d'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 à l'aide de la commande suivante.
python3 aws_to_oci_secret_migration.py
-
Une fois le script exécuté, vous pouvez vérifier les clés secrètes nouvellement créées dans OCI Vault.
Etapes suivantes
La migration des clés secrètes d'AWS vers OCI peut vous aider à rationaliser vos opérations, en particulier si vous exploitez OCI pour le reste de votre infrastructure cloud. 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 cryptage d'OCI.
Remerciements
- Auteur - Vishak Chittuvalapil (ingénieur cloud senior)
Ressources de formation supplémentaires
Explorez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuits sur le canal Oracle Learning YouTube. De plus, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour obtenir la documentation produit, consultez le site Oracle Help Center.
Migrate Secrets from AWS Secrets Manager to Oracle Cloud Infrastructure Secrets in Vault
G17350-02
October 2024