我现在有一个 aws lambda 函数 (nodejs),可以将一些数据写入测试 kafka 集群。生产中的那个使用 kerberos 进行身份验证,所以我想知道是否有办法设置我的 lambda 函数以使用 kerberos 进行身份验证。我在网上找不到很多关于这个的信息......
最佳答案
有两种处理方法。
调出 CLI 实用程序
这需要您在部署包中或通过层提供 krb5-workstation
及其依赖项 libkadm5
的内容。
- 从 Lambda execution environment's AMI 启动一个 EC2 实例
- 更新所有包:
sudo yum update
- 安装 MIT Kerberos 实用程序:
sudo yum install krb5-workstation
- 制作Layer skeleton :
mkdir bin lib
- 填充二进制文件:
rpm -ql krb5-workstation | grep bin | xargs -I %% cp -a %% bin
- 填充他们的库:
rpm -ql libkadm5 | xargs -I %% cp -a %% lib
- 准备图层:
zip -r9 krb5-workstation-layer.zip bin lib
- 创建图层并从您的 Lambda 函数中引用它。
- 从您的函数内部调用(例如)
/opt/bin/kinit
。
原生
事实证明,如果您的代码调用 gss_acquire_cred
,大多数代码通常通过绑定(bind)和抽象层来完成,您不需要 CLI 实用程序。
- 为您的函数提供客户端 key 表文件,方法是将其与部署包捆绑在一起,或者(可能更好)从 S3 + KMS 获取它。
- 设置
KRB5_CLIENT_KTNAME
环境变量到 keytab 文件的位置。
请求的附录
无论哪种情况,如果您发现需要指定额外的 Kerberos 配置,请参阅 krb5.conf
文档了解详情。如果 /etc
不在表中,则“可以在 [the] KRB5_CONFIG [环境变量] 中指定多个以冒号分隔的文件名;将读取所有存在的文件。”
关于node.js - lambda 函数中的 kerberos 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42093119/