LoginSignup
1
0

More than 1 year has passed since last update.

【AWS】IAMユーザの作成

Posted at

IAMとは

AWS Identity and Access Manegement の略
AWSのサービスを利用するための権限を管理し、各サービスへのアクセスを制御する仕組み

IAMは「」が「どのAWSのサービスやリソース」に「どのような条件」でアクセスできるかを指定できるサービスです。
(AWS公式概念図では、"Who"(誰), "Can access"(アクセス条件), "What"(サービスやリソース)の3要件として提示)

IAMはAWSのセキュリティ確保において必要不可欠な仕組みであり、
知らずに使っているとセキュリティリスクを増大させる事も多いサービスのため、
AWSのクラウド利用において最初に学ぶべき分野の一つなのではないでしょうか。

※最近だと、アカウントの乗っ取りにより、
ビットコインのマイニング作業に使用されてしまって
知らぬ間に多額の請求があったなんて事例もあるみたいです。
もちろん被害総額はとんでもない金額......自分も気をつけます。

はじめに

AWSのアカウントを作成するとルートユーザーが作成されるが、
ルートユーザは全権限を持つ最強のユーザーである。
アカウントの変更や解約なども操作可能のため、権限を制限したIAMユーザーを作成する。

Identity and Access Management (IAM) では、AWS のサービスやリソースへのアクセスを安全に管理できます。IAM を使用すると、AWS のユーザーとグループを作成および管理し、アクセス権を使用して AWS リソースへのアクセスを許可および拒否できます。

IAM は追加料金なしで AWS アカウントに提供されている機能です。料金は、お客様のユーザーが使用した他の AWS サービスに対してのみ発生します。(AWSより引用)

では早速作成していきましょう。

IAMユーザーの作成

AWSアカウントの開設

AWSアカウント開設

IAMユーザー作成

  • コンソール画面でIAMを選択
    image.png

  • 左のメニューから『ユーザー』を選択し、『ユーザーを追加』
    image.png

  • IAMユーザー名を入力、『パスワード - AWSマネジメントコンソールへのアクセス』にチェックし次のステップへ
    (今回のユーザ名は、tese-user)

自分でないユーザーがアクセスすることを想定してのIAMユーザー作成のため
『自動生成パスワード』『ユーザは次回のサインインで新しいパスワードを作成する必要があります』を選択して、その人が自分でパスワードを設定できるようにします。

image.png

  • 既存のポリシーを直接アタッチ、AdministratorAccessにチェックし次のステップへ

今回はAWSが用意した既存のポリシーを直接アタッチを選択します。
その中でも今回は、アクセス権限の強いAdministratorAccessを選択します。

※ポリシーに関しても最後に説明を載せます。

image.png

  • タグを追加し(任意)次へ

今回は特に何もいじりません。

image.png

  • 内容を確認して『ユーザーの作成』

最後に確認画面が表示されます。
問題なければ『ユーザーの作成』をクリックします。

image.png

  • パスワードをコピーし、コンソールへサインイン
    image.png

パスワードの変更を求められるので、新しいパスワードに変更したら完了。
MFAを使用した多要素認証(2段階認証)の設定手順



AWS管理ポリシー

AWS管理ポリシーですが、実際の選択画面は以下のようになっています。

大きく分けると、「タイプ」の列の内容に合わせて

  • ジョブ機能の管理ポリシー
  • サービスごとの管理ポリシー

の2種類に分類されます。

AWS管理ポリシー

・ジョブ機能の管理ポリシー

ジョブ機能の管理ポリシーは、管理者ユーザー用のAdministratorAccessパワーユーザー用のPowerUserAccessを始めとし、複数のサービスをまとめた管理ポリシーが定められています。

・サービスごとの管理ポリシー

サービスごとの管理ポリシーは、AWSのサービスごとに書込、読取などの権限を個別設定できるポリシーです。

ポリシーの構造

上記3種類のポリシーはいずれも、JSONファイルで記述されています。

一例で、S3の読取のみが許可されるAWS管理ポリシーAmazonS3ReadOnlyAccessは、以下のように記述されています。

AmazonS3ReadOnlyAccess
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3-object-lambda:Get*",
                "s3-object-lambda:List*"
            ],
            "Resource": "*"
        }
    ]
}

ポリシーが記述されたJSONの最上位は、以下のフィールドが記述されます

  • Version → ポリシーの記述言語のバージョン(基本的には2012/10/17で固定)
  • id → ポリシーの識別子(オプションのため、上記AmazonS3ReadOnlyAccessでは記述なし)
  • Statement → ポリシーの詳細を記述するフィールド

Statementフィールドの下には、具体的な条件を記述する必要があります。

  • Effect → アクセス権限の種類(基本的には"Allow"(許可)か"Deny"(拒否))
  • Action → 許可または拒否するアクション(アスタリスク*は以下の全アクションが対象となる)
  • Resource → アクションの設定対象となるリソース一覧(S3の場合、バケット名等を指定)
  • Sid → 複数Statementが存在する場合の識別子(上記AmazonS3ReadOnlyAccessでは記述なし)
  • Condition → ポリシー適用対象を絞るための追加条件(上記AmazonS3ReadOnlyAccessでは記述なし)

カスタマー管理ポリシーやインラインポリシーを作成する際には、このJSONファイルの編集が必要です。

今まで解説した内容は

  • IAMは「誰」(プリンシパル/アイデンティティ)が「どのAWSのサービスやリソース」に「どのような条件」(ポリシー)でアクセスできるかを管理
  • 上記アクセス制御を、ポリシーをプリンシパルに付与する事で実現
  • アクセス主体が人なら「ユーザー」、アクセス主体がサービスやアプリケーションなら「ロール」

が前提です。
これらが成り立たない例外的なポリシーも存在するのですが、それはまた理解が深まったら備忘録に記します。

お疲れさまでした。

参考サイト
AWS

1
0
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
1
0