酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

AWSの IAM & STS の基礎知識

ちょっとマニアックですが、AWSのIAMやSTSについてどういうものかを調べたので、完全俺得メモです。 理解が間違ってそうなところがあればぜひ twitterとかで突っ込んでくださいw


IAM とは?

IAM とは - AWS Identity and Access Management

IAMとは「AWS Identity and Access Management」の略で、AWSのアカウントが持つ権限を一部他人に付与できる仕組み。

IAM の機能

機能としては次のようなものがある。

- AWS アカウントへのアクセスの共有できる
  - 他の人に「自分のAWS」のリソース管理や利用のための権限を付与
- アクセス権限を詳細に設定できる
  - どのリソースをどこまで利用できるかといったことを細く設定できる
- 多要素認証(MFA)
  - パスワード/アクセスキー以外にも、特別に設定されたデバイスからのコードの入力も必要にすることができる
- ID フェデレーション
  - 他の認証に基づいたユーザーに対して、自分のAWSアカウントに対して一時的なアクセス権を付与できる
- 保証のための ID 情報
  - IAM IDに基づいたログを AWS CloudTrail で残すことができる
- 多くの AWS サービスと連携
  - 数多くの AWS サービスがIAMと連携している

IAM へのアクセス

次のいずれかの方法でIAMを使うことができます。

- AWS マネジメントコンソール
- AWS コマンドラインツール
  - AWS Command Line Interface (AWS CLI)
    - AWS サービスを管理するための統合ツール
    - **[aws/aws-cli - GitHub](https://github.com/aws/aws-cli)**
  - AWS Tools for Windows PowerShell
    - Windows PowerShell スクリプト環境でAWSサービスを管理できる
- AWS SDK
  - Java、Python、Ruby、.NET、iOS、Android などのライブラリとサンプルコードで構成された ソフトウェア開発キット(SDK)
- IAM HTTPS API
  - サービスに HTTPS リクエストを直接発行できる IAM HTTPS API

IAMの ユースケース

Security Token Service(STS)

STSとは、AWS Security Token Serviceの略。AWSリソースへのアクセスを制御できる一時的な セキュリティ認証情報を持つ、信頼されたユーザーを作成・提供するための仕組みです。

一時的セキュリティ認証情報 - AWS Identity and Access Management

IAMユーザーが使用できる長期的なアクセス情報と似ているが違いは次の点。

- 使用期限が短い (数分〜数時間で設定できる)
- 一時的セキュリティ認証情報はユーザーとともに保存されることはなく、ユーザーのリクエストに応じて動的に生成される

このSTSを使うメリットは次の通り。

- 一時的に使うアプリに対して、長期のセキュリティ情報を配布しなくていい
- AWS の ID を定義せずに AWS リソースへのアクセスを提供できる

フェデレーションとは

フェデレーションは「組織間の結合という意味」。フェデレーションとは、イントラネットを超えて 他社のシステムやアプリケーション、サービスとの間でシングルサインオン(SSO)やWebサービスの 処理結果をほかのサービスに受け渡す技術、もしくはそれを実現する考えのことである。

ID管理をスッキリさせるIAMのお役立ち度:“フェデレーション”が企業間連携の今後を変える

認証フェデレーション

ウェブ ID フェデレーションとは、Facebook、Googleアカウントを利用して、ユーザーにサインインしてもらうことができる。 その認証情報をSTSによってAWSアカウントのリソースを使うための一時的なアクセス権に変換できる。

ウェブ ID フェデレーションを使用すると、アプリケーションで IAM ユーザーアクセスキーのような長期的なセキュリティ認証情報を配布する必要がないので、AWS アカウントの安全性の維持に役立ちます。

あとがき

ちなみに、興味をもったキッカケの記事。これは確かにすごい便利そう。

Rails - AWS 管理コンソールを社内認証と SSO 化させる #m3dev - Qiita

次読む記事

Creating a URL that Enables Federated Users to Access the AWS Management Console (Custom Federation Broker) - AWS Identity and Access Management


おすすめの書籍