web-dev-qa-db-ja.com

EU-WEST-1リージョン上の1つのEC2インスタンスのみにアクセスするためのAWS Amazon IAMユーザーポリシー

AWSのドキュメントを読みましたが、役に立ちませんでした...少なくとも私にとっては。 IAMとEC2のユーザーポリシーについて読みました。

ユーザーに完全なアクセス権(または許可されたいくつかのアクション)を1つのec2インスタンスでのみ許可したい。

私が使用しているリージョンはeu-west-1(Ireland)です。私はこのポリシーを作りました:

{
  "Version": "2012-10-17",
  "Statement": [{ 
    "Effect": "Allow",
    "Action":   "ec2:*", 
    "Resource": "arn:aws:ec2:eu-west-1:ACCOUNT_ID:instance/INSTANCE_ID"
  }]
}

ユーザーとしてログインすると、権限がないことがわかります。

  • 実行中のインスタンスを説明する権限がありません
  • Elastic IPを説明する権限がありません
  • ボリュームを説明する権限がありません
  • スナップショットを説明する権限がありません
  • キーペアを説明する権限がありません
  • ロードバランサーを説明する権限がありません
  • プレースメントグループを説明する権限がありません
  • セキュリティグループを説明する権限がありません

リソース属性に次のポリシーを適用すると、

「リソース」:「arn:aws:ec2:*」

Okですが、ユーザーがすべてのEC2インスタンスにアクセスできるため、必要なものではありません。

これがAWSのバグなのか、eu-west-1リージョンに問題があるのか​​、このポリシーがまだサポートされていないのか知りたいのですが?あるいは、私が間違っているかもしれません。もしそうなら、どうすればいいですか


19
Tedi Çela

最近導入された EC2およびRDSリソースのリソースレベルのアクセス許可 は、まだすべてのAPIアクションで使用できるわけではありませんが、AWSは徐々に追加しています。この注記を参照してください Amazon EC2のAmazonリソースネーム

重要現在、すべてのAPIアクションが個々のARNをサポートしているわけではありません。追加のAmazon EC2リソースの追加のAPIアクションとARNのサポートを後で追加します。どのAmazon EC2 APIアクションでどのARNを使用できるか、および各ARNでサポートされている条件キーについては、「 Amazon EC2 APIアクションでサポートされているリソースと条件 」を参照してください。

この記事の執筆時点では、すべてのec2:Describe*アクションが実際にまだ存在しないことがわかります Amazon EC2 APIアクションでサポートされるリソースと条件

上記の簡潔な概要と、IAMポリシーで使用できるARNおよびAmazon EC2条件キーの詳細については、 Amazon EC2リソースに必要なアクセス許可をIAMユーザーに付与する も参照してください。特定のAmazon EC2リソースを作成または変更する権限をユーザーに付与するステートメント-このページでは、AWSが2014年に追加のアクション、ARN、条件キーのサポートを追加することにも言及しています

考えられる回避策/代替策

個別のリソースレベルでアクセスを制限する代わりに、またはそれに加えて、 ConditionsPolicy Variables と組み合わせて使用​​することも(また)ec2:Regionisサポートされている1つ Amazon EC2の条件キー -Describe*アクションを具体的に処理するポリシーとポリシーを組み合わせることができます。このようなもの(テストされていない):

{
  "Statement": [
    {
      "Action": [
        "ec2:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ec2:Region": "eu-west-1"
        }
      }
    }
  ]
}

これにより、ユーザーはeu-west-1内のallインスタンスを表示できるようになりますが、元のポリシーフラグメントにより、リソースレベルの権限(たとえば、インスタンスの作成/終了など)。

タグに基づいてEC2でインスタンスを非表示にする方法-IAMを使用する方法 への関連する回答のセクションPartial Workaroundでさらに別の可能なアプローチの概要を説明しました。

幸運を!

9
Steffen Opel