Lambda 実行ロールのアクセス許可の設定
セルフマネージド Kafka クラスターへのアクセスに加えて、Lambda 関数にはさまざまな API アクションを実行するための許可が必要です。これらの許可は、関数の実行ロールに追加します。ユーザーが API アクションのいずれかにアクセスする必要がある場合は、AWS Identity and Access Management (IAM) ユーザーまたはロールのアイデンティティポリシーに必要な許可を追加します。
Lambda 関数に必要なアクセス許可
Amazon CloudWatch Logs のロググループでログを作成して保存するには、Lambda 関数の実行ロールに以下の許可が必要です。
Lambda 関数のオプションのアクセス許可
Lambda 関数には、以下を実行する許可も必要になる場合があります。
-
Secrets Manager シークレットを記述する。
-
AWS Key Management Service (AWS KMS) カスタマー管理のキーにアクセスする。
-
Amazon VPC にアクセスする。
-
失敗した呼び出しのレコードを送信先に送信します。
Secrets Manager と AWS KMS 許可
Kafka ブローカーに設定しているアクセスコントロールのタイプに応じて、Lambda 関数には Secrets Manager シークレットにアクセスするための許可、または AWS KMS カスタマーマネージドキーを復号化するための許可が必要になる場合があります。それらのリソースにアクセスするには、関数の実行ロールに次のアクセス許可が必要です。
VPC アクセス許可
セルフマネージド Apache Kafka クラスターにアクセスできるのが VPC 内のユーザーのみである場合、Lambda 関数には Amazon VPC リソースにアクセスするための許可が必要です。これらのリソースには、VPC、サブネット、セキュリティグループ、ネットワークインターフェイスが含まれます。それらのリソースにアクセスするには、関数の実行ロールに次のアクセス許可が必要です。
実行ロールへのアクセス許可の追加
セルフマネージド型 Apache Kafka クラスターが使用するその他の AWS サービスにアクセスするために、Lambda は、関数の実行ロールで定義されたアクセス許可ポリシーを使用します。
デフォルトでは、Lambda は、セルフマネージド型 Apache Kafka クラスターに対して、必須のまたはオプションのアクションを実行することはできません。こうしたアクションは、実行ロールの IAM 信頼ポリシーで作成および定義する必要があります。この例では、Lambda に Amazon VPC リソースへのアクセスを許可する、ポリシーの作成方法を紹介します。
IAM ポリシーを使用したユーザーアクセスの許可
デフォルトでは、ユーザーおよびロールにはイベントソースの API オペレーションを実行するアクセス許可がありません。組織またはアカウント内のユーザーにアクセス権を付与するには、アイデンティティベースのポリシーを作成または更新します。詳細については、「IAM ユーザーガイド」の「ポリシーを使用した AWS リソースへのアクセス制御」を参照してください。
認証および承認エラーをトラブルシューティングするには、「セルフマネージド Kafka イベントソースマッピングエラーのトラブルシューティング」を参照してください。