2017-03-08 22 views
1

AWSラムダ関数(アカウントA)のGetFunction/InvokeFunctionアクションと別のアカウント(アカウントB)のec2インスタンスを実行しようとしています。awsへのクロスアカウントコールlambda環境変数のKMSAccessDeniedエラーを返すGetFunction

アカウントAにLambda Permissionを追加してアカウントBへのアクセスを許可すると、GetFunctionとInvokeFunctionの両方のアクションを実行できます。

しかし、GetFunctionは、ラムダ関数の環境変数のためにKMSAccessDeniedExceptionを返しています。ラムダ関数の環境変数は暗号化していません。 アカウント内のEC2から同じアクションを実行すると、環境変数に適切な値を得ています。 KMSに追加のアクセス許可を追加する必要がありますか?

答えて

1

AWSラムダ関数の環境変数をデフォルトで暗号化して、データを安全に保ちます。ラムダ作成時に暗号化キーを提供しない場合、AWSはデフォルトの暗号化キー "aws/lambda"を使用しますが、アクセスポリシーは変更できません。

環境変数でラムダ関数を呼び出そうとしたとき、私はこの例外を得ました。他のアカウントにはこのキーにアクセスする権限がありません。

ソリューション: 新しいキーを作成し、AWSラムダ関数の作成中に渡して、環境変数のデータを残りの部分で暗号化するために使用します。第3のアカウントからのアクセスを許可するために、この新しい鍵に鍵ポリシーを添付してください。

関連する問題