簡體   English   中英

Github 操作 - 傳遞秘密變量以呈現 ECS 任務定義操作

[英]Github actions - pass secret variables to render ECS task definition action

為了使用amazon-ecs-render-task-definition GitHub 操作將新任務部署到 ECS im。 此操作接收一個 task-definition.json 作為參數。 這個 JSON 包含我不想推送的秘密,有沒有辦法向這個 JSON 注入一些參數? 也許來自aws secrets manager?

例如 -任務定義.json

{
 "containerDefinitions": [
  {
   "name": "wordpress",
   "links": [
     "mysql"
   ],
  "image": "wordpress",
  "essential": true,
  "portMappings": [
    {
      "containerPort": 80,
      "hostPort": 80
    }
  ],
  "memory": 500,
  "cpu": 10
},
{
  "environment": [
    {
      "name": "MYSQL_ROOT_PASSWORD",
      "value": ****"password"**** // ITS A SECRET!
    }
  ],
  "name": "mysql",
  "image": "mysql",
  "cpu": 10,
  "memory": 500,
  "essential": true
}], 
 "family": "hello_world" }

顯然有一個使用 aws-scrent-manager 機密的內置解決方案:

"secrets": [
    {
      "name": "DATABASE_PASSWORD",
      "valueFrom": "arn:aws:ssm:us-east-1:awsExampleAccountID:parameter/awsExampleParameter"
    }
  ]

https://aws.amazon.com/premiumsupport/knowledge-center/ecs-data-security-container-task/

另一種解決方案是使用sed插入您的秘密

所以你的工作流程變得像 -

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Add secrets to Task Definition
        run: |
          sed -i "s/<jwt_secret>/$JWT_SECRET/g" task.json 
          sed -i "s/<mongo_password>/$MONGO_PASSWORD/g" task.json 
        env:
          JWT_SECRET: ${{secrets.JWT_SECRET}}
          MONGO_PASSWORD: ${{secrets.MONGO_PASSWORD}}

然后你編輯你的 task.json 以包含 sed 將用於替換的占位符

{
  "ipcMode": null,
  "executionRoleArn": null,
  "containerDefinitions": [
    {
      ...
      "environment": [
        {
          "name": "JWT_SECRET",
          "value": "<jwt_secret>"
        },
        {
          "name": "MONGO_PASSWORD",
          "value": "<mongo_password>"
        },
      ]
      ...
   }
  ]
}

所有 repos 都有一個地方來存儲他們的秘密,請參閱創建和使用加密的秘密 至於編輯 .json,預安裝的jq在這里看起來是一個明顯的選擇,或者如果您更熟悉它,也可以使用powershell (請記住調整-Depth )。

暫無
暫無

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

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