Secret Managerを使っていきます。
今回はkeyとvalueにします。
secret nameも設定します。
RDSのpassだとrotationができるらしい。このrotationって機能は面白いですね。
iamでSecret Managerのread/writeの権限を付与します。
### Pythonで取得してみる
$ pip3 install boto3
L boto3.client の書き方は、s3へのget/uploadとほぼ同じ。あとは、client.get_secret_valueとするだけ。
import boto3 import base64 from botocore.exceptions import ClientError accesskey = "" secretkey = "" region = "ap-northeast-1" secret_name = "stg/beta/name" client = boto3.client('secretsmanager', aws_access_key_id=accesskey, aws_secret_access_key= secretkey, region_name=region) try: get_secret_value_response = client.get_secret_value( SecretId=secret_name ) except ClientError as e: if e.response['Error']['Code'] == 'DecryptionFailureException': raise e elif e.response['Error']['Code'] == 'InternalServiceErrorException': raise e elif e.response['Error']['Code'] == 'InvalidParameterException': raise e elif e.response['Error']['Code'] == 'InvalidRequestException': raise e elif e.response['Error']['Code'] == 'ResourceNotFoundException': raise e else: if 'SecretString' in get_secret_value_response: secret = get_secret_value_response['SecretString'] else: decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary']) print(get_secret_value_response)
response
{‘ARN’: ‘arn:aws:secretsmanager:ap-northeast-1:702423327513:secret:stg/beta/name-FgtB23’, ‘Name’: ‘stg/beta/name’, ‘VersionId’: ‘cbe2dfcb-2e5b-4032-a919-a6213f3436db’, ‘SecretString’: ‘{“name”:”hpscript”}’, ‘VersionStages’: [‘AWSCURRENT’], ‘CreatedDate’: datetime.datetime(2022, 2, 11, 23, 43, 4, 732000, tzinfo=tzlocal()), ‘ResponseMetadata’: {‘RequestId’: ‘3c41a108-4cee-46a4-aa9f-af3d2252637c’, ‘HTTPStatusCode’: 200, ‘HTTPHeaders’: {‘x-amzn-requestid’: ‘3c41a108-4cee-46a4-aa9f-af3d2252637c’, ‘content-type’: ‘application/x-amz-json-1.1’, ‘content-length’: ‘265’, ‘date’: ‘Sat, 12 Feb 2022 00:02:59 GMT’}, ‘RetryAttempts’: 0}}
おおおおおおおおおおおおおおおおおおおお