SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

小規模な受託開発におけるAWS活用の勘所

小規模な受託開発におけるAWSインフラ環境~工数削減のポイントとセキュリティ

小規模な受託開発におけるAWS活用の勘所 第1回

受託ビジネスにおいて、特に考える必要のあるセキュリティへの考慮

 工数削減以上に重要な点として、システムやインフラ環境に対するセキュリティ対策があります。

 受託ビジネスでAWSを利用すると、主に顧客単位でアカウントを管理する必要があります。個々のシステムに関するセキュリティについては、それぞれのプロジェクトで考慮をする内容ですので、本稿では言及しません。

 AWSを利用する際の契約的なスキームとしては以下のケースがあります。

  1. 顧客や他ベンダーがAWSのアカウントを有しており、そのアカウント上でサービスを稼働させる
  2. 開発ベンダーがAWSアカウントを所有し、そのアカウントの運用保守契約を提携した上で、サービスを稼働させる

 1.の場合はアカウント取得側でユーザ管理を実施する/しないはケースバイケースですが、2.のようにAWSの運用を含めた業務を実施する場合、AWSを利用するユーザ(開発者、運用者)をアカウント毎に管理する必要があり、顧客数(N)、ユーザ数(M)に対してO(N×M)のオーダーのユーザー数を管理する必要があります。

 AWSアカウントにユーザを追加する場合、通常は開発者、運用者毎にIAMユーザを作成することが多いですが、O(N×M)ですので、AWSアカウントが多くなるとすぐに管理工数が大きくなります。

 例えば、20のAWSアカウントを管理しており、各アカウントに5名分のユーザを登録する場合、100IAMユーザを管理する必要があります。また、100IAMユーザの中には実態(人)が重複することが多々あり、一人の人に対する変更をする場合、最大O(N)のユーザの変更をする必要があります。

 また、ユーザ数が多くなることによる管理工数の増大以外にも。以下の問題点があります。

  • プロジェクトに対するアサインが変更した場合のユーザ登録削除の手間がかかる。
  • ユーザが放置された場合にセキュリティリスクがある
  • ユーザ毎に発行されたアクセスキーID/シークレットアクセスキー[*]が実際のサービスに組み込んでしまうケースがある(ユーザを削除するとサービスへアクセスできなくなる)。

[*] アクセスキー/シークレットアクセスキーについて

 AWS SDK、REST、またはクエリAPIオペレーションを使用している場合、プログラムによるAWSへのリクエストに署名するにはアクセスキーを使用します。

 AWSアカウント内のユーザ管理にはさまざまな方法がありますが、受託ビジネスのような顧客数(N)が大きくなり、N×Mのユーザの中で実施の人が重複することが多いケースでは、「SAML 2.0ベースのフェデレーション」が有効です。

AML2.0ベースのフェデレーションのイメージ
AML2.0ベースのフェデレーションのイメージ

 詳細は、本連載の中で解説していきますが、「SAML2.0ベースのフェデレーション」によって以下のようなことが実現できるようになります。

  • 紐づけられたIAMロールの権限を持つフェデレーテッドユーザとして、AWSマネージメントコンソールにログインする。
  • ユーザはIdP(Identiry provider、Active Directory/Active Directory Federation Serviceなど)で管理する。
  • ユーザはグループに所属させ、グループとAWSアカウント(+IAMロール)を紐付ける。
  • AWSはIdPを信頼し、IdPで認証、認可されたユーザをSTSによりIAMロールと紐付ける。

 結果として以下のメリットが享受できます。

  • AWSにログインするユーザをActive Directoryで一元管理することができる。
  • 任意のAWSアカウントとIAMロールをActive Directory内で紐づけできるようになる。
  • IdPのセキュリティを強化できる。
  • アクセスキーID/シークレットアクセスキーがサービスに埋め込まれる心配が低減する。

最後に

 本稿では、比較的小規模なフルスクラッチの業務システムをビジネスとし、開発を実施する際に参考となるAWSのアーキテクチャや工数のかかる工程、留意すべきセキュリティに関するポイントを解説しました。

 次稿以降で、以下について具体的な実践方法を含めて解説していきます。

  • Ansible/Vagrant/Packerを用いた開発環境、本番/ステージング環境の構築例
  • SAML 2.0ベースのAWSマネージメントコンソールへのフェデレーション(シングルサインオン(SSO))
  • とはいえ、新しい技術動向を取り入れたい。受託業務におけるサーバレス活用例

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
小規模な受託開発におけるAWS活用の勘所連載記事一覧

もっと読む

この記事の著者

塩飽 展弘(株式会社鈴木商店)(シワク ノブヒロ)

 株式会社鈴木商店 経営企画室室長。 大手通信事業者にて、SE、研究開発、経営企画等に従事後、2016年株式会社鈴木商店に入社。 営業、要件定義、開発(主にAWS関連インフラ)に従事後、現職。 AWS Certified Solutions Architect - Professional 鈴木商店HP Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11224 2018/11/28 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー