セキュリティ・ゼロトラストアイコン (security & original_security)
Drawlib は、サイバーセキュリティ、ID・アクセス管理(IAM/SSO)、ネットワーク防御、エンドポイント保護(EDR/XDR)、および SIEM/SOAR 運用向けに 2 つのペアとなるアイコンモジュールを提供しています。公式セキュリティベンダーおよび OSS ツールロゴ 74 種を収録した drawlib.icons.security(SecurityIcon)と、全 74 種のブランドツインに 29 種のベンダー中立なセキュリティ・ゼロトラストコンセプトアイコンを加えた合計 103 種のフラット 2D パステルアイコンを収録した drawlib.icons.original_security(OriginalSecurityIcon)です。両モジュールとも アイコン概要 に記載された統一 API に準拠しており、アーキテクチャ図 とシームレスに連携します。
Source Code
from drawlib.canvas import save, setup
from drawlib.icons import original_security, security
from drawlib.shapes import rectangle
from drawlib.styles import Styles
from drawlib.text import text
setup(width=148, height=68)
columns = [
("IAM & SSO", "okta", security.okta, original_security.okta),
("Edge & WAF", "cloudflare", security.cloudflare, original_security.cloudflare),
("NGFW Defense", "palo_alto", security.palo_alto, original_security.palo_alto),
("EDR / XDR", "crowdstrike", security.crowdstrike, original_security.crowdstrike),
("CNAPP / Cloud", "wiz", security.wiz, original_security.wiz),
]
for col_idx, (cat_label, _, _, _) in enumerate(columns):
cx = 43.0 + col_idx * 22.8
text((cx, 62.0), cat_label, style=Styles.DarkBold.patch(text_size=10.5))
rows = [
(43.5, "Official Suite", "security (74)", Styles.Neutral),
(17.5, "2D Pastel Suite", "original_security (103)", Styles.PrimaryNeutral),
]
for row_idx, (cy, row_title, row_sub, row_style) in enumerate(rows):
rectangle((16.5, cy), width=25.0, height=22.0, style=row_style.patch(shape_r=2))
text((16.5, cy + 3.0), row_title, style=Styles.DarkBold.patch(text_size=10.0))
text((16.5, cy - 3.5), row_sub, style=Styles.Muted.patch(text_size=10.0))
for col_idx, (_, fn_name, fn_off, fn_orig) in enumerate(columns):
cx = 43.0 + col_idx * 22.8
rectangle((cx, cy), width=20.5, height=22.0, style=row_style.patch(shape_r=2))
icon_fn = fn_off if row_idx == 0 else fn_orig
icon_fn((cx, cy + 3.2), width=8.5, style=Styles.Primary)
text((cx, cy - 6.8), fn_name, style=Styles.DarkBold.patch(text_size=10.0))
save()
1. API シグネチャとツインモジュール構成
drawlib.icons.security および drawlib.icons.original_security のすべてのアイコン関数は、中心座標 xy=(cx, cy)、キャンバス単位での水平幅 width(1:1 の正方形アスペクト比)、および必須の style を受け取ります。
from drawlib.diagrams.architecture import Node, OriginalSecurityIcon, SecurityIcon
from drawlib.icons import (
original_security,
original_security_icon,
security,
security_icon,
)
from drawlib.styles import Styles
# 1. Direct module function calls (74 shared brand icons + 29 concept icons in original_security)
security.okta((30, 25), width=10.0, style=Styles.Primary)
original_security.okta((55, 25), width=10.0, style=Styles.Primary)
original_security.zero_trust((80, 25), width=10.0, style=Styles.Primary)
original_security.waf((105, 25), width=10.0, style=Styles.Primary)
# 2. Dynamic string lookup helpers
security_icon((30, 10), width=9.0, name="crowdstrike", style=Styles.Primary)
original_security_icon((55, 10), width=9.0, name="ddos_protection", style=Styles.Primary)
# 3. Strongly typed Enums for ArchitectureDiagram & SequenceDiagram
idp_node = Node("Okta IdP", icon=SecurityIcon.OKTA)
waf_node = Node("Edge WAF", icon=OriginalSecurityIcon.WAF)
| 機能・項目 | drawlib.icons.security |
drawlib.icons.original_security |
|---|---|---|
| ビジュアルスタイル | セキュリティベンダーおよび OSS プロジェクトの公式ロゴ | 統一感のある 2D パステルブランドツイン + ベンダー中立のセキュリティコンセプトアイコン |
| 正規アイコン総数 | 公式ブランドアイコン 74 種 | 103 種(ブランドツイン 74 種 + セキュリティコンセプトアイコン 29 種) |
| ダイアグラム Enum | SecurityIcon.<NAME> |
OriginalSecurityIcon.<NAME> |
| 動的ディスパッチャ | security_icon(xy, width, name=..., style=...) |
original_security_icon(xy, width, name=..., style=...) |
| アセットパッケージ | icon_security |
icon_original_security |
2. ブランド・ベンダーセキュリティアイコン (両モジュール共通の 74 種)
security と original_security は、ID プロバイダ、ハードウェアセキュリティキー、次世代ファイアウォール(NGFW)、SASE/ZTNA ゲートウェイ、エンドポイント検知・対応(EDR)、クラウドセキュリティ(CNAPP)、アプリケーションセキュリティテスト(SAST/DAST)を網羅する 74 種の正規ブランドおよび OSS ツール名を共有しています。
Source Code
from drawlib.canvas import save, setup
from drawlib.icons import security
from drawlib.shapes import rectangle
from drawlib.styles import Styles
from drawlib.text import text
setup(width=144, height=66)
row1 = [
("okta", "IAM / SSO", security.okta, Styles.Neutral),
("entra_id", "Directory / IdP", security.entra_id, Styles.PrimaryNeutral),
("auth0", "Customer IAM", security.auth0, Styles.Neutral),
("yubico", "Hardware Key", security.yubico, Styles.SecondaryNeutral),
("cloudflare", "WAF & DDoS", security.cloudflare, Styles.Neutral),
]
row2 = [
("palo_alto", "NGFW / SASE", security.palo_alto, Styles.Neutral),
("zscaler", "Zero-Trust", security.zscaler, Styles.SecondaryNeutral),
("crowdstrike", "EDR / XDR", security.crowdstrike, Styles.PrimaryNeutral),
("wiz", "Cloud CNAPP", security.wiz, Styles.Neutral),
("wazuh", "Open XDR/SIEM", security.wazuh, Styles.Neutral),
]
for row_idx, items in enumerate([row1, row2]):
cy = 48.0 if row_idx == 0 else 18.0
for col_idx, (fn_name, cat, icon_fn, card_st) in enumerate(items):
cx = 16.0 + col_idx * 28.0
rectangle((cx, cy), width=25.5, height=26.0, style=card_st.patch(shape_r=2))
icon_fn((cx, cy + 5.0), width=8.5, style=Styles.Primary)
text((cx, cy - 3.2), fn_name, style=Styles.DarkBold.patch(text_size=10.0))
text((cx, cy - 8.5), cat, style=Styles.Muted.patch(text_size=10.0))
save()
2.1. 共通ブランドアイコン全 74 種一覧
以下のすべての関数名は、security.<name>()(SecurityIcon.<NAME>)および original_security.<name>()(OriginalSecurityIcon.<NAME>)の両方で同一の名前として利用できます。
| カテゴリ | 数 | 正規関数名 (security.* & original_security.*) |
|---|---|---|
| ID 管理・SSO・MFA・認可 | 16 | auth0, authelia, authentik, cerbos, clerk, duo, entra_id, okta, onelogin, openfga, ory, permit_io, ping_identity, stytch, supertokens, workos |
| パスワード管理・PAM・踏み台・ハードウェアキー | 5 | bitwarden, cyberark, onepassword, teleport, yubico |
| PKI・TLS 証明書・暗号技術 | 5 | digicert, gnupg, lets_encrypt, sectigo, venafi |
| ネットワーク防御・NGFW・WAF・SASE・VPN | 9 | checkpoint, cloudflare, f5, fortinet, imperva, netskope, palo_alto, wireguard, zscaler |
| エンドポイント保護 (EDR/XDR)・アンチウイルス | 10 | crowdstrike, kaspersky, malwarebytes, microsoft_defender, osquery, sentinelone, sophos, symantec, trellix, trend_micro |
| クラウドセキュリティ (CNAPP)・脆弱性管理 | 8 | aqua_security, lacework, prisma_cloud, qualys, rapid7, sysdig, tenable, wiz |
| SIEM・SOAR・NDR・IDS/IPS・メールセキュリティ | 12 | crowdsec, darktrace, google_secops, graylog, proofpoint, qradar, snort, sumo_logic, suricata, vectra_ai, wazuh, zeek |
| AppSec (SAST/DAST)・ペネトレーションテスト・パケット解析 | 9 | burp_suite, checkmarx, gitleaks, metasploit, nmap, owasp, semgrep, veracode, wireshark |
3. ベンダー中立セキュリティコンセプトアイコン (original_security 収録の 29 種)
ベンダーに依存しないセキュリティアーキテクチャ、脅威モデル、OAuth2/OIDC 認証フロー、SOC プレイブックを設計する際のために、drawlib.icons.original_security(OriginalSecurityIcon)には 29 種の専用セキュリティコンセプトアイコンが用意されています。
Source Code
from drawlib.canvas import save, setup
from drawlib.icons import original_security
from drawlib.shapes import rectangle
from drawlib.styles import Styles
from drawlib.text import text
setup(width=144, height=66)
row1 = [
("zero_trust", "Zero-Trust", original_security.zero_trust, Styles.PrimaryNeutral),
("iam_sso", "Identity / SSO", original_security.iam_sso, Styles.Neutral),
("mfa_auth", "Multi-Factor", original_security.mfa_auth, Styles.Neutral),
("passkey", "WebAuthn", original_security.passkey, Styles.SecondaryNeutral),
("waf", "Web Firewall", original_security.waf, Styles.Neutral),
]
row2 = [
("ddos_protection", "DDoS Scrubbing", original_security.ddos_protection, Styles.Neutral),
("firewall", "Network FW", original_security.firewall, Styles.SecondaryNeutral),
("secret_vault", "Secrets Vault", original_security.secret_vault, Styles.Neutral),
("siem", "Log Analytics", original_security.siem, Styles.PrimaryNeutral),
("soc_center", "SOC Operations", original_security.soc_center, Styles.Neutral),
]
for row_idx, items in enumerate([row1, row2]):
cy = 48.0 if row_idx == 0 else 18.0
for col_idx, (fn_name, cat, icon_fn, card_st) in enumerate(items):
cx = 16.0 + col_idx * 28.0
rectangle((cx, cy), width=25.5, height=26.0, style=card_st.patch(shape_r=2))
icon_fn((cx, cy + 5.0), width=8.5, style=Styles.Primary)
text((cx, cy - 3.2), fn_name, style=Styles.DarkBold.patch(text_size=10.0))
text((cx, cy - 8.5), cat, style=Styles.Muted.patch(text_size=10.0))
save()
3.1. ベンダー中立セキュリティコンセプトアイコン全 29 種一覧
| カテゴリ | 数 | 正規関数名 (original_security.* / OriginalSecurityIcon.*) |
|---|---|---|
| ID・認証プロトコル・トークン | 8 | directory_service, iam_sso, jwt, mfa_auth, oauth2, oidc, passkey, saml |
| ゼロトラスト・境界防御・ネットワーク防御 | 9 | casb, ddos_protection, firewall, honeypot, ids_ips, pam_bastion, vpn_gateway, waf, zero_trust |
| データ保護・暗号化・シークレット管理 | 5 | dlp, encryption, hsm_kms, pki_ca, secret_vault |
| SOC・エンドポイント・脅威オペレーション | 7 | edr_xdr, email_security, siem, soar, soc_center, threat_intel, vulnerability_scan |
4. 実践的なアーキテクチャ図
以下の図は、ArchitectureDiagram と OriginalSecurityIcon を用いて、ゼロトラストエッジ防御および SOC テレメトリパイプラインを表現した例です。
from drawlib.canvas import clear, save, setup
from drawlib.diagrams.architecture import (
ArchitectureDiagram,
Node,
NodeGroup,
OriginalSecurityIcon,
)
from drawlib.styles import Styles
clear()
setup(width=144, height=74)
d = ArchitectureDiagram(
node_style=Styles.Primary,
node_text_style=Styles.DarkBold.patch(text_size=10.0),
edge_style=Styles.DarkBold,
edge_text_style=Styles.DarkBold.patch(text_size=10.0),
node_card_style=Styles.Neutral,
title="Zero-Trust Edge Scrubbing, OIDC Access & SOC Telemetry Architecture",
)
ddos = d.add(
Node(
"DDoS Edge\nProtection",
width=24,
height=18,
icon=OriginalSecurityIcon.DDOS_PROTECTION,
icon_size=7.5,
card_style=Styles.PrimaryNeutral,
),
xy=(10.0, 38.0),
)
perimeter = d.add(NodeGroup(title="Zero-Trust Perimeter & SOC Enclave", padding=5.0), xy=(40.0, 4.0))
waf = perimeter.add(
Node(
"Managed\nWAF",
width=24,
height=18,
icon=OriginalSecurityIcon.WAF,
icon_size=7.5,
),
xy=(12.0, 34.0),
)
sso = perimeter.add(
Node(
"OIDC / MFA\nIdentity Gate",
width=24,
height=18,
icon=OriginalSecurityIcon.MFA_AUTH,
icon_size=7.5,
card_style=Styles.PrimaryNeutral,
),
xy=(12.0, 6.0),
)
siem = perimeter.add(
Node(
"Central\nSIEM",
width=24,
height=18,
icon=OriginalSecurityIcon.SIEM,
icon_size=7.5,
card_style=Styles.SecondaryNeutral,
),
xy=(60.0, 34.0),
)
vault = perimeter.add(
Node(
"HSM & Secret\nVault",
width=24,
height=18,
icon=OriginalSecurityIcon.SECRET_VAULT,
icon_size=7.5,
),
xy=(60.0, 6.0),
)
d.connect(ddos, waf, label="Clean TLS", padding=1.5)
d.connect(waf, sso, label="Verify JWT", padding=1.5)
d.connect(waf, siem, label="Audit Logs", padding=1.5)
d.connect(sso, vault, label="KMS Grant", padding=1.5)
d.draw(xy=(4.0, 4.0))
save()
[!TIP] 物理セキュリティゲートや監視カメラについては データセンター・ファシリティアイコン (
facility&original_facility) を、DevSecOps および CI/CD パイプラインツール(vault、trivy、sonarqube)については DevOps・オブザーバビリティアイコン (devops&original_devops) を参照してください。