1

私はそれがSSM協会(S)とブートストラップEC2インスタンスを作成できるようになりましたことを参照してください。CloudFormation LaunchConfiguration SSM協会

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インスタンスに自動的に追加?

答えて

3

1つの解決策は、各インスタンスの起動時に直接CreateAssociation APIを直接呼び出すことです。 Auto Scaling Eventを使用してLambda関数を呼び出すことができます。または、AWS CLI(aws ssm create-association)を介してAPIを呼び出すLaunch ConfigurationのUserDataにシェルスクリプト行を追加して(おそらく簡単に)、現在実行中のインスタンスIDをinstance metadata

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

あなたが起動設定にしてIAMインスタンスプロファイルを提供する必要があります:権限と、現在の地域でAWS CLIを提供(AWS_DEFAULT_REGION環境変数にエクスポートのいずれか、または明示的な--regionと「SSMをCreateAssociation」パラメータ。)

+0

はい、私は何かのinbuiltを望んでいた – Jeff

+0

具体的には、私はこれを答えと考えるために、EC2インスタンスが関連付けることができる特定のSSM文書をプロビジョニングできる必要があります。 SSMドキュメント自体がインスタンスプロファイル、ロール、およびLaunchConfigurationと同じテンプレートで作成された場合、これはチキンまたはエッグゲームになります。基本的には、このLaunchConfigurationのEC2インスタンスはSSMの関連付けを単独で行うことができますが、スタックの一部であるこのSSMドキュメントに対してのみ行うことができます。さらに、スタックのランチャーに新しいポリシーを作成するための完全な権限を与えることはできません。 – Jeff

+0

権限を1つのSSMドキュメントに制限するには、インスタンスプロファイルのポリシー定義の 'Resource '要素の値の中の' arn:aws:ssm:region:account-id:document/document_name' ssm:CreateAssociation'アクションを実行します。スタックランチャーに新しいIAMポリシーを作成する権限を与えたくない場合は、ポリシーを別のスタックまたはAWSコンソールで作成し、インスタンスプロファイルのARN( 'arn:aws:iam :: account:instance -profile/instance-profile-name')をLaunchConfigurationに直接追加します。 – wjordan