2017-07-17 11 views
0

EC2でいくつかのテストを行っていますが、すでに実行中のインスタンスに対してパーミッションを制限し、他のインスタンスのみを記述したいとします(たとえば、新しいもの、その要求は拒否されるべきです)。実行中のEC2インスタンスに新しいパーミッションを割り当てる方法

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Deny", 
      "Action": [ 
       "ec2:DescribeInstances", 
       "ec2:DescribeImages", 
       "ec2:DescribeKeyPairs", 
       "ec2:DescribeSecurityGroups", 
       "ec2:DescribeAvailabilityZones", 
       "ec2:RunInstances", 
       "ec2:TerminateInstances", 
       "ec2:StopInstances", 
       "ec2:StartInstances" 
      ], 
      "Resource": "*" 
     } 
    ] 
} 

これは理論的には私がすでに実行中のインスタンスにログオンしています新しいインスタンスを作成するから私を防ぐ必要がありますが、そうでない(私はbotoライブラリを使用しています:

は、私は、次の方針にIAMロールを作成しテストの場合は ec2.run_instances())。

ご協力いただければ幸いです。

+0

* "理論的には、既に実行中のインスタンスにログオンしたときに新しいインスタンスが作成されないようにする必要があります。" *そのインスタンスのロール資格情報を使用している場合のみ。 *他の資格情報を使用している場合は、その資格情報で許可されているものをすべて実行できます。あなたは何をしているのか、ちょっと明確にすることはできますか? –

+0

@ Michael-sqlbotあなたは正確な問題を発見しました:)ありがとうございます。私はそれを受け入れることができるようにこれを答えに書いてください。 –

+0

私はこの問題を誤解したくありません。問題は、資格情報に関係なく、インスタンスロールポリシーがインスタンスからのすべてのAPI要求に影響を与えたと想定されていますか?または、インスタンスにいくつかのIAM資格情報を保存していて、それを実現せずに使用されていましたか? –

答えて

0

IAMインスタンスロールにアタッチされたポリシーは、インスタンスロールの資格情報を使用して行われた要求にのみ影響します。インスタンス上で実行されているコードからの要求であっても、他の資格情報(アクセスキーIDやIAMユーザーのシークレットなど)を使用した要求には影響しません。

予期せぬ特権がある場合は、別の資格情報セットがインスタンスに格納されており、開発者がそれを認識しないコードを使用している可能性があります。

EC2で実行されているコードで役割資格情報のみを使用し、インスタンスに他の資格情報を格納しないことをお勧めします。

関連する問題