0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Secrets ManagerとLambdaを使ってローテーションする際に「シークレットをローテーションできませんでした」とエラーが出た時の対象法

Posted at

概要

AWS Secrets Manager内でキーローテーションの設定をしてうまくいかなかった際に下記画像のように
シークレットをローテーションできませんでした
としか表示されずに困ったのでその原因と対処法について解説します

スクリーンショット 2023-09-13 14.14.13.png

原因

結論から言うとリソースベース(今回だとSecerts Manager)のポリシーステートメントが足りてなくてローテーションができませんでした

リソースベースのポリシーステートメントについては下記の通りです

関数は、その実行ロールから AWS リソースに対する許可を受け取ります。AWS SDK を使用して AWS のサービスを呼び出すには、そのサービスの API オペレーションへのアクセスを許可するポリシーをロールに追加します。
Lambda コンソールが作成するデフォルトの実行ロールには、Amazon CloudWatch ログにログを保存するアクセス許可しかありません。X-Ray トレースなどの一部の機能では、追加のアクセス許可が必要です。コンソールで関数を設定すると、コンソールは必要なアクセス許可を追加しようとします。

要するに何かしらのマネージドサービスをトリガーにLambdaを実行するにはトリガーとなるマネージドサービスのアクセスを許可する必要がある、ということです

対処法

ポリシーステートメントの設定

Lambdaの設定タブを選択し、アクセス権限を追加をクリックします
スクリーンショット 2023-09-13 15.38.44.png

AWSのサービスを選択し、今回はSecrets Managerを選択します
ローテーションで設定した時間に実行させたいのでアクションはlambda:invokefunctionにします
スクリーンショット 2023-09-13 14.13.44.png

以下のようにポリシーステートメントが追加されたら成功です
スクリーンショット 2023-09-13 15.42.15.png

Secrets Managerの設定

Secrets Managerにローテーションの設定を行います
スクリーンショット 2023-09-13 14.14.39.png
スクリーンショット 2023-09-13 14.14.49.png

以下のように正常にローテーションの設定ができていたら成功です
スクリーンショット 2023-09-13 14.16.42.png

スクリーンショット 2023-09-13 14.16.50.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?