समस्या कथन: boto3 . का उपयोग करें एडब्ल्यूएस सीक्रेट मैनेजर में एक विशिष्ट स्थान पर एक नया रहस्य संग्रहीत करने के लिए पायथन में पुस्तकालय
इस समस्या को हल करने के लिए दृष्टिकोण/एल्गोरिदम
-
चरण 1: आयात करें boto3 और बोटोकोर अपवादों को संभालने के लिए अपवाद।
-
चरण 2: गुप्त_संग्रहीत_स्थान और secret_key_pair आवश्यक पैरामीटर हैं। सुनिश्चित करें कि secret_key_pair स्ट्रिंग . के रूप में लिखा जाता है , तानाशाही . के रूप में नहीं ।
-
चरण 3: boto3 lib . का उपयोग करके AWS सत्र बनाएं . सुनिश्चित करें कि क्षेत्र_नाम डिफ़ॉल्ट प्रोफ़ाइल में उल्लेख किया गया है। यदि इसका उल्लेख नहीं है, तो स्पष्ट रूप से region_name . पास करें सत्र बनाते समय।
-
चरण 4: गुप्त प्रबंधक . के लिए AWS क्लाइंट बनाएं ।
-
चरण 5: put_secret_value पर कॉल करें और secret_stored_location . पास करें SecretId . के रूप में और secret_key_pair सीक्रेटस्ट्रिंग के रूप में।
-
चरण 6: यह जोड़े गए नए रहस्य का मेटाडेटा लौटाता है।
-
चरण 7: अगर सीक्रेट जोड़ते समय कुछ गलत हो जाता है, तो सामान्य अपवाद को हैंडल करें।
उदाहरण कोड
AWS सीक्रेट मैनेजर में एक नया सीक्रेट स्टोर करने के लिए निम्नलिखित कोड का उपयोग करें -
import boto3
from botocore.exceptions import ClientError
def store_new_secret_details(secret_stored_location, secret_key_pair):
session = boto3.session.Session()
s3_client = session.client('secretmanager')
try:
response = s3_client.put_secret_value(SecretId=secret_stored_location,SecretString = secret_key_pair)
return response
except ClientError as e:
raise Exception("boto3 client error in store_new_secret_details: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in store_new_secret_details: " + e.__str__())
a = store_new_secret_details('/secrets/aws', '{"user_test2":"test2"}')
print(a) आउटपुट
{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', 'VersionId': 'f5308bed-7c23-4d47-a32b-8f2a5f044e53', 'VersionStages': ['AWSCURRENT'], 'ResponseMetadata': {'RequestId': 'b32fe48d**************ab', 'HTTPStatusCode': 200, 'HTTPHeaders': {'date': 'Sat, 03 Apr 2021 09:40:48 GMT', 'content-type': 'application/x-amz-json-1.1', 'content-length': '197', 'connection': 'keep-alive', 'x-amzn-requestid': *********************************}, 'RetryAttempts': 0}}