AWS IAM(IAMユーザー、IAMグループ、IAMポリシー、IAMロール)

公開日時:2020年12月08日 / 最終更新日時:2021年11月20日

IAM(Identity and Access Management)とは AWS の各リソースに対する認証認可の機能を提供するサービスです。

 

IAM の仕組みについて

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/intro-structure.html

IAMユーザー

IAM ユーザーは AWS で作成するエンティティであり、AWS とやり取りするためにこれを使用するユーザーまたはアプリケーションを表します。

AWS のユーザーは名前と認証情報で構成されます。

IAMグループ

IAM ユーザーグループとは、IAM ユーザーの集まりです。

ユーザーグループを使用すると、複数のユーザーに対してアクセス許可を指定でき、それらのユーザーのアクセス許可を容易に管理することができます。

 

IAMポリシー

IAMロール

IAMユーザーやグループやポリシーはどのようなものかすぐに想像できると思いますが、IAMロールが若干複雑な概念になります。

 

今まで AWS の公式サイトや BlackBelt などで IAM について勉強してきましたが、正直あいまいな理解で終わっていました。しかし以下のサイトで IAM ロールの説明をしていますが、「IAM ロールとはお面のようなものである」という説明が一番イメージできてしっくりときました。

 

IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた

https://dev.classmethod.jp/articles/iam-role-passrole-assumerole/

 

 

実際に IAM ロールを作成してみます。

IAM のダッシュボードに移動し左側ペインより「ロール」をクリックします。

 

 

 

「ロールを作成」ボタンをクリックします。

 

 

 

「ロールの作成」画面を確認すると、以下の4つの「信頼されたエンティティ」を選択できます。

 

 

 

IAM ロールに対してポリシーをアタッチできます。下図は例として「AmazonS3ReadOnlyAccess」ポリシーをアタッチしています。

 

 

 

IAM エンティティ

AWS によって認証に使用される IAM リソースオブジェクトです。

これらには、IAM ユーザーおよびロールが含まれます。

 

ルートユーザー

■ルートユーザーとは

 

■ルートユーザーしかできないこと

※CloudFront のキーペアを作成するが非推奨になっているのがよく分かりません。

 

 

■Access Advisor について

 

 

■リソースアクセス制御

 

【参考】リソースタグを使用した AWS リソースへのアクセスの制御

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_tags.html

 

 

 

署名付き URL と署名付き Cookie を作成できる署名者の指定

https://docs.aws.amazon.com/ja_jp/AmazonCloudFront/latest/DeveloperGuide/private-content-trusted-signers.html#private-content-creating-cloudfront-key-pairs

 

 

 

■MFA(多要素認証)

(IAMユーザーの場合)

 

 

(ルートアカウントの場合)

 

 

■SSL 証明書の管理について

 

 

アクセスレベルについて

 

IAM データベース認証

 

 

 

IAM でのセキュリティのベストプラクティス

IAM でのセキュリティのベストプラクティス

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html

 

 

 

IAM のクロスアカウントアクセス

IAM ロールを使用して、別の AWS アカウントにあるリソースへアクセスさせることができます。

特定の AWS アカウントにあるリソースを別の AWS アカウントのユーザーと共有します。

例えば、企業 A がサービスを顧客 B に提供していて、更に企業 A は顧客 B のEC2 インスタンスのログなどを必要するとします。

その場合、顧客 B にてクロスアカウントアクセス用の IAM ロールを作成して、企業 A がその IAM ロールを引き受けます。

それによりアカウントが異なっていても安全に外部からアクセスさせることができるようになります。

 

 

 

SAML(Security Assertion Markup Language)

AWS は SAML 2.0 (Security Assertion Markup Language)を使用した ID フェデレーションをサポートしています。

SAML は、多くの ID プロバイダー (IdP) により使用されているオープンスタンダードです。

この機能はフェデレーティッドシングルサインオン(SSO)を有効にします。

SAML を利用すると、組織内の全員について IAM ユーザーを作成しなくても、ユーザーは AWS マネジメントコンソール にログインしたり、AWS API オペレーションを呼び出したりできるようになります。

 

SAML は Wikipedia によると OASIS で標準として策定されたマークアップ言語で、主にシングルサインオンやID連携で利用されているとあります。

SAML とは言語であり、シングルサインオンを実現する場合に利用します。

上でも例にあるように一般的な企業では AWS にログインする際にはすでにある Active Directory のアカウントとパスワードは利用せずに、別途作成した IAM ユーザーとパスワードを設定してログインしてもらっていますが、SAML を利用することで Active Directory で作成したアカウントとパスワードでそのまま AWS の管理コンソールにログインして利用できるようになります。

 

 

 

NotPrincipal について

■AWS JSON ポリシーの要素: NotPrincipal

https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/reference_policies_elements_notprincipal.html

"Effect": "Deny" で明示的にすべて拒否してから例外を与えていきます。

ただし、アクセスを許可されてはいないので、別途明示的に許可("Effect": "Allow")の設定をする必要があります。

 

■例


    "Version": "2012-10-17", 
    "Statement": [{ 
        "Effect": "Deny", 
        "NotPrincipal": {"AWS": [ 
            "arn:aws:iam::444455556666:user/Bob", 
            "arn:aws:iam::444455556666:root" 
        ]}, 
        "Action": "s3:*", 
        "Resource": [ 
            "arn:aws:s3:::BUCKETNAME", 
            "arn:aws:s3:::BUCKETNAME/*" 
        ] 
    }] 
}

 

上記の例では「arn:aws:iam::444455556666:user/Bob」が許可されたわけではなく、「拒否されていない」という意味になります。

その為、別途許可する必要があります。

 

 

 

 

 

AWS 認定試験の勉強方法

最近はコロナ禍という状況が影響しているのかどうか分かりませんが、勉強や学習意欲が非常に高くなっています。

インフラエンジニアとして AWS をメインに業務を行っていることもあり、毎日 AWS 認定試験の試験勉強をしています。

資格について IT エンジニアの場合は実績が重要なので資格は必要ないという意見もありますが、個人的には資格取得の勉強をすることにより

というメリットを感じています。

 

 

AWS 認定試験についは、Udemy を利用して飽きずに楽しく勉強しています。

世界最大級のオンライン学習サイトUdemy

 

■Udemy のメリット

大量に問題があるので、飽きずに楽しく勉強ができます。

私の場合はテキストを読んで勉強することが非常に苦手ですぐに飽きてしまします。

しかし Udemy の大量の模擬試験問題集を解き、解答を確認して、不明な点は AWS の公式サイトを確認して学習しているので、集中して学習を続けることができます。

とにかく大量の問題を解くことが私にとって学習を続けられる唯一の方法のような気がします。

 

ちなみに Udemy ではたまにプレゼント企画もやっています。

先日は1つの講座を申し込んだ際に「How to Learn: Effective Approaches for Self-Guided Learning」の講座を無料で受講することが出来ました。

 

 

 

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Secured By miniOrange