簡體   English   中英

我可以安全地使用Amazon的Elasticsearch和Rails searchkick gem嗎?

[英]Can I use Amazon's Elasticsearch with Rails searchkick gem securely?

我想知道我是否以及如何安全地使用searchkick與亞馬遜的Elasticsearch。

Bellow是訪問選項的圖像。 IP地址並不理想,因為服務器IP可能會發生變化。

如果我限制對一個或多個AWS賬戶或IAM用戶的訪問,那么我不確定如何從rails應用程序進行身份驗證。

Amazon Elasticsearch訪問選項

您可以從Ruby向Amazon Elasticsearch發出簽名的安全請求。 我使用Heroku上的應用程序執行了以下操作。

確保您擁有elasticsearch gem> = v1.0.15,因為對此的支持僅在2015年12月4日實施。

你還需要這個寶石:

gem 'faraday_middleware-aws-signers-v4'

elasticsearch-ruby / elasticsearch-transport文檔中的示例:

您可以在配置塊中使用任何標准的法拉第中間件和插件,例如簽署AWS Elasticsearch服務的請求:

使用以下代碼:

require 'faraday_middleware/aws_signers_v4'

client = Elasticsearch::Client.new(url: ENV['AWS_ENDPOINT_URL']) do |f|
  f.request :aws_signers_v4,
            credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
            service_name: 'es',
            region: 'us-east-1'
end

這也適用於使用Rails的searchkick gem。 在初始化程序中使用上面的示例設置Searchkick.client:

# config/initializers/elasticsearch.rb
require 'faraday_middleware/aws_signers_v4'

Searchkick.client = Elasticsearch::Client.new(url: ENV['AWS_ENDPOINT_URL']) do |f|
  f.request :aws_signers_v4,
            credentials: Aws::Credentials.new(ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']),
            service_name: 'es',
            region: 'us-east-1'
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM