Secrets ManagerのARNと名前の関係
ARNのresource部と名前の関係
ARNはresource部を持っており、これはそのサービスの名前空間内でユニークな名前。 シークレットは名前とバージョンを持っていて、同じ名前で識別されるシークレットの新しい値を保存することをローテーションと言い、定期的なLambdaによるローテーションなどがサポートされている。 シークレットのARNのresource部は ${secret_name}-yyy のような形式になっており、シークレットの名前と一致しない。
これはSecrets Managerが付与するランダムな文字列で、同名のシークレットを作成→削除→再度作成した時に意図せず古い同名のシークレットへアクセスする許可を与えるリスクを抑えるものと説明されている。 ややこしいことに GetSecretValue などの引数に渡す SecretId は The ARN or name of the secret to retrieve とされており、上記のsuffixが含まれていると404が返る。
まとめると:
名前が my-secretのシークレットを考える時……
ARNは arn:aws:secretsmanager:us-east-2:123456789012:secret:my-secret-abcdef (ただし末尾6文字はランダムに付与される)
SecretId として妥当なのは上記ARNか my-secretのどちらか
ARNのresource部から取り出した my-secret-abcdef は不正