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}}
おおおおおおおおおおおおおおおおおおおお