バナー画像

AWSのIAM(Identity and Access Management)についてまとめています。

AWSのIAMは、AWSサービスとリソースへのアクセス管理

AWS Identity and Access Management (IAM) は、AWS のサービスやリソースへのアクセス管理機能です。。IAMを使って、AWS のユーザーとグループの作成が可能。アクセス権を設定して、AWS リソースへのアクセス許可や拒否が可能です。

関連)AWS IAM(ユーザーアクセスと暗号化キーの管理)| AWS

IAMを利用するのに追加料金は不要です。IAMは、AWS アカウントに無料で提供されている機能なんですね。IAMを使うには、AWSマネジメントコンソールを開き、全てのサービス→セキュリティ、ID、及びコンプライアンス→IAMから使用開始します。

IAMダッシュボードから、アクセス管理とアクセスレポート機能を実行できます。

【関連記事】
AWS各種サービスのユーザー管理を簡単に!「AWS IAM」

AWS IAMのアクセス管理機能

AWS IAMダッシュボードから、ユーザやグループの追加、アクセス権限を既存のユーザからコピー、アクセスのポリシーをユーザに適用(アタッチ)ができます。大量のポリシーがあらかじめ用意されています。

IAMでアクセス権限を設定すると、ユーザーの AWSのサービス APIへのアクセスや、AWSの指定リソースへのアクセスをコントロールできます。アクセス権限には、利用できる日時の指定や、アクセス元IPアドレスの指定、SSL を使用しているかどうか、多要素認証デバイスで認証済みかなどの条件追加も可能です。

権限の高いユーザに対しては、他要素認証(Multi-Factor Authentication=MFA)の設定が可能です。追加コストは不要で、ユーザー名とパスワードによる認証情報を強化。セキュリティ機能である AWS MFA を使用して、AWS 環境を保護します。具体的には、ユーザーが有効な MFA コードを入力することで、ハードウェア MFA トークンまたは MFA 対応のモバイルデバイスを所有している証明になります。ワンタイムパスワードのようなものです。

AWS IAMでアクセスを分析する

IAMのもうひとつの機能として、アクセスを分析するアクセスレポート機能があります。

アナライザーを設定することでアクセスレポート機能が開始します。IAMのアクセス分析は、AWS環境全体を対象とすることができ、セキュリティチームや管理者はポリシーが正しく適用されて、許可したアクセスのみを提供していることを検証できるんですね。

ポリシーを改良して、使用中のサービスのみにアクセスすることも可能。これにより不要な権限を付与することなく、必要最小限の権限での運用が可能です。

IAM のアクセス権管理はをActive Directoryなどと統合できます。すでに社内ネットワーク上で従業員にディレクトリサービスでIDが付与されている場合、IDを使って従業員やアプリケーションにアクセス権限を付与できるんですね。なお、統合にはSAML 2.0 をサポートする ID 管理ソリューションであることが条件になります。Amazon のフェデレーションサンプル (AWS Console SSO や API フェデレーション) も用意されています。

IAMユーザのアクセスキーの管理

AWSのCLIやAPIを使用する場合、AWSのアクセスキーが必要になります。永続的なアクセスキーを発行する以外に、期限付きの一時的なアクセスキー発行をおこなって、よりセキュリティを高めることができるんですね。

関連)IAM ユーザーのアクセスキーの管理 – AWS Identity and Access Management

なお、アクセスキーを発行するためには以下のCreateOwnAccessKeysという権限が必要になります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "CreateOwnAccessKeys",
            "Effect": "Allow",
            "Action": [
                "iam:CreateAccessKey",
                "iam:GetUser",
                "iam:ListAccessKeys"
            ],
            "Resource": "arn:aws:iam::*:user/${aws:username}"
        }
    ]
}

 

AWS APIを使ってアクセスキーの管理が可能です。IAMユーザのアクセスキーを管理するには、以下のオペレーションを呼び出すことになります。

AWSのオペレーションは、アクセスキーを登録したAWS CLIから操作が可能です。

【関連記事】
AWS CLIのインストール方法 AWSアクセスキーの登録と疎通確認

IAMのクロスアカウントアクセス(アクセスの委任)

IAMのロールを使って、所有する異なるAWSアカウントにあるリソースへのアクセスを委任することが可能です。これにより、アカウントごとにIAMユーザを作成する必要がなくなり、アカウントからいったんログアウトして再度サインインするような「アカウントの切り替え」の手間を省けます。

関連)IAM チュートリアル: AWS アカウント間の IAM ロールを使用したアクセスの委任 – AWS Identity and Access Management

ロールを作成するには、以下のようなポリシー(JSON形式)を作成して、ロールにアタッチします。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:ListAllMyBuckets",
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
       ],
      "Resource": "arn:aws:s3:::productionapp"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::productionapp/*"
    }
  ]
}

AWS IAMのまとめ

ポテパンダの一言メモ
  • AWSのIAMは、AWSへのアクセス管理と分析が可能
  • IAMは、追加料金無しで、無料で利用できる
  • IAMでは、一時的なアクセスキーの発行やロールによるアクセスの委任が設定可能

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。