AWS Lambdaを環境変数を用いて実行する際に""次のことを実行する権限がありません: kms:Encrypt.""と表示されてしまうので解消しようと思ったらできなかった
AWS Lambdaを環境変数を用いて実行する際に""次のことを実行する権限がありません: kms:Encrypt.""と表示されてしまうので解消しようと思ったらできなかった:
ロールにポリシーを付与しているにもかかわらず、Lambda上で環境変数を用いて関数を作成しようとしてみると、下記のエラーメッセージが出てしまう。
わからなかった。mustな機能ではないので今回は見送る。
まずAWS管理チームから頂いたKMSを認証するポリシーをシュミレートしたところ、単体では
をサポートしていなかった。つまりルートユーザーで管理しているKMSにかかるポリシーではkms:Encryptへのアクセスを承認していない。
そのためインラインポリシー内にkms:Encryptを追加して、ロールをシュミレートしてみたところ実際に結果としてallowedが帰ってきた。
ポリシーのシュミレートについては下記参照。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_testing-policies.html
しかし、インラインポリシーにkms:Encryptを設定して,
シュミレータ上でallowになっていてもエラーメッセージは消えなかった。
ルートユーザーが作成したポリシー内に権限が入っているべきなのだろうか。
実際にキーポリシーにはアクセス権限の付与が入っているのでここは問題ない。
AWSで公開したくないパラメータを扱う3つの方法について
http://yebisupress.dac.co.jp/2017/02/14/aws%e3%81%aecredentials%e3%82%92%e6%b3%a8%e6%84%8f%e3%81%97%e3%81%a6%e5%8f%96%e3%82%8a%e6%89%b1%e3%81%86%e8%a9%b1/
AWS Lambdaを環境変数を用いて実行する際に""次のことを実行する権限がありません: kms:Encrypt.""と表示されてしまうので解消してみたできなかった
何を目的に、何をしたのか。(達成できてない場合は「できてません」も冒頭で)
ロールにポリシーを付与しているにもかかわらず、Lambda上で環境変数を用いて関数を作成しようとしてみると、下記のエラーメッセージが出てしまう。
結論やわかったこと
わからなかった。mustな機能ではないので今回は見送る。
実際に行った事
検証①そもそもポリシーがkms:Encryptの権限を認証するように書かれていない
まずAWS管理チームから頂いたKMSを認証するポリシーをシュミレートしたところ、単体ではkms:Encrypt
そのためインラインポリシー内にkms:Encryptを追加して、ロールをシュミレートしてみたところ実際に結果としてallowedが帰ってきた。
ポリシーのシュミレートについては下記参照。
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_testing-policies.html
しかし、インラインポリシーにkms:Encryptを設定して,
シュミレータ上でallowになっていてもエラーメッセージは消えなかった。
ルートユーザーが作成したポリシー内に権限が入っているべきなのだろうか。
検証②キーポリシーに入っていないケース
{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::XXXX:role/XXXX", "arn:aws:iam::XXXX:user/XXXX" ] }, "Action": [ "kms:Encrypt", "XXXXXXXXXXX" ], "Resource": "*" },
結論やわかったことに対する補足
AWSで公開したくないパラメータを扱う3つの方法についてhttp://yebisupress.dac.co.jp/2017/02/14/aws%e3%81%aecredentials%e3%82%92%e6%b3%a8%e6%84%8f%e3%81%97%e3%81%a6%e5%8f%96%e3%82%8a%e6%89%b1%e3%81%86%e8%a9%b1/
コメント
コメントを投稿