<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" compressed="false">
<diagram id="secure-web-system" name="Architecture" syncFormat="1.0" inputHash="1565be9b8c3ecdebb9fd025b1b8aaefce7fb71849daa325c36a83911bc78ab10" generatorVersion="0.4.0">
<mxGraphModel dx="1200" dy="820" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="900" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="diagram-title" value="セキュアWebシステム構成" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=23;fontStyle=1;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="32" y="22" width="720" height="42" as="geometry"/></mxCell>
<mxCell id="legend-0-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#343A42;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="32" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-0-text" value="同期リクエスト" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="49" y="77" width="170" height="28" as="geometry"/></mxCell>
<mxCell id="legend-1-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="254" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-1-text" value="認証・信頼パス" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="271" y="77" width="170" height="28" as="geometry"/></mxCell>
<mxCell id="legend-2-mark" value="" style="ellipse;html=1;aspect=fixed;fillColor=#FFFFFF;strokeColor=#69717D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="476" y="85" width="10" height="10" as="geometry"/></mxCell>
<mxCell id="legend-2-text" value="外部境界" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=13;fontStyle=0;fontColor=#292E35;spacing=0;align=left;verticalAlign=middle;" vertex="1" parent="1"><mxGeometry x="493" y="77" width="170" height="28" as="geometry"/></mxCell>
<object id="public-edge" label="" componentId="public-edge" componentType="boundary" boundaryType="network" variant="external"><mxCell style="rounded=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#69717D;strokeWidth=1.4;dashed=1;dashPattern=7 5;connectable=0;" vertex="1" parent="1"><mxGeometry x="35" y="130" width="345" height="680" as="geometry"/></mxCell></object>
<mxCell id="public-edge--title" value="PUBLIC EDGE" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#69717D;spacing=0;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;" vertex="1" parent="public-edge" syncRole="boundary-title" ownerId="public-edge"><mxGeometry x="9" y="4" width="94.6" height="22" as="geometry"/></mxCell>
<object id="application-network" label="" componentId="application-network" componentType="boundary" boundaryType="network" variant="realtime"><mxCell style="rounded=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#343A42;strokeWidth=1.4;dashed=1;dashPattern=8 5;connectable=0;" vertex="1" parent="1"><mxGeometry x="415" y="130" width="535" height="680" as="geometry"/></mxCell></object>
<mxCell id="application-network--title" value="APPLICATION NETWORK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#343A42;spacing=0;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;" vertex="1" parent="application-network" syncRole="boundary-title" ownerId="application-network"><mxGeometry x="9" y="4" width="154.12" height="22" as="geometry"/></mxCell>
<object id="data-trust-zone" label="" componentId="data-trust-zone" componentType="boundary" boundaryType="trust" variant="warning"><mxCell style="rounded=1;arcSize=6;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#C58A21;strokeWidth=1.4;dashed=1;dashPattern=8 5;connectable=0;" vertex="1" parent="1"><mxGeometry x="985" y="130" width="380" height="680" as="geometry"/></mxCell></object>
<mxCell id="data-trust-zone--title" value="DATA TRUST ZONE" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#C58A21;spacing=0;align=left;verticalAlign=middle;labelBackgroundColor=#FFFFFF;" vertex="1" parent="data-trust-zone" syncRole="boundary-title" ownerId="data-trust-zone"><mxGeometry x="9" y="4" width="121.12" height="22" as="geometry"/></mxCell>
<object id="browser-to-edge" label="" componentId="browser-to-edge" componentType="edge" edgeType="sync-request" variant="external" direction="bidirectional" protocol="HTTPS"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#69717D;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;dashed=1;dashPattern=7 5;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="browser" target="cdn-waf"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="browser-to-edge--label" value="HTTPS" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="browser-to-edge"><mxGeometry x="172" y="444" width="66" height="22" as="geometry"/></mxCell>
<object id="edge-to-gateway" label="" componentId="edge-to-gateway" componentType="edge" edgeType="sync-request" variant="realtime" direction="forward" protocol="HTTPS"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#343A42;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="cdn-waf" target="api-gateway"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="395" y="632.5"/><mxPoint x="395" y="272.5"/></Array></mxGeometry></mxCell></object>
<mxCell id="edge-to-gateway--label" value="FILTERED HTTPS" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="edge-to-gateway"><mxGeometry x="337.54" y="444" width="114.92" height="22" as="geometry"/></mxCell>
<object id="gateway-to-app" label="" componentId="gateway-to-app" componentType="edge" edgeType="sync-request" variant="realtime" direction="bidirectional" protocol="HTTP"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#343A42;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="api-gateway" target="web-application"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="gateway-to-app--label" value="REQUEST" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="gateway-to-app"><mxGeometry x="649.46" y="239" width="66.08" height="22" as="geometry"/></mxCell>
<object id="app-to-db" label="" componentId="app-to-db" componentType="edge" edgeType="data-read" variant="warning" direction="bidirectional" protocol="TLS"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="web-application" target="application-db"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="app-to-db--label" value="ENCRYPTED SQL" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="app-to-db"><mxGeometry x="936.26" y="239" width="107.48" height="22" as="geometry"/></mxCell>
<object id="gateway-to-auth" label="" componentId="gateway-to-auth" componentType="edge" edgeType="authentication" variant="warning" direction="bidirectional" protocol="OIDC"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="api-gateway" target="auth-service"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="gateway-to-auth--label" value="TOKEN VERIFY" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="gateway-to-auth"><mxGeometry x="504.98" y="474" width="100.04" height="22" as="geometry"/></mxCell>
<object id="app-to-auth" label="" componentId="app-to-auth" componentType="edge" edgeType="authentication" variant="warning" direction="forward"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#C58A21;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=0.45;exitY=1;exitDx=0;exitDy=0;exitPerimeter=1;entryX=1;entryY=0.35;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="web-application" target="auth-service"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="800.5" y="430"/><mxPoint x="680" y="430"/><mxPoint x="680" y="613.75"/></Array></mxGeometry></mxCell></object>
<mxCell id="app-to-auth--label" value="POLICY CHECK" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="app-to-auth"><mxGeometry x="684.98" y="397" width="100.04" height="22" as="geometry"/></mxCell>
<object id="app-to-cache" label="" componentId="app-to-cache" componentType="edge" edgeType="data-read" variant="delegated" direction="bidirectional"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#59697D;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;exitX=0.7;exitY=1;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.7;entryY=0;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="web-application" target="session-cache"><mxGeometry relative="1" as="geometry"></mxGeometry></mxCell></object>
<mxCell id="app-to-cache--label" value="SESSION" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="app-to-cache"><mxGeometry x="814.96" y="444" width="66.08" height="22" as="geometry"/></mxCell>
<object id="cache-to-db" label="" componentId="cache-to-db" componentType="edge" edgeType="data-write" variant="delegated" direction="forward" protocol="TLS"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#59697D;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=none;exitX=1;exitY=0.5;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="session-cache" target="application-db"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="940" y="632.5"/><mxPoint x="940" y="395"/><mxPoint x="1175" y="395"/></Array></mxGeometry></mxCell></object>
<mxCell id="cache-to-db--label" value="PERSIST" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="cache-to-db"><mxGeometry x="906.96" y="509" width="66.08" height="22" as="geometry"/></mxCell>
<object id="auth-to-secrets" label="" componentId="auth-to-secrets" componentType="edge" edgeType="authentication" variant="critical" direction="bidirectional" protocol="mTLS"><mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#B44343;strokeWidth=1.6;endArrow=open;endFill=0;endSize=8;startArrow=open;startFill=0;startSize=8;exitX=0.5;exitY=1;exitDx=0;exitDy=0;exitPerimeter=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;entryPerimeter=1;" edge="1" parent="1" source="auth-service" target="secrets-manager"><mxGeometry relative="1" as="geometry"><Array as="points"><mxPoint x="555" y="745"/><mxPoint x="1175" y="745"/></Array></mxGeometry></mxCell></object>
<mxCell id="auth-to-secrets--label" value="KEY ACCESS" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=1;fontColor=#292E35;spacing=0;labelBackgroundColor=#FFFFFF;" vertex="1" parent="1" syncRole="edge-label" ownerId="auth-to-secrets"><mxGeometry x="822.42" y="711" width="85.16" height="22" as="geometry"/></mxCell>
<object id="browser" label="" componentId="browser" componentType="client" variant="external" status="stable" icon="user"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#69717D;strokeWidth=1.6;dashed=1;dashPattern=7 5;" vertex="1" parent="1"><mxGeometry x="105" y="210" width="200" height="125" as="geometry"/></mxCell></object>
<mxCell id="browser--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%227.5%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M5%2021a7%207%200%200%201%2014%200%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="browser" syncRole="icon"><mxGeometry x="87.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="browser--title" value="利用者ブラウザ" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="browser" syncRole="title" ownerId="browser"><mxGeometry x="8" y="53" width="184" height="24" as="geometry"/></mxCell>
<mxCell id="browser--subtitle" value="Untrusted client" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="browser" syncRole="subtitle" ownerId="browser"><mxGeometry x="8" y="89" width="184" height="24" as="geometry"/></mxCell>
<object id="cdn-waf" label="" componentId="cdn-waf" componentType="security" variant="external" status="stable" icon="shield"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#69717D;strokeWidth=1.6;dashed=1;dashPattern=7 5;" vertex="1" parent="1"><mxGeometry x="105" y="570" width="200" height="125" as="geometry"/></mxCell></object>
<mxCell id="cdn-waf--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v5c0%204.7-2.8%208.1-7%2010-4.2-1.9-7-5.3-7-10V6l7-3z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="cdn-waf" syncRole="icon"><mxGeometry x="87.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="cdn-waf--title" value="CDN / WAF" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="cdn-waf" syncRole="title" ownerId="cdn-waf"><mxGeometry x="8" y="53" width="184" height="24" as="geometry"/></mxCell>
<mxCell id="cdn-waf--subtitle" value="DDoS and filtering" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="cdn-waf" syncRole="subtitle" ownerId="cdn-waf"><mxGeometry x="8" y="89" width="184" height="24" as="geometry"/></mxCell>
<object id="api-gateway" label="" componentId="api-gateway" componentType="api" variant="realtime" status="stable" icon="network"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#343A42;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="460" y="210" width="190" height="125" as="geometry"/></mxCell></object>
<mxCell id="api-gateway--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%225%22%20cy%3D%2212%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%226%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M7%2012h5M14%2011l3.2-3.8M14%2013l3.2%203.8%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="api-gateway" syncRole="icon"><mxGeometry x="82.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="api-gateway--title" value="API GATEWAY" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="api-gateway" syncRole="title" ownerId="api-gateway"><mxGeometry x="8" y="53" width="174" height="24" as="geometry"/></mxCell>
<mxCell id="api-gateway--subtitle" value="Rate limit" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="api-gateway" syncRole="subtitle" ownerId="api-gateway"><mxGeometry x="8" y="89" width="174" height="24" as="geometry"/></mxCell>
<object id="web-application" label="" componentId="web-application" componentType="service" variant="realtime" status="stable" icon="monitor"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#343A42;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="715" y="210" width="190" height="125" as="geometry"/></mxCell></object>
<mxCell id="web-application--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2213%22%20rx%3D%221.5%22%2F%3E%3Cpath%20d%3D%22M8%2021h8M12%2017v4%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="web-application" syncRole="icon"><mxGeometry x="82.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="web-application--title" value="WEB&lt;br&gt;APPLICATION" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="web-application" syncRole="title" ownerId="web-application"><mxGeometry x="8" y="51" width="174" height="41" as="geometry"/></mxCell>
<mxCell id="web-application--subtitle" value="Business logic" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="web-application" syncRole="subtitle" ownerId="web-application"><mxGeometry x="8" y="89" width="174" height="24" as="geometry"/></mxCell>
<object id="auth-service" label="" componentId="auth-service" componentType="security" variant="warning" status="stable" icon="shield"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFF8E8;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="460" y="570" width="190" height="125" as="geometry"/></mxCell></object>
<mxCell id="auth-service--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v5c0%204.7-2.8%208.1-7%2010-4.2-1.9-7-5.3-7-10V6l7-3z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="auth-service" syncRole="icon"><mxGeometry x="82.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="auth-service--title" value="認証サービス" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="auth-service" syncRole="title" ownerId="auth-service"><mxGeometry x="8" y="53" width="174" height="24" as="geometry"/></mxCell>
<mxCell id="auth-service--subtitle" value="OIDC / policy" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="auth-service" syncRole="subtitle" ownerId="auth-service"><mxGeometry x="8" y="89" width="174" height="24" as="geometry"/></mxCell>
<object id="session-cache" label="" componentId="session-cache" componentType="cache" variant="delegated" status="stable" icon="storage"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#EDF3FF;strokeColor=#59697D;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="715" y="570" width="190" height="125" as="geometry"/></mxCell></object>
<mxCell id="session-cache--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h16v14H4zM4%209h16%22%2F%3E%3Cpath%20d%3D%22M16%2014h1%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="session-cache" syncRole="icon"><mxGeometry x="82.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="session-cache--title" value="SESSION CACHE" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="session-cache" syncRole="title" ownerId="session-cache"><mxGeometry x="8" y="53" width="174" height="24" as="geometry"/></mxCell>
<mxCell id="session-cache--subtitle" value="Short-lived state" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="session-cache" syncRole="subtitle" ownerId="session-cache"><mxGeometry x="8" y="89" width="174" height="24" as="geometry"/></mxCell>
<object id="application-db" label="" componentId="application-db" componentType="database" variant="warning" status="stable" icon="database"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFF8E8;strokeColor=#C58A21;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="1075" y="210" width="200" height="125" as="geometry"/></mxCell></object>
<mxCell id="application-db--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%225%22%20rx%3D%228%22%20ry%3D%223%22%2F%3E%3Cpath%20d%3D%22M4%205v6c0%201.7%203.6%203%208%203s8-1.3%208-3V5M4%2011v6c0%201.7%203.6%203%208%203s8-1.3%208-3v-6%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="application-db" syncRole="icon"><mxGeometry x="87.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="application-db--title" value="APPLICATION DB" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="application-db" syncRole="title" ownerId="application-db"><mxGeometry x="8" y="53" width="184" height="24" as="geometry"/></mxCell>
<mxCell id="application-db--subtitle" value="Encrypted records" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="application-db" syncRole="subtitle" ownerId="application-db"><mxGeometry x="8" y="89" width="184" height="24" as="geometry"/></mxCell>
<object id="secrets-manager" label="" componentId="secrets-manager" componentType="security" variant="critical" status="stable" icon="shield"><mxCell style="rounded=1;arcSize=4;whiteSpace=wrap;html=1;fillColor=#FFF0F0;strokeColor=#B44343;strokeWidth=1.6;" vertex="1" parent="1"><mxGeometry x="1075" y="570" width="200" height="125" as="geometry"/></mxCell></object>
<mxCell id="secrets-manager--icon" value="" style="shape=image;verticalLabelPosition=bottom;verticalAlign=top;imageAspect=0;aspect=fixed;image=data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23292E35%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203l7%203v5c0%204.7-2.8%208.1-7%2010-4.2-1.9-7-5.3-7-10V6l7-3z%22%2F%3E%3Cpath%20d%3D%22M9%2012l2%202%204-4%22%2F%3E%3C%2Fsvg%3E;" vertex="1" parent="secrets-manager" syncRole="icon"><mxGeometry x="87.5" y="17.5" width="25" height="25" as="geometry"/></mxCell>
<mxCell id="secrets-manager--title" value="SECRETS&lt;br&gt;MANAGER" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=15;fontStyle=1;fontColor=#292E35;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="secrets-manager" syncRole="title" ownerId="secrets-manager"><mxGeometry x="8" y="51" width="184" height="41" as="geometry"/></mxCell>
<mxCell id="secrets-manager--subtitle" value="Keys and credentials" style="text;html=1;strokeColor=none;fillColor=none;whiteSpace=wrap;rounded=0;fontFamily=Meiryo UI;fontSize=12;fontStyle=0;fontColor=#58616C;spacing=0;align=center;verticalAlign=middle;" vertex="1" parent="secrets-manager" syncRole="subtitle" ownerId="secrets-manager"><mxGeometry x="8" y="89" width="184" height="24" as="geometry"/></mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>
