session.credentials()对于在AWS中设置连接如何有用?

时间:2019-07-19 10:50:36

标签: python amazon-web-services security elasticsearch aws-lambda

我正在使用AWS Lambda将数据插入Amazon Elasticsearch Service。

要与Elasticsearch实例建立连接,我正在使用boto3.session.get_credentials()。我想了解如何将其用作安全性度量? Elasticsearch实例不应该具有密码或固定的access_key或其他内容吗?

credentials = boto3.Session().get_credentials()
awsauth = AWS4Auth(credentials.access_key, credentials.secret_key, region, service, session_token=credentials.token)
es = Elasticsearch(
    host=host,
    port=portOfElasticsearch,
    connection_class=RequestsHttpConnection,
    http_auth=awsauth
)

1 个答案:

答案 0 :(得分:1)

AWS Elasticsearch解决方案具有一些自定义功能,允许通过IAM进行身份验证。
这意味着您将使用允许您在Elasticsearch上进行连接的某些IAM策略来验证连接。
这就是为什么要这样做:http_auth=awsauth

此代码:boto3.session.get_credentials()获取与您的Lambda关联的当前凭据。
您没有提及,但可能您与Lamda相关联。该角色有权连接Elasticsearch。