0
3

More than 3 years have passed since last update.

AWSコンソールへのログインに、IP制限とMFA制限をかける

Posted at

マネジメントコンソールの運用

よくあるポリシーとして、多要素認証の設定強制&IP制限をかけることがあります。

今回はそのポリシーと私自身が注意していることを記載します。

概要

マネジメントコンソールはIAMユーザを使用する。

IAMはAWSの各種リソースへのアクセス許可を管理するサービスであり
結構細かい権限まで、コードベース(JSON, IaCならYAML定義も可)で管理できる。

各権限はIAMポリシーと呼ばれる単位で定義ができ、作成した後IAMユーザに割り当てる。
通常は同様権限のユーザが複数存在するため、IAMグループを使用して管理する。

例;
インフラチーム;Admin権限
開発チームA;全基本サービスの読み書き権限
開発チームB;EC2,Code系サービスのみ読み書き権限
テストチーム;Read権限のみ
監査チーム;セキュリティサービスのみRead権限
など

運用方法によるが、基本IP制限、MFA強制のポリシーは全員に対して有効にさせる必要があるので、
IAMグループにそれぞれ割り当てるか、共通に属する専用のグループを作成して、全ユーザに属させることで実現。

使用するIAMポリシー

IP制限

※適当なプライベートIPアドレスに変えてる

{
  "Version": "2012-10-17",
  "Statement": [
      "Effect": "Deny",
      "Action": "*",
      "Resource": "*",
      "Condition": {
        "NotIpAddress": {
          "aws:SourceIp": [
            "10.20.20.20/28",
            "10.10.10.10/32"
          ]
        }
      }
    }
  ]
}

「指定IPからのアクセス以外は、全てのアクションを拒否する」

前提として、このポリシーに加えて必要な権限のみをアタッチする運用。

単純にこのポリシーのみだと
指定したCIDRの範囲でアクセスすれば、全リソースへのアクセスを許可する。

例えばS3の権限のみポリシーがアタッチされているユーザであれば、
指定IPからのアクセスであればその権限が使用可能。

IAMのポリシーは、どんな場合でもDenyが最優先となる。
他のポリシーで拒否がかかればそのDenyポリシーが優先される。

MFA強制

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "NotAction": [
                "iam:CreateVirtualMFADevice",
                "iam:EnableMFADevice",
                "iam:ResyncMFADevice",
                "iam:DeactivateMFADevice",
                "iam:DeleteVirtualMFADevice",
                "iam:ListMFADevices",
                "iam:ListVirtualMFADevices",
                "iam:ListUsers"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "aws:MultiFactorAuthPresent": false
                }
            }
        }
    ]
}

「MFAが有効でない場合は、MFA関連以外の全てのアクションを拒否する」

ちなみに拒否状態だとこういったコンソール画面になります。
スクリーンショット 2020-10-27 11.28.08.png

Tips

IAMの権限を設定したけど適切かどうか検証するのが大変ですが
IAM Policy Simulatorを使用すると便利です。

IAMのグループ画面 > アクセス許可 > ポリシーのシミュレート 等から使用できます。

スクリーンショット 2020-10-28 14.38.25.png

また、注意点として、Adminユーザが自身のアクセス権限を変更する際は
もう一人のAdminユーザを別に用意しておきましょう。。

間違うと自分の権限をロックしてしまってrootを引っ張ってくる事態になりかねないです。

まとめ

IAMは絞ろうと思えば極限まで絞れます。
ただ、はじめは検証を重ねて時間がかかること多いです。

開発段階では無理せずAWSマネージドポリシーを使用しつつ、
余裕があるときに絞っていく方針が良いのではと思います。

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3