長期的に利用可能なシークレット情報(Azure のサービスプリンシパルや AWS の IAM ユーザーなど)を使用してリソースアクセスを行うと、シークレット情報の漏洩時に深刻な問題が発生するリスクがあります。
このリスクを軽減するため、Azure マネージド ID と AWS IAM ロールは、それぞれのクラウドプラットフォームにおいて、長期的なシークレット情報を使用せずにセキュアなリソースアクセスを実現するための重要な機能です。
概要
Azure マネージド ID
Azure マネージド ID は、Azure リソースに対して安全に権限を付与する仕組みです。
Azure リソース上で動作しているアプリケーション以外がマネージド ID を利用して権限を得ることはできません。
下記の 2 種類が存在します。
- システム割り当てマネージド ID: 1 つのリソースに 1 つだけ作成できるマネージド ID で、リソースと共に作成、削除されます
- ユーザー割り当てマネージド ID: リソースとは独立して用意するもので、複数の Azure リソースで共用可能です
AWS IAM ロール
ユーザー、アプリケーション、サービスに AWS リソースへのアクセス権限を付与するためのメカニズムです。
IAM ロールを使用することで、一時的なセキュリティクレデンシャルを生成し、AWS リソースへのアクセスを制御できます。
様々なエンティティ(EC2 インスタンス、Lambda 関数、外部 ID プロバイダーなど)に対して権限を付与できます。
機能面の比較
特徴 | Azure システム割り当てマネージド ID | Azure ユーザー割り当てマネージド ID | AWS IAM ロール |
---|---|---|---|
ID の管理 | リソースと共に自動的に管理1 | 独立して作成・管理1 | 独立して作成・管理2 |
スコープ | Azure リソース内1 | Azure サブスクリプション内1 | AWS アカウント内およびクロスアカウント2 |
認証方法 | Microsoft Entra ID を使用1 | Microsoft Entra ID を使用1 | AWS STS を使用3 |
クレデンシャルの更新 | 自動4 | 自動4 | 自動(一時的なクレデンシャル)3 |
リソースとの紐付け | 1 対 11 | 多対多1 | 多対多2 |
利点
Azure マネージド ID の利点
- マネージド ID は接続パスワードのような機密情報を一切利用せずに Azure サービスへのアクセス権限を得られることが強力な利点です
- 特にシステム割り当てマネージド ID は Azure リソースと 1 対 1 で対応しているので、非常に安全に取り扱うことができます
- クレデンシャルの自動ローテーションにより、セキュリティが向上します
AWS IAM ロールの利点
- IAM ロールはユーザーやアプリケーションに対しても一時的な権限を付与できるので、幅広い構成に適用できます
- 別の AWS アカウントへのアクセス許可も付与できるため、クロスアカウントシナリオに適しています
- 細かな権限制御が可能で、最小権限の原則に基づいたセキュリティ設計が容易です
まとめ
Azure マネージド ID と AWS IAM ロールは、それぞれのクラウドプラットフォームにおいて、長期的なシークレット情報を使用せずにセキュアなリソースアクセスを実現する重要な機能です。
両者とも、セキュリティを向上させつつ、開発者の負担を軽減するという共通の目標を達成しています。
プロジェクトの要件や使用するクラウドプラットフォームに応じて、適切な選択を行うことが重要です。
-
https://learn.microsoft.com/ja-jp/entra/identity/managed-identities-azure-resources/overview ↩ ↩2 ↩3 ↩4 ↩5 ↩6 ↩7 ↩8
-
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles.html ↩ ↩2 ↩3
-
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_credentials_temp_control-access_enable-create.html ↩ ↩2
-
https://learn.microsoft.com/ja-jp/entra/identity/managed-identities-azure-resources/overview-for-developers ↩ ↩2