【问题标题】:CloudFormation LaunchConfiguration SSM AssociationCloudFormation LaunchConfiguration SSM 关联
【发布时间】:2016-09-02 02:13:03
【问题描述】:

我发现现在可以创建使用 SSM 关联引导的 EC2 实例:

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-document.html

但我没有看到启动配置上公开的类似属性...

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-launchconfig.html

这是不可能的,还是有办法将 SSM 关联自动添加到通过启动配置启动的 EC2 实例?

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-iam amazon-cloudformation


    【解决方案1】:

    一种解决方案是在每个实例启动时直接调用CreateAssociation API。您可以使用Auto Scaling Event 来调用 Lambda 函数,或者(可能更容易)在启动配置的 UserData 中添加一个 shell 脚本行,该行通过 AWS CLI (aws ssm create-association) 调用 API,检索当前运行的实例 ID通过instance metadata

    aws ssm create-association \
      --name mySSMDocumentName \
      --instance-id $(curl http://169.254.169.254/latest/meta-data/instance-id)
    

    您需要为启动配置提供具有“ssm:CreateAssociation”权限的 IAM 实例配置文件,并为 AWS CLI 提供当前区域(导出到 AWS_DEFAULT_REGION 环境变量,或使用显式 @987654328 @参数。)

    【讨论】:

    • 是的,但我希望有一些内置的东西
    • 具体来说,我认为这是一个答案,我需要能够提供 EC2 实例可以关联到哪些特定 SSM 文档。如果 SSM 文档本身是在与 Instance Profile、Role 和 LaunchConfiguration 相同的模板中创建的,那么这将成为先有鸡还是先有蛋的游戏。基本上,我需要一种方式来说明,此 LaunchConfiguration 中的 EC2 实例可以自行执行 SSM 关联……但仅限于作为堆栈一部分的这个 SSM 文档。此外,我不能让堆栈的启动器拥有创建新策略的全部权限。
    • 要将权限限制为单个 SSM 文档,请将 ssm:CreateAssociation 操作的实例配置文件策略定义中“资源”元素的值中的 * 替换为 arn:aws:ssm:region:account-id:document/document_name。如果您不想授予堆栈启动器创建新 IAM 策略的权限,请在单独的堆栈中或通过 AWS 控制台创建策略,然后直接在 LaunchConfiguration 中输入实例配置文件的 ARN (arn:aws:iam::account:instance-profile/instance-profile-name)。跨度>
    猜你喜欢
    • 2014-03-27
    • 2020-07-10
    • 2017-07-16
    • 2021-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2020-10-27
    相关资源
    最近更新 更多