指定敏感数据 使用 Systems Manager 参数存储 - Amazon ECS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

指定敏感数据 使用 Systems Manager 参数存储

Amazon ECS 通过存储您的 敏感数据 AWS Systems Manager 参数存储参数,然后在 您的容器定义。

注意事项 使用 Systems Manager 参数存储

为以下对象指定敏感数据时,应考虑以下事项 容器使用 Systems Manager 参数存储参数。

  • 对于使用 Fargate 启动类型,此功能 要求您的任务使用平台版本1.3.0或更高版本。对于 信息,请参阅 AWS Fargate 平台版本.

  • 当容器处于 最初开始于。如果密钥或参数存储参数 之后更新或轮换,容器将不会收到 自动更新值。您必须启动新任务,或者如果 您的任务是服务的一部分,您可以更新服务并使用 强制新部署 强行 服务,以启动新的任务。

必填 IAM 权限 Amazon ECS 机密

要使用此功能,您必须具有 Amazon ECS 任务执行角色和参考 它在您的任务定义中。这允许容器代理拉动 必须 AWS Systems Manager 资源。更多信息,请参阅 Amazon ECS 任务执行 IAM 角色.

提供访问 AWS Systems Manager 参数您创建的Store参数, 将以下权限手动添加为执行任务的内联策略 角色。更多信息,请参阅 添加和 删除IAM政策.

  • ssm:GetParameters—如果您正在参考,则必填 a Systems Manager 参数在任务定义中存储参数。

  • secretsmanager:GetSecretValue—如果您是 引用a Secrets Manager 直接保密或如果您 Systems Manager 参数 存储参数引用 Secrets Manager 任务中的秘密 定义。

  • kms:Decrypt—仅当密钥使用 自定义KMS密钥,而不是默认密钥。自定义密钥的ARN 应添加为资源。

以下示例在线策略添加了所需的权限:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameters", "secretsmanager:GetSecretValue", "kms:Decrypt" ], "Resource": [ "arn:aws:ssm:<region>:<aws_account_id>:parameter/<parameter_name>", "arn:aws:secretsmanager:<region>:<aws_account_id>:secret:<secret_name>", "arn:aws:kms:<region>:<aws_account_id>:key/<key_id>" ] } ] }

将敏感数据作为 环境变量

在您的容器定义中,指定 secrets 名称 在容器中设置的环境变量以及 Systems Manager 参数存储参数包含要呈现给 容器。

以下是任务定义的片段,其中显示了以下格式: 参考 Systems Manager 参数存储参数。如果 Systems Manager 参数存储 参数与要启动的任务存在于同一区域,然后您可以 使用完整ARN或参数名称。如果参数存在于 不同的区域,则必须指定完整的ARN。

{ "containerDefinitions": [{ "secrets": [{ "name": "environment_variable_name", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter/parameter_name" }] }] }

在日志中注入敏感数据 配置

在容器定义中,指定 logConfiguration 可以指定 secretOptions 将日志驱动选项的名称设置为容器和完整的ARN 的 Systems Manager 参数存储参数包含要呈现的敏感数据 容器。

重要

如果 Systems Manager 参数存储参数与位于同一区域 任务,则您可以使用完整的ARN或 参数。如果参数存在于不同的区域,则完整的ARN 必须指定。

以下是任务定义的片段,其中显示了以下格式: 参考 Systems Manager 参数存储参数。

{ "containerDefinitions": [{ "logConfiguration": [{ "logDriver": "fluentd", "options": { "tag": "fluentd demo" }, "secretOptions": [{ "name": "fluentd-address", "valueFrom": "arn:aws:ssm:region:aws_account_id:parameter:parameter_name" }] }] }] }

创建 AWS Systems Manager 参数存储 参数

您可以使用 AWS Systems Manager 以创建一个 Systems Manager 参数存储参数 收集您的敏感数据。更多信息,请参阅 演练: 创建和 在命令中使用参数(Console)AWS Systems Manager 用户指南.

创建参数存储参数

  1. 打开 AWS Systems Manager 话务台 https://console.amazonaws.cn/系统-经理/.

  2. 在导航面板中,选择 参数存储, 创建参数.

  3. 对于 姓名,输入层级和参数名称。例如,输入 test/database_password.

  4. 对于 描述,输入可选 描述。

  5. 对于 类型,选择 , 串表,或 安全战略.

    注意
    • 如果您选择 安全战略, KMS密钥ID 字段出现。如果您 不提供KMSCMKID、KMSCMKARN、别名,或 别名ARN,则系统使用 alias/aws/ssm,它是默认的KMSCMK 对于 Systems Manager. 要避免使用此密钥,请选择自定义密钥。对于 更多信息,请参阅 使用 安全串参数AWS Systems Manager 用户指南.

    • 在控制台中创建安全串参数时 通过使用 key-id 参数 自定义KMSCMK别名或别名ARN,您必须指定 前缀 alias/ 在别名之前。的 以下是ARN示例:

      arn:aws:kms:us-east-2:123456789012:alias/MyAliasName

      以下是别名示例:

      alias/MyAliasName
  6. 对于 价值,输入值。例如, MyFirstParameter。如果您选择了 安全战略,该值会随着您 类型。

  7. 选择 创建参数.

创建任务 参考敏感数据的定义

您可以使用 Amazon ECS 创建引用 Systems Manager 参数存储参数。

创建指定密钥的任务定义

  1. https://console.amazonaws.cn/ecs/ 上打开 Amazon ECS 控制台。

  2. 在导航面板中,选择 任务定义, 创建新任务定义.

  3. 选择启动类型兼容性 页面, 为您的任务选择启动类型,并选择 下一步 步骤.

  4. 对于 任务定义名称,为您的 任务定义。 最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。

  5. 对于 任务执行角色选择您的 现有任务执行角色或选择 创建新的 角色 为您创建一个。此角色授权 Amazon ECS 为你的任务拉出私人图像。更多信息,请参阅 必填 IAM 专用登记系统的权限 身份验证.

    重要

    如果 任务执行角色 字段不 出现,选择 通过JNS配置 和手动 添加 executionRoleArn 字段,以指定您的任务 执行角色。以下代码显示语法:

    "executionRoleArn": "arn:aws:iam::aws_account_id:role/ecsTaskExecutionRole"
  6. 对于要在任务定义中创建的每个容器,填写 以下步骤:

    1. 低于 容器定义,选择 添加容器.

    2. 对于 容器名称,为您的 容器。 最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。

    3. 对于 图片,输入图片名称或路径 您的私人形象。 最多能包含 255 个字母 (大写和小写字母)、数字、连字符和下划线。

    4. 展开 高级容器 配置.

    5. 对于作为环境变量注入的敏感数据,低于 环境,用于 环境 变量填写以下字段:

      1. 对于 关键,输入 在容器中设置的环境变量。这 对应 name 字段 secrets 容器部分 定义。

      2. 对于 价值,选择 起始值. 对于 添加 价值,输入 AWS Systems Manager 参数存储参数,包含 以环境形式呈现给容器的数据 变量。

        注意

        如果 Systems Manager 参数存储参数存在于 与您启动的任务所在的区域相同,然后 您可以使用完整的ARN或 密钥。如果参数存在于不同的 区域,则必须指定完整的ARN。

    6. 对于日志配置中引用的密钥, 容器,低于 存储和记录,用于 日志配置,完成 以下字段:

      1. 清除 自动配置 CloudWatch Logs 选项。

      2. 低于 日志选项,用于 关键,输入日志的名称 配置选项以设置。

      3. 对于 价值,选择 起始值. 对于 添加 价值,输入 AWS Systems Manager 参数存储参数,包含 以日志形式呈现于日志配置中的数据 选项。

        注意

        如果 Systems Manager 参数存储参数存在于 与您启动的任务所在的区域相同,然后 您可以使用完整的ARN或 密钥。如果参数存在于不同的 区域,则必须指定完整的ARN。

    7. 填写其余必填字段和任何可选字段 用于容器定义。更多容器定义 参数在 高级容器 配置 菜单。更多信息,请参阅 任务定义参数.

    8. 选择 添加.

  7. 添加集装箱后,选择 创建.