プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • AWS
  • 【AWS】「ルートユーザー」、「IAMユーザー」、アカウント発行のデザインパターン
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【AWS】「ルートユーザー」、「IAMユーザー」、アカウント発行のデザインパターン

12.30

  • miyabisan2
  • コメントを書く

この記事は3分で読めます

AWSのユーザーには下記の2種類があります。

  • ルートユーザー
  • IAMユーザー(アイアムユーザー、作業用ユーザー)

ルートユーザー

特徴

全てのAWSサービスの全てに完全なアクセス権を持ちます。

用途

  • 基本的には使用しません。
  • アカウントの設定変更
  • 解約

注意点

ルートユーザーにIPアドレス制限をする機能はないです。2要素認証(MFA)の設定をすることを強く推奨されています。

発行のデザインパターン

1人では作業できないようにする。

ルートユーザーはパスワードの他にMFAの2段階認証にするのが良いと言われていますが、パスワード入力を作業者がやり上長がMFA実行をするというように2段階認証にするようにします。

上長はパスワードを知らないですし、作業者はMFA認証ができないのでこの二人が揃わないとrootアカウントを使用することができるようにします。そうすることで内部犯行の行使を防止することができます。

IAMユーザー(アイアムユーザー、作業用ユーザー)

IAMユーザーの管理はセキュリティの要になります。

特徴

  • 認証やアクセス権を個別に設定できます。
  • 作業者ごとに個別に権限を設定できます。
  • 一般的な作業はこのユーザーで行います。
  • 誰がどんな作業をしたか作業ログが記録されるようになる。

用途

  • Webコンソールや、APIを通じてのAWS操作に使用します。
  • 各ユーザーに対して操作を許可する(しない)サービスを定義します。

例

  • 開発者ユーザーはサーバー構築権限を与えるが、ディレクターユーザーにはサーバー閲覧権限のみ与える等。
  • ネットワーク管理者にはネットワーク権限(セキュリティグループ、VPC、Route53等)のみ持たせる。

認証方法

IAMユーザーの認証方法には2種類あります。なお、認証をより安全にするためにMFA(多要素認証)をオプションで利用することが可能です。

  • ID・パスワードを使用した認証
  • アクセスキーID・シークレットキーを使用した認証

ID・パスワードを使用した認証

AWSマネジメントコンソールへのログインに使用します。

アクセスキーID・シークレットキーを使用した認証

プログラムやコマンドライン等からのAPI操作に使用します。

IAMアカウント発行のデザインパターン

本番環境のアカウント権限を「リリース後」と「リリース前」とで分ける。

アカウントにはdev/stg/prodctionとあると思いますが、リリース前は作業しやすいように全アカウントの権限を多く付与しますが、リリース後はproductionアカウントのみ強めてセキュリティを担保します。

「重要情報を見れるIAM」と「重要情報を見れないIAM」に分ける。

CloudWatchも2つ作り、「重要情報をマスクしたログ」と「重要情報をマスクしてないログ」に分ける。IAMもそれぞれにアクセス権限をつけて適したアクセスが行われるようにする。

単なる作業者であれば「重要情報を見れないIAMアカウント」を使ってログインし、顧客情報を使用しての調査が必要なあ場合などは「重要情報を見れるIAM」でアクセスします。もちろん、重要情報を見れるIAMの場合は例えば、セキュリティルームの中だけしかアクセスできないなどの対策を練る必要があります。

 

 

MFA認証(認証オプション)の種類

  • ハードウェアMFA
  • 仮想MFA

IAMユーザーの設定

マイアカウント→IAM ユーザー/ロールによる請求情報へのアクセス

IAMユーザーが請求情報を確認できるか編集できます。

サービス→IAM

IAMユーザーを作成できます。

ポリシー

ポリシーには種類があります。

  • 管理ポリシー
  • インラインポリシー

インラインポリシー

管理ポリシーができる前の古い機能です。複数のグループやユーザー間で使用することが可能です。同じ設定をグループごとに何度も記述する必要があるので負荷が高くなります。極力使わないようにしましょう。

管理ポリシー

特定のグループやユーザーでのみ利用できる新しい機能です。なお、管理ポリシーにも2種類あります。2種類を組み合わせて権限を付与することが重要です。

AWS管理ポリシー

AWSではデフォルトで選択できるポリシーがいくつか存在します。ユーザーによって適切な権限を設定するようにしましょう。JSONで記述します。AWSが提供するビジュアルエディタにより選択式で作成することも可能です。

ポリシー名 説明
AdministratorAccess 一番強い権限です。
DeveloperPolicy EC2やRDSの全操作ができます。
DirectorPolicy EC2やRDSの読み取りができます。
AmazonS3FullAccess S3の全操作ができます。

カスタマー管理ポリシー

各ユーザーが独自に作成したポリシー、IAMユーザーやグループ、ロールを付与します。

JSONの記述

Version

バージョンが二つあります。

  • 2008-10-17
  • 2012-10-17

記述しない場合は「2008-10-17」が適用されます。なので、必ず明示的に「2012-10-17」と最新バージョンを指定するようにしましょう。

Statement

ポリシーの主要エレメントで必須になります。

Action

どのサービスの

Resource

どういう機能や範囲の

Effect

許可(Allow)や拒否(Deny)

Condition

IPアドレス制限をかける等の詳細設定をすることが可能です。IPアドレスを指定する場合はグローバルIPを指定するようにしましょう。

スポンサーリンク
  • 2020 12.30
  • miyabisan2
  • コメントを書く
  • AWS
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 11.28

    【AWS】コンテナアーキテクチャパターン

  2. 2020 06.09

    【AWS】VPC「ルートテーブル」や「インターネットゲートウェイ」、「NATゲートウェイ」について

  3. 2019 11.24

    【AWS】「Amazon EC2インスタンス」、「セキュリティグループ」や「ACL」について

  4. 2020 12.28

    【AWS】EC2「ユーザーデータ」、「インスタンスメタデータ」について

  5. 2020 11.09

    【AWS】「SQS(Simple Queue Service)」、Step Functionsとの使い分けなど

  6. 2021 01.11

    【AWS】「AWS CLI」、初期設定、コマンドの基本、環境別設定(prod、dev)

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【AWS】「ECR」、「App Runner」など

【AWS】「Fargate」について

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー