Tuyên bố sự cố: Sử dụng boto3 thư viện bằng Python để tạo khóa bí mật dưới dạng văn bản thuần túy trong AWS Secret Manager
Phương pháp tiếp cận / Thuật toán để giải quyết vấn đề này
-
Bước 1: Nhập boto3 và botocore các ngoại lệ để xử lý các ngoại lệ.
-
Bước 2: secret_stored_location và secret_key_pair là tham số bắt buộc. Đó là nơi lưu các bí mật với giá trị cặp khóa nhất định. Đảm bảo rằng secret_key_pair được viết là chuỗi , không phải là dict . Ví dụ: '{key:pair}'
-
Bước 3: Tạo phiên AWS bằng boto3 lib . Đảm bảo rằng region_name được đề cập trong hồ sơ mặc định. Nếu nó không được đề cập, thì hãy chuyển region_name một cách rõ ràng trong khi tạo phiên.
-
Bước 4: Tạo ứng dụng AWS cho người quản lý thư ký .
-
Bước 5: Gọi cho create_secret và vượt qua secret_stored_location dưới dạng Tên và secret_key_pair dưới dạng Chuỗi bí mật tham số
-
Bước 6: Nó trả về siêu dữ liệu của bí mật đã thêm.
-
Bước 7: Xử lý ngoại lệ chung nếu có sự cố trong khi tạo bí mật.
Mã mẫu
Sử dụng mã sau để tạo bí mật trong AWS Secret Manager -
import boto3 from botocore.exceptions import ClientError def create_secret_details(secret_stored_location, secret_key_pair:str): session = boto3.session.Session() s3_client = session.client('secretmanager') try: response = s3_client.create_secret(Name=secret_stored_location,SecretString = secret_key_pair) return response except ClientError as e: raise Exception("boto3 client error in create_secret_details: " + e.__str__()) except Exception as e: raise Exception("Unexpected error in create_secret_details: " + e.__str__()) details = '{"user_test":"test"}' a = get_decrypted_secret_details('/secrets/aws', details) print(a)
Đầu ra
{'ARN': 'arn:aws:secretsmanager:us-east-1:***************:secret:/secrets/aws-wr1Aj6', 'Name': '/secrets/aws', 'VersionId': 'fcdc1b5b-2a35-4d12-9d84-65d529651d2e', '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}}