【问题标题】:How to confirm which AWS account I am launching Sceptre on?如何确认我在哪个 AWS 账户上启动 Scepter?
【发布时间】:2022-09-29 17:35:26
【问题描述】:

我使用 Scepter 来管理 AWS 基础设施,但并不总是在 CI/CD 管道中。有时更新是手动的。在这种情况下,工程师会设置AWS账户对应的环境变量(通常每个项目有三个账户,dev-pre-pro),并在项目文件夹中执行sceptre launch pre之类的东西。

当环境中的 AWS 账户实际上不是正确的账户时会出现问题,例如当环境密钥用于 dev 项目时执行 sceptre launch pre。虽然人们当然不应该搞砸,通常任何错误都会被警告捕获,但我想防止错误,我认为最好的方法是在配置中明确设置一个帐号并让权杖检查一些在尝试任何修改之前预先挂钩它实际上正在访问该帐户。

最好怎么做?我知道怎么identify the account number using plain boto commands;我可以简单地放置一些普通的 python 预挂钩,从环境中获取帐户密钥,从权杖参数中获取预期的帐号,并在任何差异时中止,还是有更好的方法?

  • 使用 STS get_caller_identity
  • @MattTimmermans 我知道该怎么做,但我不确定如何从权杖内部运行它

标签: amazon-web-services sceptre


【解决方案1】:

还提供了带有 sceptre 模板的钩子。见:hook-docs

您可以使用下面的钩子运行aws-cli 命令:

template:
  path: vpc-sample.yaml
  type: file
parameters:
  CidrBlock: ...
hooks:
  before_launch:
    - !cmd "aws configure get region"
    - !cmd ...

或者如果你想做更多的自定义逻辑,你可以尝试创建一个自定义钩子。参考:custom-hooks

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 2021-02-16
    • 1970-01-01
    相关资源
    最近更新 更多