Amazon Web Services ブログ

詳細解説:標準準拠システムデータ連携

こんにちは。 AWS パブリックセクター技術統括本部の押川です。

本ブログは、「詳細解説」シリーズの一つとして、標準準拠システムの AWS 上でのデータ連携について解説いたします。ぜひご検討の際に参考にしていただければと思います。

本ブログは以下の内容で構成されています。

  • 庁内データ連携機能とは
  • 2つの連携方式とデータ連携の要件
  • 認証認可について
  • AWS 上での実現方法
    • 認証認可サーバーが必要な場合
    • 認証認可サーバーが必要でない場合
  • 異なる CSP またはオンプレミスとのファイル連携をする場合の認可を行う各方法のまとめ
  • まとめ

ガバメントクラウドでの業務システム構築を支援する中でよくご質問をいただく項目については、ガバメントクラウド活用のヒント『見積もりで注意すべきポイント』をはじめとする「ガバメントクラウド活用のヒント」シリーズをご覧ください。
また、さらに詳細を知りたいという方には、 詳細解説:ガバメントクラウド名前解決編をはじめとする「詳細解説」シリーズをお勧めしております。

庁内データ連携機能とは

標準準拠システムが、他の標準準拠システムにデータを送信又は他の標準準拠システムからデータを受信すること、庁内データ連携機能と言います。例えば、住民記録システムから介護保険システムに対して、住民基本情報を連携する場合などが該当します。

2つの連携方式とデータ連携の要件

連携方式としては、「RESTによる公開用API連携」(以降、「API連携」という。)と「ファイル連携」の2つの方式を規定しています。

データ連携の方法の説明

API連携

API連携は、RESTful APIを使用してシステム間でデータをやり取りする方式です。提供側業務システムは REST による API を利用側業務システムへ公開し、利用側業務システムはその API を呼び出します。

ファイル連携

詳しい仕様についてはデジタル庁が提供している「ファイル連携に関する詳細技術仕様書」などをご覧ください。

重要な点についてまとめると、以下のようになります。

  • ストレージを使用してシステム間でデータをやり取りする方式です。
  • オブジェクトストレージを利用し CSV ファイルよる連携を行います。基本的に、提供側業務システムは、オブジェクトストレージが提供するツール(API等)を利用して、オブジェクトストレージ上の所定の格納先に CSV ファイルを格納します。それが困難な場合はファイルサーバーを構築して、 SFTP や SCP などによる暗号化を行なった上で CSV ファイルを格納することができます。
  • 共通機能を提供する事業者はオブジェクトストレージ上に業務の組み合わせごとのバケットを作成し、そのバケットを利用してシステム間でのデータのやり取りを行います。バケットが業務の組み合わせごとに分かれているため、提供側業務システムは、利用側業務システム単位に別々の連携ファイルを作成します。
    • 例えば、北海道札幌市において(市区町村コード=011002)、住民基本台帳(システム区分+業務ID=0001)と印鑑登録(システム区分+業務ID=0002)の業務の組み合わせのバケットを作成する場合、バケット名は「011002-0001-0002」とします。
  • 異なるCSP間又はCSPとオンプレミス環境間でファイル連携を行う場合、API 連携で利用する認証認可サーバをIDプロバイダーとし、 CSPの認証認可機能と連携 (フェデレーション) させ、IDプロバイダーでオブジェクトストレージの認証を行う必要があります。

AWS 上では、オブジェクトストレージには Amazon S3 を用います。上述したように、Amazon S3 のバケットを業務の組み合わせごとに作成し、その中でフォルダ分けします。

認証認可について

詳しい仕様についてはデジタル庁が公開している「地方公共団体情報システム 共通機能標準仕様書」や「「地方公共団体情報システム共通機能標準仕様書」に関するリファレンス」などをご覧ください。

重要な点についてまとめると、以下のようになります

  • client_secret_jwt による JWT を用いた認証を行います。それが難しい時のみ、API Key の利用を当面認めますが、ガバメントクラウドでは原則認められていません。
  • API 認可サーバーは自治体内で原則 1 つ用意します。ただし、以下に当てはまる場合などは必要ありません。
    • ファイル連携において連携元/連携先の業務システムがどちらもAWS上で稼働する場合
    • ファイル連携で認可サーバーを利用しない方法を使う場合
  • 利用側業務システムが複数の提供側業務システムにアクセスする場合にも、提供側業務システムごとにアクセストークンを発行し、複数の提供側業務システムへアクセス可能なアクセストークンの発行は行いません。

AWS 上での実現方法

認証認可サーバーが必要な場合

API 連携を行う場合

API 連携における RESTful API は、 Amazon API Gateway などを用いて実現します。また、API 連携において必要になる認証認可機能については、Amazon Elastic Container Service (Amazon ECS) や Amazon Aurora を利用してサーバーを構築します。

API連携

それぞれの事業者には、以下の業務が発生します。
データ提供側の業務システム構築業者

  • OAuth 2.0のリソースサーバー側の実装
    • アクセストークン情報の取得
    • アクセストークンの検証
    • など

認証認可サーバーの構築業者

  • 認証認可サーバーの実装
    • データの要求元・データの要求先にそれぞれクライア ントID/クライアントシー クレットを発⾏

データ利用側の業務システム構築業者

  • OAuth 2.0のクライアント側の実装
    • 認証認可サーバからのアクセ ストークンの取得
    • アクセストークンを利⽤した データ要求先へのリクエスト発⾏
    • など

ファイル連携で認証認可サーバーを構築する場合

ここでは、ファイル連携で認証認可サーバーを構築する場合について図を用いて説明します。

ファイル連携認証認可サーバー

それぞれの事業者には、以下の業務が発生します。
共通機能の構築業者

  • IAM Role の作成
  • OAuth 2.0のリソースサーバー側の実装
    • アクセストークン情報の取得
    • アクセストークンの検証
    • など

認証認可サーバーの構築業者(共通機能の構築業者が兼任することも多い)

  • 認証認可サーバーの実装
    • データ利用側にクライア ントID/クライアントシー クレットを発⾏

データ利用側の業務システム構築業者

  • OAuth 2.0のクライアント側の実装
    • 認証認可サーバからのアクセストークンの取得
    • アクセストークンを利⽤した データ要求先へのリクエスト発⾏
    • など

認証認可サーバーが必要でない場合

AWS と異なるCSP間又は AWS とオンプレミス環境間でファイル連携を行う場合、認証認可サーバーを構築しない方法として以下の 2 つの方法があります。

  • AWS Transfer Family を用いて SFTP で暗号化して通信する
  • オンプレミスや他 CSP で AWS IAM の機能を利用できるようにする(SSM Agent, IAM Role Anywhere)

AWS Transfer Family を用いて SFTP で暗号化して通信する場合

上述のように、API によるファイルのアップロードやダウンロードが困難な場合はファイルサーバーを構築して、 SFTP や SCP などによる暗号化を行なった上でファイルを格納することができます。AWS Transfer Family というサービスによって、SFTP を用いて Amazon S3 にオブジェクトを格納・取り出せます。


データ提供側の業務システム構築業者

  • 対象の S3 バケットをバックエンドにした Transfer Family のセットアップ
  • データ要求元が作成した SSH キーを利用したユーザーの作成
  • ユーザーに対応する S3 へアクセス可能な IAM ロールの作成

データ利用側の業務システム構築業者

  • 認証に利用する SSH キーの作成

オンプレミスや他 CSP で AWS IAM の機能を利用できるようにする場合

AWS の機能を利用し、オンプレミスや他CSPのサーバーへ IAM の権限を付与することができます。
SSM Agent を使う方法や、IAM Role Anywhere を用いる方法があります。
ここでは、 SSM Agent を用いて、オンプレミスにあるデータ利用側の業務システムが、AWS 上にあるデータ提供側の業務システムのデータを利用する方法について図を用いて説明します。

まず、 AWSマネジメントコンソールのAWS Systems Managerのページにて、SSM Agentをインストールする際の有効化に必要なコードとIDを発行します。そして、作成した SSM Agent 用ロールをデータ利用側システム(オンプレミス)のサーバーが引き受けます。次に、 IAM STS を利用して、Amazon S3 にアクセスできるタスク実行用ロールの一時認証情報を取得します。最後に、取得した一時認証情報で Amazon S3 にアクセスします。

それぞれの事業者には、以下の業務が発生します。
データ提供側の業務システム構築業者

  • データ利用側の事業者の IAM ロールが引き受けることのできる、S3 へアクセスできる IAM ロールを作成

データ利用側の業務システム構築業者

  • オンプレミスのサーバが利用する IAM ロールの作成
  • データ提供側の事業者へS3 へのアクセスに利用する IAM ロールを通知
  • オンプレミスのサーバでIAMロールが利用できるよう SSM Agent の設定

異なる CSP またはオンプレミスとのファイル連携をする場合の認可を行う各方法のまとめ

ここまででにあげた 3 つの方法について、表にまとめました。方法を選択する際の参考になさってください。

 

SSM Agent Transfer Family 認証認可サーバー
特徴 導入手順がシンプル SFTP の利用が可能
ID/Password認証が可能
標準仕様に記載された方法
API認可や職員認証で利用する認証認可サーバーがある場合は新規構築が不要
別CSPでも同様の方法が可能
考慮点 SSM Agent の導入やアップデートの工数
1000 台以上利用の場合は追加料金が発生
一時的な認証情報の利用はできない
200USD/月程度のコスト
認証認可サーバーの運用保守コスト
OAuth 2.0 に準拠した API の実装コスト
ユースケース コストを安く済ませたい場合 データ利用側・提供側のサーバーで SFTP を用いたい場合 API 認可や職員認証で認証認可サーバーを構築する場合

まとめ

本ブログでは、ガバメントクラウド上での標準準拠システムデータ連携について詳細をご紹介しました。重要なポイントとしては、AWS と異なるCSP間又は AWS とオンプレミス環境間でファイル連携を行う場合、複数の認可方法があるため、どのような業務が発生するかを把握して選択することが挙げられます。 地方公共団体に所属している方、または関連するベンダーパートナーの方でこのブログに関して追記した方がいいことやご不明点などございましたら、お気軽に担当のソリューションアーキテクトまたは末尾のお問い合わせ窓口へお気軽にご連絡ください。

免責事項

  • 本ブログや添付資料の内容はできる限り正確な情報を提供するように努めておりますが、正確性や安全性を保証するものではありません。
  • 本ブログや添付資料はあくまで一例であり、すべての作業内容を充足するものではありません。
  • 本ブログや添付資料はガバメントクラウドの新しい情報や AWS サービスの変更・追加などにより今後修正される場合があります。
  • 本ブログや添付資料の利用によって生じた損害等の責任は利用者が負うものとし、アマゾン ウェブ サービス ジャパン は一切の責任を負いかねますことご了承ください。

ガバメントクラウドに関するお問い合わせ

AWS の公共チームではガバメントクラウドクラウド相談窓口を設けています。 本記事で紹介した 標準準拠システムデータ連携に関するお問い合わせのほか、ガバメントクラウド利用全般に関するお問い合わせについて、担当の営業およびソリューションアーキテクトがご回答いたします。ぜひご活用ください。
https://aws.amazon.com/jp/government-education/worldwide/japan/gov-cloud-advisory-site/