समस्या कथन: AWS Secrets Manager में विशिष्ट स्थान से सभी सीक्रेट कुंजियों को पुनर्स्थापित करने के लिए पायथन में boto3 लाइब्रेरी का उपयोग करें।
समस्या हल करने का दृष्टिकोण/एल्गोरिदम
चरण 1: boto3 और botocore एक्सेप्शन आयात करें ताकि एक्सेप्शन संभाले जा सकें।
चरण 2: secret_stored_location आवश्यक पैरामीटर है।
चरण 3: boto3 लाइब्रेरी का उपयोग करके AWS सत्र बनाएं। सुनिश्चित करें कि डिफ़ॉल्ट प्रोफ़ाइल में region_name उल्लिखित है। यदि नहीं, तो सत्र बनाते समय स्पष्ट रूप से region_name पास करें।
चरण 4: secretmanager के लिए AWS क्लाइंट बनाएं।
चरण 5: restore_secret कॉल करें और secret_stored_location को SecretId के रूप में पास करें।
चरण 6: यह पुनर्स्थापित सीक्रेट का मेटाडेटा लौटाता है।
चरण 7: सीक्रेट पुनर्स्थापित करते समय यदि कुछ गलत होता है तो सामान्य एक्सेप्शन को संभालें।
उदाहरण कोड
AWS Secrets Manager में सीक्रेट्स पुनर्स्थापित करने के लिए निम्न कोड का उपयोग करें:
import boto3
from botocore.exceptions import ClientError
def restore_secret_details(secret_stored_location):
session = boto3.session.Session()
s3_client = session.client('secretmanager')
try:
response = s3_client.restore_secret(SecretId=secret_stored_location)
return response
except ClientError as e:
raise Exception("boto3 client error in restore_secret_details: " + e.__str__())
except Exception as e:
raise Exception("Unexpected error in restore_secret_details: " + e.__str__())
a = restore_secret_details('/secrets/aws')
print(a)
आउटपुट
{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', '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}}
महत्वपूर्ण जानकारी
restore_secretकेवल हटाने के लिए निर्धारित (scheduled for deletion) सीक्रेट्स पर काम करता है।जब आप
delete_secretकॉल करते हैं, तो सीक्रेट तुरंत नहीं हटाया जाता; इसे रिकवरी विंडो (7-30 दिन) के लिए निर्धारित किया जाता है।रिकवरी विंडो के दौरान,
restore_secretहटाने को रद्द कर सकता है और सीक्रेट को सक्रिय स्थिति में वापस ला सकता है।एक बार रिकवरी विंडो समाप्त हो जाने पर, सीक्रेट स्थायी रूप से हटा दिया जाता है और पुनर्स्थापित नहीं किया जा सकता।
IAM अनुमति
secretsmanager:RestoreSecretआवश्यक है।
संबंधित ऑपरेशन
delete_secret- सीक्रेट को हटाने के लिए निर्धारित करता हैdescribe_secret-DeletionDateफ़ील्ड दिखाता है यदि सीक्रेट हटाने के लिए निर्धारित है