事象 : Secrets Managerからシークレット値を取得しようとしたら怒られた
- 環境
- AWS Cloud9
- Python 3.6.12
はじめてSecrets Managerにシークレット値を設定してCloud9からシークレット値を取得しようとした。
取得するコードは超親切にシークレット値を設定した時に表示されるのでほぼコピペで使った・・・がExpiredTokenException
・・・
def get_backlog_api_key():
secret_name = 'シークレットの名前'
session = boto3.session.Session()
client = session.client(
service_name='secretsmanager',
region_name='リージョン'
)
try:
get_secret_value_response = client.get_secret_value(
SecretId=secret_name
)
except ClientError as e:
print(e.response['Error'])
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'])
{'Message': 'The security token included in the request is expired', 'Code': 'ExpiredTokenException'}
原因 : Lambdaに権限がないから
権限の存在を忘却していた。
Minimum permissions
To run this command, you must have the following permissions:
secretsmanager:GetSecretValue
GetSecretValue - AWS Secrets Manager