簡體   English   中英

AWS ECS環境變量

[英]AWS ECS environment variables

我花了一些時間對此進行研究,但仍不清楚在安全性方面如何安全使用ECS環境變量,但是否為docker使用ENV和ENV-FILE選項?

例如: AWS ECS文檔指出將機密添加到任務定義中,它們將作為容器環境變量提供。

Docker文檔具有類似的語言:

從結果映像運行容器時,使用ENV設置的環境變量將保留。 您可以使用docker inspect查看值,並使用docker run --env =更改它們。

現在,我找不到答案的問題是,如果這兩個選項都在容器內設置了環境變量(這意味着用戶可以在Docker檢查時查看),那么使用AWS ECS環境變量有什么好處?

從AWS參數存儲(或)SSM中獲取變量(例如dbuser,dbpassword)的最佳策略是什么,但不要將其設置為容器環境變量(如果可能的話,不使用docker entryscript)?

一種選擇是在啟動過程中通過應用程序中的遠程協議(通過HTTP API)提取變量配置。

示例 -我在ECS下運行了基於Spring Boot Java的docker容器,在其中我使用Spring Cloud Config拉出dbuser和dbpassword 之類的配置 當我的Spring Boot容器啟動時,它們會使用Spring Cloud Config加載必要的配置並初始化應用程序。

Spring Cloud Config支持從各種來源(例如Git,Vault甚至AWS Parameter Store)中提取配置。

我的應用程序容器-> Spring Cloud Config Server容器-> Git / Vault / AWS參數存儲

這是將Spring Cloud與AWS Parameter Store集成的示例指南,以及一些具有示例Github存儲庫的SO問題。 https://blog.trifork.com/2018/07/20/integrating-the-aws-parameter-store-with-spring-cloud/

為什么將Spring Cloud應用程序與AWS Parameter Store集成在一起不會從param store返回任何屬性?

現在,這可能不適用於其他平台容器,但是您也可以將類似的概念應用於您的平台。 示例:Spring Cloud Config公開了一個通用的HTTP Rest API,您可以從您的應用程序中以其他編程語言等編寫的API中提取必要的配置,

可以使用Github上的代碼檢入DockerFiles。 因此,任何有權訪問代碼的人都可以看到機密信息(dbUser和dbPassword)。 萬一回購公之於眾,機密也將被暴露。

如果使用AWS ECS Env變量,則只有有權訪問AWS Infra的用戶才能看到這些機密。 它還使在多個環境中運行變得容易。

正如Imran所建議的,您始終可以在過程開始之前從某些第三方配置管理器中提取配置。

暫無
暫無

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

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