Upload
junichi-anno
View
2.687
Download
16
Embed Size (px)
DESCRIPTION
要望が多いので、Active Directory 最新情報をまとめました。 ただ、まだまとめきっておらず、完了するまでに時間がかかりそうなので、暫定版として公開しました。 追って正式版に更新しますので。 ・Windows Azure Active Directory ・DC on Hyper-V ・User Account Control ・Connected Account
Citation preview
1
Active Directory 最新情報
日本マイクロソフト株式会社エバンジェリスト
安納 順一http://blogs.technet.com/junichia/
Junichi
Anno
junichia
2012.8.31 V0.5 版
2
すみません。正式版ではありません。情報を探して困っている方向けに、暫定版として公開します。
正式版まではもうちょっとお待ちを。
3
2000
2003
2008
2012
“Active Directory” Is Taking off on the Cloud
4
Active Directory の三形態
Windows Azure
Active Directory
(SaaS)
Active Directory Server
(On-premise)
Active Directory in
Windows Azure VM
(IaaS)
5
Windows Azure Active Directory
2012年7月 プレビュー提供予定
6
Windows ServerActive Directory
3rd Party Services
Apps in Azure
LIVE
IdPとしての Active Directory
Access Control(Hub)
Directory
Graph
Authentication LibraryWindows AzureActive Directory
Sync
連携
• Exchange Online
• SharePoint Online
• Lync Online
• Office Web Apps
• kerberos
• ldap
• CA
• ntlm
• SAML
7
Windows Azure AD を構成する 4 つのサービス
クレームベースのID 連携サービス
マルチテナントに対応したクラウドベースの ID ストア&認証サーバー
Directory 用の
Restful API
Azure 用アプリケーションに実装するための認証用ライブラリ
Authentication
Library
8
Userどの IdP でログオンしてもアプリケーションが使える
DeveloperAccess Control 用のコードを1種類書けば自動的にすべての IdPに対応
Administratorオンプレミスの AD FSと信頼関係を結ぶことで、ユーザーをオンプレミスで集中管理
Access Control外部 IdP(含 AD DS)と連携したシングルサインオンを可能にする
Apps
9
ACCESS
CONTROL
YOUR SERVICE CUSTOMER
1 クレームルールを定義
0 信頼関係の確立
2 トークンをリクエスト(pass input claims)
4 トークンを返信(receive output claims)
5 トークンを送信
3入力クレームと出力クレームをクレームルールでマピング
6 トークンを解析
How it Works
認証
10
Directory• マルチテナントに対応したディレクトリサービス
• マイクロソフトのクラウドサービス、Azure上のアプリケーション、非マイクロソフトのクラウドサービスから利用可能
• オンプレミスの Active Directory と同期、フェデレーションが可能
• ユーザー/デバイス管理のハブ機能を提供- 登録/削除/管理
• 2要素認証をサポート
※ 現在は Office 365, Dynamics online, Windows InTune からのみ利用可能
11
今後
Directory にユーザーを登録するには
同期
Graph API
Portal
12
Graph
• RESTful Graph API を使用した Directory へのアクセス• JSON/XML で応答を受信
• Odata V3 にも対応
• アクセス認可は OAuth 2.0 を使用
https://directory.windows.net/
Contoso.com/Contoso.com
Windows Azure AD Directoryオンプレミス Active Directory
Appldap Rest
13
REST interface for Directory Access の例 Request URI structure
◦ <Service root>/<resource path>[? Query string options]
https://directory.windows.net/contoso.com/Users?$filter=DisplayName eq ‘Adam
Barr”
Navigating the URI structure
◦ https://directory.windows.net/$metadata
◦ https://directory.windows.net/contoso.com/
◦ https://directory.windows.net/contoso.com/TenantDetails
◦ https://directory.windows.net/contoso.com/Users
◦ https://directory.windows.net/contoso.com/Groups
◦ https://directory.windows.net/contoso.com/Roles
◦ https://directory.windows.net/contoso.com/Contacts
◦ https://directory.windows.net/contoso.com/SubscribedSkus
14
JSON形式の ユーザー情報の例Request: https://directory.windows.net/contoso.com/Users('[email protected]')
{ “d”: {
"Manager": { "uri": "https://directory.windows.net/contoso.com/Users('User...')/Manager" },
"MemberOf": { "uri": "https://directory.windows.net/contoso.com/Users('User...')/MemberOf" },
"ObjectId": "90ef7131-9d01-4177-b5c6-fa2eb873ef19",
"ObjectReference": "User_90ef7131-9d01-4177-b5c6-fa2eb873ef19",
"ObjectType": "User", "AccountEnabled": true,
"DisplayName": "Ed Blanton",
"GivenName": "Ed", "Surname": "Blanton",
"UserPrincipalName": "[email protected]",
"Mail": "[email protected]",
"JobTitle": "Vice President", "Department": "Operations",
"TelephoneNumber": "4258828080", "Mobile": "2069417891",
"StreetAddress": "One Main Street", "PhysicalDeliveryOfficeName": "Building 2",
"City": "Redmond", "State": "WA", "Country": "US", "PostalCode": "98007"
} }
15
Windows Azure Authentication Library
• Windows Azure Active Directory 専用の認証ライブラリ
• 初期リリースではリッチクライアントに対応次期バージョンで WEB サービス、WEB アプリに対応予定
• 初期リリースでは .NET Framework に対応次期バージョンで Node.JS, Java, PHP に対応予定
16
Protocols to Connect with Azure Active Directory
Protocol Purpose Details
REST/HTTP directory
access
Create, Read, Update, Delete directory objects and
relationships
Compatible with OData V3
Authenticate with OAuth 2.0
OAuth 2.0 Service to service authentication
Delegated access
JWT token format
Open ID Connect Web application authentication
Rich client authentication
Under investigation
JWT token format
SAML 2.0 Web application authentication SAML 2.0 token format
WS-Federation 1.3 Web application authentication SAML 1.1 token format
SAML 2.0 token format
JWT token format
17
Active Directory in Windows Azure VM(IaaS)
18
なぜ Azure 上に DC を展開するのか
AD DS
DNS
• 異なる拠点でDCを分散• Azureアプリ独自のフォレスト構築• クラウドアプリの性能向上
19
•Windows Azure アプリケーションの認証
•Azure 上の SharePoint Server や SQL Server の認証および名前解決のパフォーマンス向上
•クラウドサービス固有のフォレスト作成
VPN
SharePoint
AD DS
DNS
AD DS
DNS
20
IaaS としてサポートされているバージョン
21
(参考)Images Available from the Gallery
OpenSUSE 12.1
CentOS 6.2
Ubuntu 12.04
SUSE Linux Enterprise Server 11 SP2
Windows Server 2008 R2
SQL Server 2012 Eval
Windows Server 2012 RC
22
VM 展開の流れ
HyperVisor
VM
OS
Data
Cache
ISO
Cache.VHD
23
IaaS に DC を展開する際の留意点
• Windows Azure Virtual Network を使用する(ことを推奨)• 仮想マシンに割り当てられる IP Address(Dynamic IP)は永続化される
Azure VM(DC)※DHCP有効にしておく必要がある!
Virtu
al
NIC
Dynamic IP
データセンター
Virtual IP
Internet Host
静的IPは通信エラーとなる
24
• Windows Azure は出力方向のトラフィックに課金する(入力方向は無償)• 出力方向のトラフィックを極力少なくするのが吉
※ちなみに...RODCは出力方向に複製しない
Azure VM(DC)入力方向
出力方向
25
• 異なる Virtual Network 同志は直接通信できない※ 異なるデータセンター間で1つの Virtual Network を共有できない
Virtual Network 1
East Asia South US
Virtual Network 2
On-premise
26
• Active Directory データベースは Data-Disk に配置すること
Program
Database(DIT/Sysvol)
Writeキャッシュ無効
27
• その他の主な留意点
• Windows Server 2012 DC クローン機能はサポートされていない
• DCクローン機能は Hypervisor 側で VM Generation ID のサポー
トが必要(Windows Azure は現在未サポート)
• HBI(High Business Impact Data)/PII(Personally identifiable
information)は複製しない
• バックアップは「システム状態」を。VHD はバックアップしても戻せ
ない(Azure上では回復モード利用不可)。
• サイトトポロジーは管理者が目視、調整すること
• コスト重視ならば複製回数を削減することをお勧め
28
Windows Server 2012 Active Directory
• ドメインコントローラーの仮想化
• DC 展開方法のバリエーション
• ダイナミックアクセスコントロール
• 使いやすくなったゴミ箱
• Windows PowerShell からの管理
• パスワードポリシーの管理
• ADMC の機能向上
• Active Directory ベースのアクティベーション
• Kerberos の拡張
• Group Managed Service Account
29
ドメインコントローラーの仮想化
30
DC 仮想化のメリット
• スケーラビリティ• サーバーのロールバック(スナップショット)• 自動展開のしやすさ• パブリックウラウドへの移行
31
仮想 DC 展開の留意点
• 単一障害点にならないこと 少なくとも2台のHyper-V サーバーに1台づつ展開
1つのハードウェアの障害が複数のDCに影響を与えないようにすること できるだけ物理的に異なるリージョンに配置すること 可能であれば、少なくとも1台は物理 DC を構築しておくこと
Hyper-V
V-DC V-DC
Hyper-V
V-DC
Hyper-V
V-DC
32
• セキュリティ上の考慮点• できるだけ DC のみの単一機能のサーバーとし、ホスト、ゲストともに
Server Core を採用すること
• 必要に応じて RODC を検討すること• VHDファイルの安全性に考慮すること
• VHDファイルが含まれるドライブごと暗号化することをお勧め
Hyper-V(Server Core)
V-DC(Server Core)
33
34
35
36
37
• セキュリティ上の考慮点(つづき)• ホストコンピューターは死守すること
• 可能であればホストコンピューターは管理用ネットワークのみと通信を行うように設定されていること
• ホストコンピューターはゲストであるDCのドメインに所属させない
Hyper-V(domain member)
V-DC V-DC
DC からスタートアップスクリプトを送り込む
1
2
3Sysvol 共有にアタック
38
Measurement Test Physical Virtual Delta
Searches/sec Search for common name in base scope (L1) 11508 10276 -10.71%
Searches/sec Search for a set of attributes in base scope (L2) 10123 9005 -11.04%
Searches/sec Search for all attributes in base scope (L3) 1284 1242 -3.27%
Searches/sec Search for common name in subtree scope (L6) 8613 7904 -8.23%
Successful binds/sec Perform fast binds (B1) 1438 1374 -4.45%
Successful binds/sec Perform simple binds (B2) 611 550 -9.98%
Successful binds/sec Use NTLM to perform binds (B5) 1068 1056 -1.12%
Writes/sec Write multiple attributes (W2) 6467 5885 -9.00%
• パフォーマンスの考慮点
• Windows Server 2008 の場合約10%の性能減
Adtest.exe 使用 http://www.microsoft.com/en-us/download/details.aspx?id=15275
39
• 展開に関する考慮点
• 差分ディスクは使わないこと
実使用領域
未使用領域
固定
可変
元の領域差分差分
差分
差分
指定領域に達するまで自動拡張
40
• 展開に関する考慮点(続き)
• 差分ディスクは使わないこと
• VHDファイルを複製しないこと
※ ドメインコントローラーでの Sysprep は未サポート
• SID の重複
• USN(Update Sequence Number)ロールバック問題
• 起動しているドメインコントローラーを Export しないこと
詳細:http://technet.microsoft.com/en-us/library/
virtual_active_directory_domain_controller_virtualization_hyperv(v=ws.10).aspx
41
重要な3つの ID
• USN(Update Sequence Number)• 随時変更
• Invocation ID• 変更される可能性あり
• objectGUID• サーバー内オブジェクトのID• 恒久的
42
USN とは• Update Sequence Number• ドメインコントローラー間でどこまで複製が完了したかを確認するための番号• ドメインコントローラーに変更が加えられるたびに加算される
DC1 DC2
USN_DC2 = 100 USN_DC1 = 100
USN=200 USN=100
DIT DIT
43
Invocation ID• Invocation ID:ディレクトリデータベースのID
• リセットされるシチュエーション存在する• システム状態のリストア等
44
USN ロールバックInvocation ID がリセットされると...
USN = 1000InvocationID = A
V-DC1 が把握している V-DC1(自分自身)の状態
DC2 が把握しているV-DC1 の状態
V-DC1(A)@USN1000
USN = 500InvocationID = B
V-DC1(A)@USN1000V-DC1(B)@USN500
頭から複製
USN = 600InvocationID = B
DIT変更
V-DC1(A)@USN1000V-DC1(B)@USN500
差分複製
High Water Mark と呼ばれる
45
USN ロールバックの検知
• 「USN がロールバック」だけが発生すると、複製は停止する
• 古いVHDファイルをリストアした場合
• 古い Export ファイルをインポートした場合• Windows Server Backup から古いDITをリストアした場合
複製を開始するには同時に Invocation ID のリセットが必要=> これが、Authoritative Restore(権限のある復元)
Event ID 2103:Active Directory データベースがサポートされていない方法で復元されました。Active Directory はこの状態が継続している間、ユーザーのログオンを処理できません。
46
スナップショットによるUSNロールバック
TIME: T2
TIME: T4
Create
Snapshot
T1 Snapshot
Applied!
USN: 100
+150 more users created
DC2 receives updates: USNs >200
USN: 200
ID: A RID Pool: 600- 1000
+100 users added
DC2 receives updates: USNs >100
• USN rollback は回避されない: 50ユーザーが複製されてしまう
• All others are either on one or the other DC
• 100 ユーザーは(RID = 500 - 599)は SID 競合
スナップショットをリストアした場合にはロールバックが検知されない
47
Windows Server 2012 では
VM-Generation ID が Hyper-V ホストに提供されている• ユニークな 128 ビットの ID
• 専用ドライバーによりゲストOSに通知できるようになっている
WS 2012 仮想 DC は VM-Generation ID をトラックする
• Active Directory database (DIT) に保存
• DITへの変更をコミットする前に、
• DIT 内部の VM-Generation ID と ホストが認識している VM-Generation ID を比較
• 異なれば DC の invocation ID と RID pool をリセットしてから、コミット
同じ操作を、起動時に実行する
48
Windows Server 2012 ではこうなる
Tim
eli
ne o
f even
ts
TIME: T2
TIME: T3
TIME: T4
Create
Snapshot
T1 Snapshot
Applied!
USN: 100
ID: A savedVMGID: G1
USN: 100
ID: A
USN: 101-250
ID: B
+150 users created: VM generation ID difference detected: EMPLOY SAFETIES
DC1(A)@USN = 200
USN: 200
ID: A
+100 users added
DC2 receives updates: USNs >100
DC
1
DC
2
TIME: T1VMGID: G1
savedVMGID: G1 VMGID: G1
savedVMGID: G1 VMGID: G2
savedVMGID: G2 VMGID: G2
DC2 again accepts updates: USNs >100
USN re-use avoided and USN rollback PREVENTED : all 250 users converge correctly across both DCs
DC1(A)@USN = 200
DC1(B)@USN = 250
… missing users replicate
back to DC1
49
結局のところ...
以下の用途には使えないので注意「作成したユーザーを削除したい」「変更したユーザーの属性を元に戻したい」
• Authoritative Restore を使用しましょう• または Forefront Identity Manager を使用し、メタデータで管
理しましょう
50
仮想 DC の展開
51
仮想 DC の展開
• サーバーマネージャーを使用してリモートから
• PowerShell を使用してリモートから
• VHDファイルのクローン
52
1. 非互換アプリを調査しCustomDCCloneAllowList.xml を生成2. DcCloneConfig.xml ファイルを作成3. ソースDCでFSMOが起動していないことを確認4. ソースDCをクローン可能なDCとして認可する5. ソースDCをシャットダウンし、イメージをExport
6. 新しい仮想マシンにインポート7. ソースを起動し、次に複製先マシンを起動
仮想DCのクローン手順 順番が変わっています
53
Step1. 非互換のあるアプリを確認
DC上で以下のコマンドレットを実行して、C:¥Windows¥NTDS¥CustomDCCloneAllowList.xml ファイルを作成する
Get-ADDCCloningExcludedApplicationList
Name : Active Directory Management Pack
Helper Object
Type : Program
Name : System Center Operations Manager
2012 Agent
Type : Program
Name : Microsoft Silverlight
Type : WoW64Program
Name : AdtAgent
Type : Service
Name : HealthService
Type : Service
Name : QWAVE
Type : Service
Name : System Center Management APM
Type : Service
Name : wlidsvc
Type : Service
54
<AllowList>
<Allow>
<Name>Active Directory Management Pack Helper
Object</Name>
<Type>Program</Type>
</Allow>
<Allow>
<Name>System Center Operations Manager 2012
Agent</Name>
<Type>Program</Type>
</Allow>
<Allow>
<Name>Microsoft Silverlight</Name>
<Type>WoW64Program</Type>
</Allow>
<Allow>
<Name>AdtAgent</Name>
<Type>Service</Type>
</Allow>
<Allow>
<Name>HealthService</Name>
<Type>Service</Type>
</Allow>
<Allow>
<Name>QWAVE</Name>
<Type>Service</Type>
</Allow>
<Allow>
<Name>System Center Management APM</Name>
<Type>Service</Type>
</Allow>
<Allow>
<Name>wlidsvc</Name>
<Type>Service</Type>
</Allow>
</AllowList>
CustomDCCloneAllowList.xml の例
55
Step2. DcCloneConfig.xml を作成
New-ADDCCloneConfigFile –Static
-IPv4Address “10.0.0.2”
-IPv4DNSResolver “10.0.0.1”
-IPv4SubnetMask “255.255.255.0”
-CloneComputerName “VirtualDC2”
-IPv4DefaultGateway “10.0.0.3”
-PreferredWINSServer “10.0.0.1”
-SiteName “REDMOND”
56
<?xml version="1.0"?>
<d3c:DCCloneConfig xmlns:d3c="uri:microsoft.com:schemas:DCCloneConfig">
<ComputerName>Cloned-DC1</ComputerName>
<SiteName>Default-First-Site-Name</SiteName>
<IPSettings>
<IPv4Settings>
<StaticSettings>
<Address>192.168.205.14</Address>
<SubnetMask>255.255.255.0</SubnetMask>
<DefaultGateway></DefaultGateway>
<DNSResolver>192.168.205.1</DNSResolver>
<DNSResolver>192.168.205.3</DNSResolver>
<DNSResolver></DNSResolver>
<DNSResolver></DNSResolver>
<PreferredWINSServer></PreferredWINSServer>
<AlternateWINSServer></AlternateWINSServer>
</StaticSettings>
</IPv4Settings>
<IPv6Settings>
<StaticSettings>
<DNSResolver></DNSResolver>
<DNSResolver></DNSResolver>
<DNSResolver></DNSResolver>
<DNSResolver></DNSResolver>
</StaticSettings>
</IPv6Settings>
</IPSettings>
</d3c:DCCloneConfig
57
Step 3: ソースDCでPDCエミュレーターが動作していないことを確認
PDCエミュレーターがインストールされているDCはクローンできない
Move-ADDirectoryServerOperationMasterRole -Identity "NEWDC2"
-OperationMasterRole PDCEmulator
58
Step 4: ソースDCをクローン可能なDCに設定する
Get-ADComputer NEWDC1 | %{add-adgroupmember -identity "Cloneable domain
controllers" -members $_.samaccountname}
59
Step 5: ソースDCをシャットダウンして Export
• 検証New-ADDCCloneConfigFile
• シャットダウン
• Stop-Computer
60
Step 6: クローン先のDCを作成し、Exportしたマシンをインポート
※新しいVMを作成するスクリプトの例
$VM = “TFDC03"
New-VM -BootDevice CD `
-MemoryStartupBytes 1024MB `
-Name $VM `
-SwitchName "Intel(R) 82579LM Gigabit Network Connection - Virtual Switch" `
-VHDPath ¥¥G:¥$VM¥$VM.vhdx `
Start-VM -Name $VM -ComputerName junichia-vdi
61
62
Dynamic Access Control
63
“データガバナンス” へのニーズ
CIO
インフラサポートコンテンツオーナー
Information Worker
正しいコンプライアンスが必要
どのデータに責任があって、どうやって制御すればよいかわからない
コンプライアンスに違反しているかどうか心配せずに必要なデータを使用したい
自分のデータが適切に保護されているかどうやって監査すればよいのだろう?
64
そうは言っても、複雑な ”データガバナンス”
監査暗号化
• グループメンバーシップの管理• 増え続けるグループとメンバー
増減への対応• 複雑なメンバーシップルール
• 監査対象データの識別• 暗号化すべきデータの識別• 膨大なデータ
• ファイル単位のアクセス権• 増え続けるファイル• 管理の分散(コンプライア
ンス測定不能)
アクセスポリシー
ID管理
65
RBAC(Role-Based Access Control)
• アクセスコントロール(アクセス制御)とは......ユーザーがアクセスしてもよいかどうかを評価するためのプロセス
• RBAC とは......ユーザー単位ではなく役割単位でアクセス制御すること
ACE
Resource
ACL
ACE
ACE
ACE Read Only
ACL(Access Control List)によるアクセス管理
ACE
Resource
ACL
ACE
ACE
ACE
A
Read Only
ユーザー単位
グループ(役割)単位
※ 組織(役割)がグループに反映されている必要がある
RBACの例
66
グループベース RBAC の限界
Resource
ACLACE
A
Resource
• リソースの増加とグループの増加• 複雑なメンバーシップ管理(1グループ1人 !?)• イレギュラーでダイナミックな組織構造• リソース管理者 ≠ ID 管理者
ACL
ACE
A
A
A
A
A
A AACE
ACE
A
AA
A
ID 管理(インフラ管理者)アクセス管理
(リソース管理者)連携が必要
67
Enterprise Dynamic Access Control へのニーズ
Resource
• EDAC......利用者のキャラクター(属性)によってアクセスを制御する
• リソース管理者は条件(Condition)を管理するだけ
営業部Read
IT部Backup
経理部R/W
A
A
A
ID 管理(インフラ管理者)アクセス管理
(リソース管理者)
IT部
経理部
営業部
A人事部
A企画部
condition
condition
condition
互いに素
68
Windows Server 2012 Dynamic Access Control
監査暗号化
• クレームベースのアクセス制御
• 監査ポリシーの集中管理• 自動識別と自動暗号化
• アクセスポリシーの集中管理
アクセスポリシー
ID管理
DAC によってそれぞれのテクノロジーを結びつける
69
DAC の想定シナリオ
• アクセスポリシー(Central Access Policy)の集中管理
全社コンプライアンスポリシー 組織の認可ポリシー
• ファイルアクセス監査ポリシー(Central Audit Policy)の集中管理
• アクセス拒否発生時の速やかな対応
• File Classification Infrastructure(FCI)と連携したファイルの自動分類
データの自動分類 社外秘データの自動暗号化 法廷保存期間に沿ったファイルサーバー上のデータの保管
70
アクセスポリシーの集中管理
ファイルアクセスコントロールを Active Directory で集中管理
71
72
73
Resource
ACLACE
ACE上書き
アクセスコントロール
監査の設定
Central Policy
74
監査ポリシーの集中管理
75
アクセス拒否発生時の速やかな対応
ユーザーがファイル共有にアクセスして”アクセス拒否”が発生した際に、速やかな問題解決を図るために以下の対応が可能。
• メッセージの送信 to システム管理者 to 共有フォルダーの所有者
• アクセス権取得の要求
グループポリシーおよびファイルサーバーリソースマネジャーで設定
76
FCI: File Classification Infrastructure
Data
tag:超重要
データのタギング
• コンテンツオーナーによるタギング• データの重要性を自動識別• 自動暗号化
77
DAC に求められる条件
リソース管理者の責任
IT(ID)管理者の責任
• コンプライアンスに沿った条件設定• 状況に応じたダイナミックな設定変更
• ID 情報の精密性• 迅速な ID 情報の反映
管理者の管理範囲は狭くなるが、管理の精密性が求められる
78
Connected Account
Enterprise と Social を結びつける新しい手法
79
Connected Account
Windows 8
• Active Directory アカウントと Windows Live ID(Microsoft Account) を連携• 移動ユーザープロファイルを使用すれば複数のデバイスで利用可能
Windows ServerActive Directory Windows Live
Connected
Login
Login
SSO
80
Hotmail(RP)
Business Windows と Social Network
Windows
Yammer
OUTLOOK
(RP)
SkyDrive
(RP)
Office
Mail PeopleInstant
MessageDrive
PersonalEnterpriseIdp Idp Idp Idp
Store(RP)
(RP)Twitter
(RP)
Linked-in
(RP)
Enterprise Consumer
Live(MS Account)
(IdP)AD
81
まとめ
全てのインフラで Active Directory が使えるようになります
• Windows Azure Active Directory (PaaS)
• Active Directory Server (On-premise)
• Active Directory in Windows Azure VM (IaaS)
認証とアクセス制御がインフラの命です
82
暫定版