2

起動時にインスタンスを構成するアプリをセットアップしようとしていますが、そのアプリの API アクセスを可能な限り閉じたいと考えています。私の現在のポリシーは次のとおりです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "Stmt1388183890000",
      "Effect": "Allow",
      "Action": [
        "ec2:AssociateAddress",
        "ec2:CreateTags",
        "ec2:DescribeInstances",
        "ec2:RebootInstances"
      ],
      "Resource":"*"
    }
  ]
}

ただし、これにより、アプリは EC2 内のあらゆるものに対してこれらのアクションを実行できます。ec2 インスタンスでのアプリのアクションを、その特定のインスタンス、または同じ IAM ロールを持つすべてのボックスにロックダウンする方法はありますか?

4

2 に答える 2

3

はい、できます。最初に、問題の EC2 インスタンスにいくつかの関連する共通タグを割り当てる必要があります。次に、IAM ポリシーへのアクセスを を使用するインスタンスのみに制限しますec2:ResourceTag/tag-key

この例を確認してください:

上記の例の関連コードは次のとおりです。

    {
      "Effect": "Allow",
      "Action": "ec2:TerminateInstances",
      "Resource": "arn:aws:ec2:us-east-1:123456789012:instance/*",
      "Condition": {
         "StringEquals": {
            "ec2:ResourceTag/purpose": "test"
         }
      }
   }

このようにして、必要なタグを持つインスタンスのみにアクセスを制限できます。

タグ付けの詳細については、こちらをご覧ください。お役に立てれば。

于 2014-01-01T07:28:22.857 に答える
1

インスタンスが独自のタグを読み取るには、describe tags パーミッションも必要です。

"ec2:DescribeTags"
于 2016-02-10T09:55:58.550 に答える