2016-05-30 10 views
0

私は、IAMユーザーまたはロールが(例えば、EC2インスタンスのための)リソースのセットを作成し、(削除、更新など)リソースのみを管理することを可能にするポリシーを作成します。私はIAM変数、ワイルドカード、および/または条件を使用してこれを達成できることを願っていますが、どういうことがわかりません。 EC2と同じスタックで作成されたSSM文書のCreateAssociation:AWSポリシーリミテッドは、管理者

私の方針は、私は、SSMを行うためのEC2インスタンスプロファイルを付与したい場合はどのようなさらに、この理想的

  { 
      "Effect": "Allow", 
      "Action": [ 
       "ec2:*" 
      ], 
      "Condition": [ 
       { "Created_By_The_Instance_Profile_In_The_CFN_Stack_That_Created_The_EC2Instance}" } 
      ] 
      } 

、ようになりますインスタンス自体?言い換えれば、私はEC2インスタンスとのスタック、およびIAMインスタンス・プロファイル、IAM役割、およびSSMの文書を持っていると私はUserDataを経由して、起動時にCreateAssociationにEC2インスタンスをしたいです。スタックを起動するユーザーは、これらのリソースを作成するためのアクセス権を持ちますが、新しいポリシーを作成することはできません(効果的に管理者にする)。私は先に時間の役割+ポリシーを作成し、スタックの作成者には、作成したIAMインスタンスプロファイルの役割にこの役割を添付する能力を付与します。

ので、前もって、I(管理者)、「限定された管理者」デプロイヤ(DeployerRoleでIAMユーザーが)を起動することができるはずな

"DeployerRole": { 
     "Type": "AWS::IAM::Role", 
     "Properties": { 
     "AssumeRolePolicyDocument": { 
      "Version": "2012-10-17", 
      "Statement": [ 
      { 
       "Effect": "Allow", 
       "Principal": { 
       "Service": [ 
        "ec2.amazonaws.com", 
        "lambda.amazonaws.com" 
       ], 
       "AWS": "*" 
       }, 
       "Action": [ 
       "sts:AssumeRole" 
       ] 
      } 
      ] 
     } 
     } 
    }, 
    "PolicyManagerPolicy": { 
      "Type": "AWS::IAM::ManagedPolicy", 
      "Properties": { 
      "Description": "Allows CFN deployer to attach and detach required policies.", 
      "PolicyDocument": { 
       "Version": "2012-10-17", 
       "Statement": [ 
       { 
        "Effect": "Allow", 
        "Action": [ 
        "iam:AttachRolePolicy", 
        "iam:DetachRolePolicy" 
        ], 
        "Resource": "*", 
        "Condition": { 
        "ArnEquals": { 
         "iam:PolicyArn": [ 
         "The_Policy_Arn_I_Want_To_Create" 
         ] 
        } 
        } 
       }, 
       { 
        "Effect": "Allow", 
        "Action": [ 
        "iam:CreateRole" 
        ], 
        "Resource": "*" 
       } 
       ] 
      }, 
      "Roles": [ { "Ref": "DeployerRole" } ] 
      } 
     } 

として政策と役割を作成含むスタック:

  • EC2インスタンス
  • IAMインスタンス
  • IAMロールのプロフィール私がThe_Policy_Arn_I_Want_To_Createを必要とする3210 SSMドキュメント

  • はONLYスタックによって作成されたSSMドキュメントでCreateAssociationのことができるようにするために、スタックによって作成されたONLY EC2インスタンスを許可します。タグを使用しても問題ありませんが、SSMドキュメントのリソースはタグを使用できないため、どうすればいいですか?

答えて

1

ec2は、インスタンスを作成したアカウントについてはわかりません(CloudTrailを有効にすると、アカウントが作成されている可能性があります)。ユーザーアカウントを使用してEC2インスタンスを作成し、

"Condition": {"StringEquals": {"ec2:ResourceTag/<tag where the username will be>": "${aws:username}" 
+0

など、あなたのポリシーが更新され、質問をしてくださいを参照してください。 – Jeff

関連する問題