<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://cramsession.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mflavell</id>
	<title>Cramsession - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://cramsession.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mflavell"/>
	<link rel="alternate" type="text/html" href="https://cramsession.net/index.php/Special:Contributions/Mflavell"/>
	<updated>2026-10-19T00:52:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1881</id>
		<title>CyberSecurity/Soft Skills/Task Planning</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1881"/>
		<updated>2026-10-13T15:17:41Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* The Daily Operating Timeline */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Protocol: Work Planning &amp;amp; Execution =&lt;br /&gt;
&lt;br /&gt;
This document outlines the standard operating procedure for converting high-level objectives into daily execution, ensuring continuous momentum while buffering against morning operational noise and ad-hoc requests.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Architecture ==&lt;br /&gt;
&lt;br /&gt;
The workflow relies on a strict separation of concerns between storage and execution to prevent cognitive overload during deep work blocks.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System of Record (Digital Task Manager / Jira):&#039;&#039;&#039; Holds the unedited inventory of tickets, monthly goals, study milestones, and backlog items. Manages dates, dependencies, and URLs.&lt;br /&gt;
* &#039;&#039;&#039;System of Execution (Kindle Scribe / Notebook):&#039;&#039;&#039; Dedicated solely to the current day&#039;s active execution and inbox scratchpad. Sits open on the desk as an immutable focus anchor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Monthly Goals (The Compass) ==&lt;br /&gt;
&lt;br /&gt;
Monthly goals define the broader strategic targets. These are directional and often represent complete project phases or certification milestones.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 2 to 4 major objectives per month.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Outcome-based.&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Complete Domain 4 of study curriculum,&amp;quot; &amp;quot;Deploy upgraded WebDesk module,&amp;quot; or &amp;quot;Finalize quarterly security audit.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Last Friday of the month.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Weekly MITs (The Quota) ==&lt;br /&gt;
&lt;br /&gt;
Weekly Most Important Tasks (MITs) break monthly goals down into a 5-day quota. They define the required outcomes for a successful week but are not used as daily checklist items.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 3 to 5 outcomes per week.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Quotas and deliverables. &lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Close 3 high-priority tickets,&amp;quot; &amp;quot;Study 4 hours total,&amp;quot; or &amp;quot;Draft initial remediation notes for new CVEs.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Sunday evening or Monday morning before operations begin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Daily Execution (The Engine) ==&lt;br /&gt;
&lt;br /&gt;
Daily tasks are concrete, non-negotiable execution blocks that advance the Weekly MITs. They must be defined by terminal actions (Draft, Submit, Review, Deploy) rather than open-ended time commitments.&lt;br /&gt;
&lt;br /&gt;
=== The Daily Operating Timeline ===&lt;br /&gt;
&lt;br /&gt;
To insulate the daily plan from early morning volatility, the daily lock occurs &#039;&#039;after&#039;&#039; the morning team sync.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Phase !! Action Protocol&lt;br /&gt;
|-&lt;br /&gt;
|06:00 -&lt;br /&gt;
07:00&lt;br /&gt;
|Fitness&lt;br /&gt;
|Morning workout&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;07:30 - 08:00&#039;&#039;&#039; || Daily standup || Do not edit the daily execution plan. Treat the call as an external audit. Log incoming requests, ticket mentions, or blockers purely as raw bullet points in the Scratchpad margin.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;08:00 - 08:15&#039;&#039;&#039; || Triage &amp;amp; Lock || Run the Scratchpad through the impact filter (Blockers become Task #1; Actionable Work goes to digital backlog; Noise gets ignored). Write down the final 1-3 Daily Actions on the E-Paper. Lock the list. Assign calendar focus blocks based on estimated time.&lt;br /&gt;
|-&lt;br /&gt;
|9:00 -&lt;br /&gt;
9:30&lt;br /&gt;
|Fitness&lt;br /&gt;
|Morning walk&lt;br /&gt;
|-&lt;br /&gt;
|11:00 -&lt;br /&gt;
12:00&lt;br /&gt;
|Fitness break&lt;br /&gt;
|Exercise and lunch &lt;br /&gt;
|-&lt;br /&gt;
|15:00&lt;br /&gt;
|Shutdown&lt;br /&gt;
|No items unless emergency after 15:00&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rules of Daily Engagement ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;The Rule of 3:&#039;&#039;&#039; Commit to exactly 1 to 3 core actions per day. If these are completed, the day is a success regardless of incoming noise.&lt;br /&gt;
# &#039;&#039;&#039;Calendar Anchors:&#039;&#039;&#039; Quota-based tasks (e.g., studying) are protected calendar appointments, not checkbox items.&lt;br /&gt;
# &#039;&#039;&#039;Scratchpad Isolation:&#039;&#039;&#039; Ad-hoc requests received during the day are logged in the E-Paper margin, never added to the day&#039;s active execution list unless it is a P0 production blocker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4. Evening Sweep (Shutdown Protocol) ==&lt;br /&gt;
&lt;br /&gt;
At the end of the workday, perform a 5-minute staging routine to close out the current cycle and prepare the next.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Process the Scratchpad:&#039;&#039;&#039; Move actionable margin notes into the digital task manager or Jira backlog.&lt;br /&gt;
# &#039;&#039;&#039;Clear the Board:&#039;&#039;&#039; Cross off completed daily items.&lt;br /&gt;
# &#039;&#039;&#039;Draft Candidates:&#039;&#039;&#039; Pencil in the 1-2 self-directed core actions for tomorrow on a fresh page. Do not finalize until the 07:30 post-standup lock tomorrow morning.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1880</id>
		<title>CyberSecurity/Soft Skills/Task Planning</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1880"/>
		<updated>2026-10-12T22:11:47Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Protocol: Work Planning &amp;amp; Execution =&lt;br /&gt;
&lt;br /&gt;
This document outlines the standard operating procedure for converting high-level objectives into daily execution, ensuring continuous momentum while buffering against morning operational noise and ad-hoc requests.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== System Architecture ==&lt;br /&gt;
&lt;br /&gt;
The workflow relies on a strict separation of concerns between storage and execution to prevent cognitive overload during deep work blocks.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System of Record (Digital Task Manager / Jira):&#039;&#039;&#039; Holds the unedited inventory of tickets, monthly goals, study milestones, and backlog items. Manages dates, dependencies, and URLs.&lt;br /&gt;
* &#039;&#039;&#039;System of Execution (Kindle Scribe / Notebook):&#039;&#039;&#039; Dedicated solely to the current day&#039;s active execution and inbox scratchpad. Sits open on the desk as an immutable focus anchor.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 1. Monthly Goals (The Compass) ==&lt;br /&gt;
&lt;br /&gt;
Monthly goals define the broader strategic targets. These are directional and often represent complete project phases or certification milestones.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 2 to 4 major objectives per month.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Outcome-based.&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Complete Domain 4 of study curriculum,&amp;quot; &amp;quot;Deploy upgraded WebDesk module,&amp;quot; or &amp;quot;Finalize quarterly security audit.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Last Friday of the month.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 2. Weekly MITs (The Quota) ==&lt;br /&gt;
&lt;br /&gt;
Weekly Most Important Tasks (MITs) break monthly goals down into a 5-day quota. They define the required outcomes for a successful week but are not used as daily checklist items.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 3 to 5 outcomes per week.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Quotas and deliverables. &lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Close 3 high-priority tickets,&amp;quot; &amp;quot;Study 4 hours total,&amp;quot; or &amp;quot;Draft initial remediation notes for new CVEs.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Sunday evening or Monday morning before operations begin.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 3. Daily Execution (The Engine) ==&lt;br /&gt;
&lt;br /&gt;
Daily tasks are concrete, non-negotiable execution blocks that advance the Weekly MITs. They must be defined by terminal actions (Draft, Submit, Review, Deploy) rather than open-ended time commitments.&lt;br /&gt;
&lt;br /&gt;
=== The Daily Operating Timeline ===&lt;br /&gt;
&lt;br /&gt;
To insulate the daily plan from early morning volatility, the daily lock occurs &#039;&#039;after&#039;&#039; the morning team sync.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Phase !! Action Protocol&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;06:30 - 07:00&#039;&#039;&#039; || Physical Reset &amp;amp; Prep || Zero work chat/email. Ground physical state. Open strictly to a blank E-Paper Scratchpad. Pre-draft a 30-second factual, metric-driven status update.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;07:00 - 07:30&#039;&#039;&#039; || Call / Intake Buffer || Do not edit the daily execution plan. Treat the call as an external audit. Log incoming requests, ticket mentions, or blockers purely as raw bullet points in the Scratchpad margin.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;07:30 - 07:35&#039;&#039;&#039; || Triage &amp;amp; Lock || Run the Scratchpad through the impact filter (Blockers become Task #1; Actionable Work goes to digital backlog; Noise gets ignored). Write down the final 1-3 Daily Actions on the E-Paper. Lock the list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rules of Daily Engagement ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;The Rule of 3:&#039;&#039;&#039; Commit to exactly 1 to 3 core actions per day. If these are completed, the day is a success regardless of incoming noise.&lt;br /&gt;
# &#039;&#039;&#039;Calendar Anchors:&#039;&#039;&#039; Quota-based tasks (e.g., studying) are protected calendar appointments, not checkbox items.&lt;br /&gt;
# &#039;&#039;&#039;Scratchpad Isolation:&#039;&#039;&#039; Ad-hoc requests received during the day are logged in the E-Paper margin, never added to the day&#039;s active execution list unless it is a P0 production blocker.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 4. Evening Sweep (Shutdown Protocol) ==&lt;br /&gt;
&lt;br /&gt;
At the end of the workday, perform a 5-minute staging routine to close out the current cycle and prepare the next.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Process the Scratchpad:&#039;&#039;&#039; Move actionable margin notes into the digital task manager or Jira backlog.&lt;br /&gt;
# &#039;&#039;&#039;Clear the Board:&#039;&#039;&#039; Cross off completed daily items.&lt;br /&gt;
# &#039;&#039;&#039;Draft Candidates:&#039;&#039;&#039; Pencil in the 1-2 self-directed core actions for tomorrow on a fresh page. Do not finalize until the 07:30 post-standup lock tomorrow morning.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1879</id>
		<title>CyberSecurity/Soft Skills/Task Planning</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=CyberSecurity/Soft_Skills/Task_Planning&amp;diff=1879"/>
		<updated>2026-10-12T22:10:12Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;= Operating Protocol: Work Planning &amp;amp; Execution =  This document outlines the standard operating procedure for converting high-level objectives into daily execution, ensuring continuous momentum while buffering against morning operational noise and ad-hoc requests.  __TOC__  == System Architecture ==  The workflow relies on a strict separation of concerns between storage and execution to prevent cognitive overload during deep work blocks.  * &amp;#039;&amp;#039;&amp;#039;System of Record (Digital...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Operating Protocol: Work Planning &amp;amp; Execution =&lt;br /&gt;
&lt;br /&gt;
This document outlines the standard operating procedure for converting high-level objectives into daily execution, ensuring continuous momentum while buffering against morning operational noise and ad-hoc requests.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== System Architecture ==&lt;br /&gt;
&lt;br /&gt;
The workflow relies on a strict separation of concerns between storage and execution to prevent cognitive overload during deep work blocks.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;System of Record (Digital Task Manager / Jira):&#039;&#039;&#039; Holds the unedited inventory of tickets, monthly goals, study milestones, and backlog items. Manages dates, dependencies, and URLs.&lt;br /&gt;
* &#039;&#039;&#039;System of Execution (Kindle Scribe / Notebook):&#039;&#039;&#039; Dedicated solely to the current day&#039;s active execution and inbox scratchpad. Sits open on the desk as an immutable focus anchor.&lt;br /&gt;
&lt;br /&gt;
== 1. Monthly Goals (The Compass) ==&lt;br /&gt;
&lt;br /&gt;
Monthly goals define the broader strategic targets. These are directional and often represent complete project phases or certification milestones.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 2 to 4 major objectives per month.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Outcome-based.&lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Complete Domain 4 of study curriculum,&amp;quot; &amp;quot;Deploy upgraded WebDesk module,&amp;quot; or &amp;quot;Finalize quarterly security audit.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Last Friday of the month.&lt;br /&gt;
&lt;br /&gt;
== 2. Weekly MITs (The Quota) ==&lt;br /&gt;
&lt;br /&gt;
Weekly Most Important Tasks (MITs) break monthly goals down into a 5-day quota. They define the required outcomes for a successful week but are not used as daily checklist items.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Scope:&#039;&#039;&#039; 3 to 5 outcomes per week.&lt;br /&gt;
* &#039;&#039;&#039;Format:&#039;&#039;&#039; Quotas and deliverables. &lt;br /&gt;
* &#039;&#039;&#039;Examples:&#039;&#039;&#039; &amp;quot;Close 3 high-priority tickets,&amp;quot; &amp;quot;Study 4 hours total,&amp;quot; or &amp;quot;Draft initial remediation notes for new CVEs.&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;Review Cadence:&#039;&#039;&#039; Sunday evening or Monday morning before operations begin.&lt;br /&gt;
&lt;br /&gt;
== 3. Daily Execution (The Engine) ==&lt;br /&gt;
&lt;br /&gt;
Daily tasks are concrete, non-negotiable execution blocks that advance the Weekly MITs. They must be defined by terminal actions (Draft, Submit, Review, Deploy) rather than open-ended time commitments.&lt;br /&gt;
&lt;br /&gt;
=== The Daily Operating Timeline ===&lt;br /&gt;
&lt;br /&gt;
To insulate the daily plan from early morning volatility, the daily lock occurs &#039;&#039;after&#039;&#039; the morning team sync.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Time !! Phase !! Action Protocol&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;06:30 - 07:00&#039;&#039;&#039; || Physical Reset &amp;amp; Prep || Zero work chat/email. Ground physical state. Open strictly to a blank E-Paper Scratchpad. Pre-draft a 30-second factual, metric-driven status update.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;07:00 - 07:30&#039;&#039;&#039; || Call / Intake Buffer || Do not edit the daily execution plan. Treat the call as an external audit. Log incoming requests, ticket mentions, or blockers purely as raw bullet points in the Scratchpad margin.&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;&#039;07:30 - 07:35&#039;&#039;&#039; || Triage &amp;amp; Lock || Run the Scratchpad through the impact filter (Blockers become Task #1; Actionable Work goes to digital backlog; Noise gets ignored). Write down the final 1-3 Daily Actions on the E-Paper. Lock the list.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Rules of Daily Engagement ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;The Rule of 3:&#039;&#039;&#039; Commit to exactly 1 to 3 core actions per day. If these are completed, the day is a success regardless of incoming noise.&lt;br /&gt;
# &#039;&#039;&#039;Calendar Anchors:&#039;&#039;&#039; Quota-based tasks (e.g., studying) are protected calendar appointments, not checkbox items.&lt;br /&gt;
# &#039;&#039;&#039;Scratchpad Isolation:&#039;&#039;&#039; Ad-hoc requests received during the day are logged in the E-Paper margin, never added to the day&#039;s active execution list unless it is a P0 production blocker.&lt;br /&gt;
&lt;br /&gt;
== 4. Evening Sweep (Shutdown Protocol) ==&lt;br /&gt;
&lt;br /&gt;
At the end of the workday, perform a 5-minute staging routine to close out the current cycle and prepare the next.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Process the Scratchpad:&#039;&#039;&#039; Move actionable margin notes into the digital task manager or Jira backlog.&lt;br /&gt;
# &#039;&#039;&#039;Clear the Board:&#039;&#039;&#039; Cross off completed daily items.&lt;br /&gt;
# &#039;&#039;&#039;Draft Candidates:&#039;&#039;&#039; Pencil in the 1-2 self-directed core actions for tomorrow on a fresh page. Do not finalize until the 07:30 post-standup lock tomorrow morning.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/Soft_Skills&amp;diff=1878</id>
		<title>Cybersecurity/Soft Skills</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/Soft_Skills&amp;diff=1878"/>
		<updated>2026-10-12T22:09:13Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;🗓️Task Planning&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;🗓️[[CyberSecurity/Soft Skills/Task Planning|Task Planning]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1877</id>
		<title>Cybersecurity</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1877"/>
		<updated>2026-10-12T22:07:40Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cvedetails.com 🔍CVE Search]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerability tree |🌴Vulnerability tree]]&lt;br /&gt;
&lt;br /&gt;
[[Pentesting |✒️Pentesting]]&lt;br /&gt;
&lt;br /&gt;
[[Assessing Risk|😲Risk]]&lt;br /&gt;
&lt;br /&gt;
[[The Dirty Dozen|✈️Dirty dozen]]&lt;br /&gt;
&lt;br /&gt;
[[MTO triangle|📐Motive Technology Opportunity]]&lt;br /&gt;
&lt;br /&gt;
[[North / South &amp;amp; East West Network Security |🧭North/South &amp;amp; East/West Movements]]&lt;br /&gt;
&lt;br /&gt;
[https://cheatsheetseries.owasp.org/index.html 🐝OS Wasp Cheat Sheets]&lt;br /&gt;
&lt;br /&gt;
[[Cyber Kill Chain|⛓️‍💥Cyber Kill Chain]]&lt;br /&gt;
&lt;br /&gt;
[[Cybersecurity/AWS Cybersecurity papers|🌤️AWS Cybersecurity papers]]&lt;br /&gt;
&lt;br /&gt;
🍦[[Cybersecurity/Soft Skills|Soft Skills]]&lt;br /&gt;
&lt;br /&gt;
[https://media.defense.gov/2025/Jun/23/2003742198/-1/-1/0/CSI_MEMORY_SAFE_LANGUAGES_REDUCING_VULNERABILITIES_IN_MODERN_SOFTWARE_DEVELOPMENT.PDF Memory Safe Development]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio/SFO_Approach&amp;diff=1876</id>
		<title>Ham Radio/SFO Approach</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio/SFO_Approach&amp;diff=1876"/>
		<updated>2026-10-08T20:28:10Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;=== Garage G (International) Monitoring Setup ===  # &amp;#039;&amp;#039;&amp;#039;Spotting Location:&amp;#039;&amp;#039;&amp;#039; Drive up to &amp;#039;&amp;#039;&amp;#039;Level 8 (Roof)&amp;#039;&amp;#039;&amp;#039; and park along the &amp;#039;&amp;#039;&amp;#039;northeast or east perimeter wall&amp;#039;&amp;#039;&amp;#039;. This gives you an unobstructed line of sight down the 28 approaches, the taxiways, and the Terminal G gate gates. # &amp;#039;&amp;#039;&amp;#039;Scanner Reception:&amp;#039;&amp;#039;&amp;#039; From the open roof deck, you are no longer limited by distance or terrain. You will have full, clear two-way reception of both the controllers and the aircraft acro...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Garage G (International) Monitoring Setup ===&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Spotting Location:&#039;&#039;&#039; Drive up to &#039;&#039;&#039;Level 8 (Roof)&#039;&#039;&#039; and park along the &#039;&#039;&#039;northeast or east perimeter wall&#039;&#039;&#039;. This gives you an unobstructed line of sight down the 28 approaches, the taxiways, and the Terminal G gate gates.&lt;br /&gt;
# &#039;&#039;&#039;Scanner Reception:&#039;&#039;&#039; From the open roof deck, you are no longer limited by distance or terrain. You will have full, clear two-way reception of both the controllers and the aircraft across all phases:&lt;br /&gt;
#* &#039;&#039;&#039;133.950 MHz&#039;&#039;&#039; (NorCal Arrival)&lt;br /&gt;
#* &#039;&#039;&#039;134.500 / 128.325 MHz&#039;&#039;&#039; (NorCal Vectors/Final)&lt;br /&gt;
#* &#039;&#039;&#039;120.500 MHz&#039;&#039;&#039; (SFO Tower)&lt;br /&gt;
#* &#039;&#039;&#039;121.800 MHz&#039;&#039;&#039; (SFO Ground)&lt;br /&gt;
#* &#039;&#039;&#039;131.000 MHz&#039;&#039;&#039; (United / SFO Ramp - Terminal G alley)&lt;br /&gt;
# &#039;&#039;&#039;Flight Tracker Cue:&#039;&#039;&#039; When checking FlightAware or FlightRadar24 while en route, watch for UA190 descending through FL240 (24,000 ft) offshore west of Marin County. That descent point signals that NorCal contact is about 5 minutes away.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Favorite list for Uniden Scanner:&amp;lt;blockquote&amp;gt;C-Group	SFO Tower &amp;amp; Approach	0	0	0	0	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO NorCal Coast	133.950000	AM	0	0	0	0	1	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO NorCal Downwind	134.500000	AM	0	0	0	0	1	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO NorCal Vectors	128.325000	AM	0	0	0	0	1	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO Tower 28L/R	120.500000	AM	0	0	0	0	1	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO Ground 28s	121.800000	AM	0	0	0	0	1	0&lt;br /&gt;
&lt;br /&gt;
C-Freq	SFO West Ramp G	131.000000	AM	0	0	0	0	1	0&amp;lt;/blockquote&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1875</id>
		<title>Ham Radio</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1875"/>
		<updated>2026-10-08T20:26:12Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Uniden Scanner =&lt;br /&gt;
[[Ham Radio/Programming a Uniden SD card scanner without Windows|Programming a Uniden SD card scanner without Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Ham Radio/SFO Approach|SFO Approach]] &lt;br /&gt;
&lt;br /&gt;
= Satelite =&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/track/?lang=en&amp;amp;satellite=ISS ISS Pass Calculator]&lt;br /&gt;
&lt;br /&gt;
[https://www.utctime.net/utc-time-zone-converter UTC Time Converter]&lt;br /&gt;
&lt;br /&gt;
[https://www.ariss.org/current-status-of-iss-stations.html ISS Releater]&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/status/ Satelite Status]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
[https://www.swpc.noaa.gov Space Weather]&lt;br /&gt;
&lt;br /&gt;
[https://www.qsl.net/w4sat/horizon.htm Line of siite calculator]&lt;br /&gt;
&lt;br /&gt;
[https://vhf.dxview.org VHF Propagation map]&lt;br /&gt;
&lt;br /&gt;
[[VV-898S Tips]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DMR =&lt;br /&gt;
&lt;br /&gt;
[https://hose.brandmeister.network Brandmeister Hoseline]&lt;br /&gt;
[https://brandmeister.network/?page=talkgroups Talkgroups]&lt;br /&gt;
&lt;br /&gt;
[[Brandmister essential talkgroups]]&lt;br /&gt;
&lt;br /&gt;
[[BayNet]]&lt;br /&gt;
&lt;br /&gt;
[[Anytone uv878]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio/Programming_a_Uniden_SD_card_scanner_without_Windows&amp;diff=1874</id>
		<title>Ham Radio/Programming a Uniden SD card scanner without Windows</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio/Programming_a_Uniden_SD_card_scanner_without_Windows&amp;diff=1874"/>
		<updated>2026-10-08T20:25:00Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;These models store their operating database and receive firmware updates directly through the microSD card. You &amp;#039;&amp;#039;&amp;#039;do not need Windows&amp;#039;&amp;#039;&amp;#039; for manual database updates or firmware flashing if you can obtain the raw payload file:   &amp;#039;&amp;#039;&amp;#039;1.Mount the SD Card:&amp;#039;&amp;#039;&amp;#039;Linux or macOS.  Power off the scanner, pop out the micro-SD card, and insert it directly into your Mac/Linux card reader (or plug the scanner in via USB and choose &amp;#039;&amp;#039;&amp;#039;Mass Storage Mode&amp;#039;&amp;#039;&amp;#039;).  &amp;#039;&amp;#039;Verification:&amp;#039;&amp;#039; Check that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These models store their operating database and receive firmware updates directly through the microSD card. You &#039;&#039;&#039;do not need Windows&#039;&#039;&#039; for manual database updates or firmware flashing if you can obtain the raw payload file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Mount the SD Card:&#039;&#039;&#039;Linux or macOS.&lt;br /&gt;
&lt;br /&gt;
Power off the scanner, pop out the micro-SD card, and insert it directly into your Mac/Linux card reader (or plug the scanner in via USB and choose &#039;&#039;&#039;Mass Storage Mode&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Check that the volume mounts cleanly as a standard FAT32 drive showing a top-level directory named &amp;lt;code&amp;gt;BCDx36HP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;HP1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Update Firmware (Offline BIN Method):&#039;&#039;&#039;No software required.&lt;br /&gt;
&lt;br /&gt;
Uniden firmware payloads are standalone &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; files. Download the latest official firmware binary for your model (hosted on Uniden&#039;s support repos or community mirrors like RadioReference), copy the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; file directly into the &amp;lt;code&amp;gt;/firmware&amp;lt;/code&amp;gt; directory on the SD card root, and properly unmount/eject the disk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Disconnect and boot the scanner on battery/wall power. The display will immediately show a progress bar reading &#039;&#039;“Applying Firmware Update”&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Update Database (Weekly RadioReference HPDB):&#039;&#039;&#039;Native Python script.&lt;br /&gt;
&lt;br /&gt;
Community Python utilities (such as &amp;lt;code&amp;gt;uniden-hpdb-sync&amp;lt;/code&amp;gt;) can pull the weekly Master HPDB directly from Uniden’s CDN, unpack the encryption/delta, and write it straight to the SD card&#039;s &amp;lt;code&amp;gt;HPDB/&amp;lt;/code&amp;gt; directory natively on macOS or Linux without Sentinel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Boot the scanner and check &amp;lt;code&amp;gt;Menu&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Settings&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;See Scanner Info&amp;lt;/code&amp;gt; to verify the DB date stamp advances.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.Favorite Lists &amp;amp; Programming:&#039;&#039;&#039;Direct file editing.&lt;br /&gt;
&lt;br /&gt;
Favorites lists on these models are plain-text config files inside the &amp;lt;code&amp;gt;/favorite_lists&amp;lt;/code&amp;gt; folder. You can edit them using any standard text editor or write lightweight scripts to inject frequencies directly into the configuration files.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1873</id>
		<title>Ham Radio</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1873"/>
		<updated>2026-10-08T20:24:25Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Uniden Scanner =&lt;br /&gt;
[[Ham Radio/Programming a Uniden SD card scanner without Windows|Programming a Uniden SD card scanner without Windows]]&lt;br /&gt;
&lt;br /&gt;
= Satelite =&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/track/?lang=en&amp;amp;satellite=ISS ISS Pass Calculator]&lt;br /&gt;
&lt;br /&gt;
[https://www.utctime.net/utc-time-zone-converter UTC Time Converter]&lt;br /&gt;
&lt;br /&gt;
[https://www.ariss.org/current-status-of-iss-stations.html ISS Releater]&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/status/ Satelite Status]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
[https://www.swpc.noaa.gov Space Weather]&lt;br /&gt;
&lt;br /&gt;
[https://www.qsl.net/w4sat/horizon.htm Line of siite calculator]&lt;br /&gt;
&lt;br /&gt;
[https://vhf.dxview.org VHF Propagation map]&lt;br /&gt;
&lt;br /&gt;
[[VV-898S Tips]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DMR =&lt;br /&gt;
&lt;br /&gt;
[https://hose.brandmeister.network Brandmeister Hoseline]&lt;br /&gt;
[https://brandmeister.network/?page=talkgroups Talkgroups]&lt;br /&gt;
&lt;br /&gt;
[[Brandmister essential talkgroups]]&lt;br /&gt;
&lt;br /&gt;
[[BayNet]]&lt;br /&gt;
&lt;br /&gt;
[[Anytone uv878]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio%5CUniden_scanner_programming&amp;diff=1872</id>
		<title>Ham Radio\Uniden scanner programming</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio%5CUniden_scanner_programming&amp;diff=1872"/>
		<updated>2026-10-08T20:22:06Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These models store their operating database and receive firmware updates directly through the microSD card. You &#039;&#039;&#039;do not need Windows&#039;&#039;&#039; for manual database updates or firmware flashing if you can obtain the raw payload file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Mount the SD Card:&#039;&#039;&#039;Linux or macOS. &lt;br /&gt;
&lt;br /&gt;
Power off the scanner, pop out the micro-SD card, and insert it directly into your Mac/Linux card reader (or plug the scanner in via USB and choose &#039;&#039;&#039;Mass Storage Mode&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Check that the volume mounts cleanly as a standard FAT32 drive showing a top-level directory named &amp;lt;code&amp;gt;BCDx36HP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;HP1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Update Firmware (Offline BIN Method):&#039;&#039;&#039;No software required.&lt;br /&gt;
&lt;br /&gt;
Uniden firmware payloads are standalone &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; files. Download the latest official firmware binary for your model (hosted on Uniden&#039;s support repos or community mirrors like RadioReference), copy the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; file directly into the &amp;lt;code&amp;gt;/firmware&amp;lt;/code&amp;gt; directory on the SD card root, and properly unmount/eject the disk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Disconnect and boot the scanner on battery/wall power. The display will immediately show a progress bar reading &#039;&#039;“Applying Firmware Update”&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Update Database (Weekly RadioReference HPDB):&#039;&#039;&#039;Native Python script.&lt;br /&gt;
&lt;br /&gt;
Community Python utilities (such as &amp;lt;code&amp;gt;uniden-hpdb-sync&amp;lt;/code&amp;gt;) can pull the weekly Master HPDB directly from Uniden’s CDN, unpack the encryption/delta, and write it straight to the SD card&#039;s &amp;lt;code&amp;gt;HPDB/&amp;lt;/code&amp;gt; directory natively on macOS or Linux without Sentinel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Boot the scanner and check &amp;lt;code&amp;gt;Menu&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Settings&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;See Scanner Info&amp;lt;/code&amp;gt; to verify the DB date stamp advances.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.Favorite Lists &amp;amp; Programming:&#039;&#039;&#039;Direct file editing.&lt;br /&gt;
&lt;br /&gt;
Favorites lists on these models are plain-text config files inside the &amp;lt;code&amp;gt;/favorite_lists&amp;lt;/code&amp;gt; folder. You can edit them using any standard text editor or write lightweight scripts to inject frequencies directly into the configuration files.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio%5CUniden_scanner_programming&amp;diff=1871</id>
		<title>Ham Radio\Uniden scanner programming</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio%5CUniden_scanner_programming&amp;diff=1871"/>
		<updated>2026-10-08T20:21:20Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;These models store their operating database and receive firmware updates directly through the microSD card. You &amp;#039;&amp;#039;&amp;#039;do not need Windows&amp;#039;&amp;#039;&amp;#039; for manual database updates or firmware flashing if you can obtain the raw payload file:   &amp;#039;&amp;#039;&amp;#039;1.Mount the SD Card:&amp;#039;&amp;#039;&amp;#039;Linux or macOS.  Power off the scanner, pop out the micro-SD card, and insert it directly into your Mac/Linux card reader (or plug the scanner in via USB and choose &amp;#039;&amp;#039;&amp;#039;Mass Storage Mode&amp;#039;&amp;#039;&amp;#039;).  &amp;#039;&amp;#039;Verification:&amp;#039;&amp;#039; Check that...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These models store their operating database and receive firmware updates directly through the microSD card. You &#039;&#039;&#039;do not need Windows&#039;&#039;&#039; for manual database updates or firmware flashing if you can obtain the raw payload file:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.Mount the SD Card:&#039;&#039;&#039;Linux or macOS.&lt;br /&gt;
&lt;br /&gt;
Power off the scanner, pop out the micro-SD card, and insert it directly into your Mac/Linux card reader (or plug the scanner in via USB and choose &#039;&#039;&#039;Mass Storage Mode&#039;&#039;&#039;).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Check that the volume mounts cleanly as a standard FAT32 drive showing a top-level directory named &amp;lt;code&amp;gt;BCDx36HP&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;HP1&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.Update Firmware (Offline BIN Method):&#039;&#039;&#039;No software required.&lt;br /&gt;
&lt;br /&gt;
Uniden firmware payloads are standalone &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; files. Download the latest official firmware binary for your model (hosted on Uniden&#039;s support repos or community mirrors like RadioReference), copy the &amp;lt;code&amp;gt;.bin&amp;lt;/code&amp;gt; file directly into the &amp;lt;code&amp;gt;/firmware&amp;lt;/code&amp;gt; directory on the SD card root, and properly unmount/eject the disk.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Disconnect and boot the scanner on battery/wall power. The display will immediately show a progress bar reading &#039;&#039;“Applying Firmware Update”&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.Update Database (Weekly RadioReference HPDB):&#039;&#039;&#039;Native Python script.&lt;br /&gt;
&lt;br /&gt;
Community Python utilities (such as &amp;lt;code&amp;gt;uniden-hpdb-sync&amp;lt;/code&amp;gt;) can pull the weekly Master HPDB directly from Uniden’s CDN, unpack the encryption/delta, and write it straight to the SD card&#039;s &amp;lt;code&amp;gt;HPDB/&amp;lt;/code&amp;gt; directory natively on macOS or Linux without Sentinel.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Verification:&#039;&#039; Boot the scanner and check &amp;lt;code&amp;gt;Menu&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Settings&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;See Scanner Info&amp;lt;/code&amp;gt; to verify the DB date stamp advances.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4.Favorite Lists &amp;amp; Programming:&#039;&#039;&#039;Direct file editing.&lt;br /&gt;
&lt;br /&gt;
Favorites lists on these models are plain-text config files inside the &amp;lt;code&amp;gt;/favorite_lists&amp;lt;/code&amp;gt; folder. You can edit them using any standard text editor or write lightweight scripts to inject frequencies directly into the configuration files.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1870</id>
		<title>Ham Radio</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Ham_Radio&amp;diff=1870"/>
		<updated>2026-10-08T20:19:11Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Uniden Scanner =&lt;br /&gt;
[[Ham Radio\Uniden scanner programming|Programming a Uniden SD card scanner without Windows]]&lt;br /&gt;
&lt;br /&gt;
= Satelite =&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/track/?lang=en&amp;amp;satellite=ISS ISS Pass Calculator]&lt;br /&gt;
&lt;br /&gt;
[https://www.utctime.net/utc-time-zone-converter UTC Time Converter]&lt;br /&gt;
&lt;br /&gt;
[https://www.ariss.org/current-status-of-iss-stations.html ISS Releater]&lt;br /&gt;
&lt;br /&gt;
[https://www.amsat.org/status/ Satelite Status]&lt;br /&gt;
&lt;br /&gt;
= Tools =&lt;br /&gt;
&lt;br /&gt;
[https://www.swpc.noaa.gov Space Weather]&lt;br /&gt;
&lt;br /&gt;
[https://www.qsl.net/w4sat/horizon.htm Line of siite calculator]&lt;br /&gt;
&lt;br /&gt;
[https://vhf.dxview.org VHF Propagation map]&lt;br /&gt;
&lt;br /&gt;
[[VV-898S Tips]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DMR =&lt;br /&gt;
&lt;br /&gt;
[https://hose.brandmeister.network Brandmeister Hoseline]&lt;br /&gt;
[https://brandmeister.network/?page=talkgroups Talkgroups]&lt;br /&gt;
&lt;br /&gt;
[[Brandmister essential talkgroups]]&lt;br /&gt;
&lt;br /&gt;
[[BayNet]]&lt;br /&gt;
&lt;br /&gt;
[[Anytone uv878]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/S3_File_Retention&amp;diff=1869</id>
		<title>Cybersecurity/AWS Cybersecurity papers/S3 File Retention</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/S3_File_Retention&amp;diff=1869"/>
		<updated>2026-10-07T03:10:26Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&#039;&#039;&#039;In many instances, businesses are mandated to maintain immutable files for a specified duration to ensure regulatory, legal, and internal audit compliance. This guide offers an overview of the available models in S3 and provides guidance on their implementation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Three models for data retention ===&lt;br /&gt;
The first important concept to grasp is AWS S3 offers three models for data retention;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Legal Hold&#039;&#039;&#039; acts as a manual, indefinite ON/OFF toggle that protects an object from deletion or modification until an authorized user explicitly turns it off, entirely independent of any time-based settings.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Governance Mode&#039;&#039;&#039; provides the same time-based WORM protection as &amp;quot;Compliance mode&amp;quot; below but includes an administrative escape hatch, allowing users with specific IAM privileges to bypass the lock, alter the retention period, or delete the file when internal operational policies require flexibility.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Compliance Mode&#039;&#039;&#039; is strictly immutable; absolutely no user—including the AWS account root user—can shorten the retention period or delete the object until that specific timestamp passes, satisfying stringent regulatory mandates like SEC or FINRA. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply, legal hold is the most permissive - Governance mode provides a middle ground - Complance mode provide strict structure.&lt;br /&gt;
&lt;br /&gt;
=== Consider storage costs ===&lt;br /&gt;
&lt;br /&gt;
==== The Accumulation of Compliance Data ====&lt;br /&gt;
Once an organization implements stringent legal holds and WORM (Write-Once-Read-Many) compliance rules, data retention is no longer a choice—it is a mandate. For security teams and system architects, this means years of audit trails, application logs, and large infrastructure backups (such as heavy &amp;lt;code&amp;gt;.ova&amp;lt;/code&amp;gt; virtual machine images or database snapshots) must be preserved without modification. Storing this ever-growing mountain of immutable data in the S3 Standard storage class quickly becomes a significant financial burden. Because compliance data is written once and rarely—if ever—read again, paying premium rates for millisecond access to petabytes of static files is an architectural anti-pattern.&lt;br /&gt;
&lt;br /&gt;
==== Automating the Descent with Lifecycle Policies ====&lt;br /&gt;
The solution to cost-effective long-term retention is not manual data migration, but automated S3 Lifecycle Policies. AWS allows engineers to define rule sets that automatically cascade objects into progressively cheaper storage tiers as they age. For example, a web application&#039;s access log might sit in S3 Standard for the first 30 days when it is most likely to be queried during an active incident response. Afterward, a lifecycle rule can automatically transition it to Standard-Infrequent Access (Standard-IA) for 60 days, before finally pushing it into cold storage.&lt;br /&gt;
&lt;br /&gt;
==== S3 Glacier Deep Archive: The Final Resting Place ====&lt;br /&gt;
For data that must be retained for 7 to 10 years strictly for regulatory compliance or absolute worst-case disaster recovery, S3 Glacier Deep Archive represents the floor for AWS storage pricing. It is designed specifically for data that is accessed less than once a year. The trade-off for its drastically reduced storage cost—often fractions of a cent per gigabyte—is retrieval latency. Unlike S3 Standard, pulling an object from Deep Archive requires initiating a restoration job that can take up to 12 hours for standard retrieval. This paradigm forces architects to decouple the concept of &amp;quot;storage&amp;quot; from &amp;quot;immediate availability,&amp;quot; treating Deep Archive as a true digital vault where data is locked away rather than actively hosted.&lt;br /&gt;
&lt;br /&gt;
==== Storage Class Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Storage Class&lt;br /&gt;
!Primary Use Case&lt;br /&gt;
!Relative Cost (per GB/mo)&lt;br /&gt;
!Retrieval Time&lt;br /&gt;
|-&lt;br /&gt;
|S3 Standard&lt;br /&gt;
|Active, frequently accessed data, ongoing projects&lt;br /&gt;
|Premium (~$0.023)&lt;br /&gt;
|Milliseconds&lt;br /&gt;
|-&lt;br /&gt;
|S3 Glacier Flexible Retrieval&lt;br /&gt;
|Backups and archives accessed 1–2 times a year&lt;br /&gt;
|Low (~$0.0036)&lt;br /&gt;
|1 minute to 12 hours&lt;br /&gt;
|-&lt;br /&gt;
|S3 Glacier Deep Archive&lt;br /&gt;
|Long-term compliance, WORM data, digital preservation&lt;br /&gt;
|Lowest (~$0.00099)&lt;br /&gt;
|12 to 48 hours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Removing Guesswork with S3 Intelligent-Tiering ====&lt;br /&gt;
While strict lifecycle policies excel at archiving predictable compliance data, modern workloads rarely follow a clean, linear decay. Consider a data lake containing both WORM-protected audit logs and active security analytics. An auditor might suddenly need to query a six-month-old log file that a rigid lifecycle rule already buried in Glacier. If you retrieve that file from a standard Glacier class, you incur per-GB retrieval fees and wait hours. If you leave everything in S3 Standard just in case, your storage bill skyrockets.&lt;br /&gt;
&lt;br /&gt;
S3 Intelligent-Tiering solves this by decoupling cost optimization from manual lifecycle management. It is a storage class that automatically monitors access patterns and moves objects between distinct access tiers without operational overhead or retrieval fees.&lt;br /&gt;
[[File:Aws Intelligent-Tiering.png|center|Intelligent-Tiering |frame]]&lt;br /&gt;
Intelligent-Tiering evaluates objects at the individual level and transitions them through up to five tiers:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Frequent Access Tier:&#039;&#039;&#039; The default landing zone, priced identically to S3 Standard.&lt;br /&gt;
# &#039;&#039;&#039;Infrequent Access Tier:&#039;&#039;&#039; Objects not accessed for 30 consecutive days are moved here, saving roughly 40% on storage.&lt;br /&gt;
# &#039;&#039;&#039;Archive Instant Access Tier:&#039;&#039;&#039; Objects not accessed for 90 days are moved here, saving roughly 68%. Like the previous tiers, data here still features millisecond retrieval times.&lt;br /&gt;
# &#039;&#039;&#039;Archive Access Tier (Optional):&#039;&#039;&#039; You can configure Intelligent-Tiering to move objects here after 90 to 730 days of inactivity. It mirrors standard Glacier pricing and retrieval times (minutes to hours).&lt;br /&gt;
# &#039;&#039;&#039;Deep Archive Access Tier (Optional):&#039;&#039;&#039; The final tier for objects untouched for 180 to 730 days, mirroring Glacier Deep Archive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The moment an object in &#039;&#039;any&#039;&#039; of these tiers is accessed, AWS automatically moves it back to the Frequent Access tier. The financial trade-off is a small monthly monitoring and automation fee per 1,000 objects. For buckets containing large files (like &amp;lt;code&amp;gt;.ova&amp;lt;/code&amp;gt; images or database snapshots), the storage savings from dropping into the Infrequent or Archive Instant tiers drastically outweigh the microscopic monitoring fee.&lt;br /&gt;
&lt;br /&gt;
Crucially for compliance architectures, &#039;&#039;&#039;S3 Object Lock is fully supported on Intelligent-Tiering&#039;&#039;&#039;. You can apply Legal Holds and Compliance Mode retention periods to objects while letting AWS automatically sink them into the cheapest storage tiers over time, guaranteeing immutability without sacrificing cost efficiency.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/S3_File_Retention&amp;diff=1868</id>
		<title>Cybersecurity/AWS Cybersecurity papers/S3 File Retention</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/S3_File_Retention&amp;diff=1868"/>
		<updated>2026-10-07T03:09:42Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;== Introduction == &amp;#039;&amp;#039;&amp;#039;In many instances, businesses are mandated to maintain immutable files for a specified duration to ensure regulatory, legal, and internal audit compliance. This guide offers an overview of the available models in S3 and provides guidance on their implementation.&amp;#039;&amp;#039;&amp;#039;  === Three models for data retention === The first important concept to grasp is AWS S3 offers three models for data retention;  * &amp;#039;&amp;#039;&amp;#039;Legal Hold&amp;#039;&amp;#039;&amp;#039; acts as a manual, indefinite ON/OFF tog...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&#039;&#039;&#039;In many instances, businesses are mandated to maintain immutable files for a specified duration to ensure regulatory, legal, and internal audit compliance. This guide offers an overview of the available models in S3 and provides guidance on their implementation.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Three models for data retention ===&lt;br /&gt;
The first important concept to grasp is AWS S3 offers three models for data retention;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Legal Hold&#039;&#039;&#039; acts as a manual, indefinite ON/OFF toggle that protects an object from deletion or modification until an authorized user explicitly turns it off, entirely independent of any time-based settings.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Governance Mode&#039;&#039;&#039; provides the same time-based WORM protection as &amp;quot;Compliance mode&amp;quot; below but includes an administrative escape hatch, allowing users with specific IAM privileges to bypass the lock, alter the retention period, or delete the file when internal operational policies require flexibility.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Compliance Mode&#039;&#039;&#039; is strictly immutable; absolutely no user—including the AWS account root user—can shorten the retention period or delete the object until that specific timestamp passes, satisfying stringent regulatory mandates like SEC or FINRA. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simply, legal hold is the most permissive - Governance mode provides a middle ground - Complance mode provide strict structure.&lt;br /&gt;
&lt;br /&gt;
=== Consider storage costs ===&lt;br /&gt;
&lt;br /&gt;
==== The Accumulation of Compliance Data ====&lt;br /&gt;
Once an organization implements stringent legal holds and WORM (Write-Once-Read-Many) compliance rules, data retention is no longer a choice—it is a mandate. For security teams and system architects, this means years of audit trails, application logs, and large infrastructure backups (such as heavy &amp;lt;code&amp;gt;.ova&amp;lt;/code&amp;gt; virtual machine images or database snapshots) must be preserved without modification. Storing this ever-growing mountain of immutable data in the S3 Standard storage class quickly becomes a significant financial burden. Because compliance data is written once and rarely—if ever—read again, paying premium rates for millisecond access to petabytes of static files is an architectural anti-pattern.&lt;br /&gt;
&lt;br /&gt;
==== Automating the Descent with Lifecycle Policies ====&lt;br /&gt;
The solution to cost-effective long-term retention is not manual data migration, but automated S3 Lifecycle Policies. AWS allows engineers to define rule sets that automatically cascade objects into progressively cheaper storage tiers as they age. For example, a web application&#039;s access log might sit in S3 Standard for the first 30 days when it is most likely to be queried during an active incident response. Afterward, a lifecycle rule can automatically transition it to Standard-Infrequent Access (Standard-IA) for 60 days, before finally pushing it into cold storage.&lt;br /&gt;
&lt;br /&gt;
==== S3 Glacier Deep Archive: The Final Resting Place ====&lt;br /&gt;
For data that must be retained for 7 to 10 years strictly for regulatory compliance or absolute worst-case disaster recovery, S3 Glacier Deep Archive represents the floor for AWS storage pricing. It is designed specifically for data that is accessed less than once a year. The trade-off for its drastically reduced storage cost—often fractions of a cent per gigabyte—is retrieval latency. Unlike S3 Standard, pulling an object from Deep Archive requires initiating a restoration job that can take up to 12 hours for standard retrieval. This paradigm forces architects to decouple the concept of &amp;quot;storage&amp;quot; from &amp;quot;immediate availability,&amp;quot; treating Deep Archive as a true digital vault where data is locked away rather than actively hosted.&lt;br /&gt;
&lt;br /&gt;
==== Storage Class Comparison ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Storage Class&lt;br /&gt;
!Primary Use Case&lt;br /&gt;
!Relative Cost (per GB/mo)&lt;br /&gt;
!Retrieval Time&lt;br /&gt;
|-&lt;br /&gt;
|S3 Standard&lt;br /&gt;
|Active, frequently accessed data, ongoing projects&lt;br /&gt;
|Premium (~$0.023)&lt;br /&gt;
|Milliseconds&lt;br /&gt;
|-&lt;br /&gt;
|S3 Glacier Flexible Retrieval&lt;br /&gt;
|Backups and archives accessed 1–2 times a year&lt;br /&gt;
|Low (~$0.0036)&lt;br /&gt;
|1 minute to 12 hours&lt;br /&gt;
|-&lt;br /&gt;
|S3 Glacier Deep Archive&lt;br /&gt;
|Long-term compliance, WORM data, digital preservation&lt;br /&gt;
|Lowest (~$0.00099)&lt;br /&gt;
|12 to 48 hours&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Removing Guesswork with S3 Intelligent-Tiering ====&lt;br /&gt;
While strict lifecycle policies excel at archiving predictable compliance data, modern workloads rarely follow a clean, linear decay. Consider a data lake containing both WORM-protected audit logs and active security analytics. An auditor might suddenly need to query a six-month-old log file that a rigid lifecycle rule already buried in Glacier. If you retrieve that file from a standard Glacier class, you incur per-GB retrieval fees and wait hours. If you leave everything in S3 Standard just in case, your storage bill skyrockets.&lt;br /&gt;
&lt;br /&gt;
S3 Intelligent-Tiering solves this by decoupling cost optimization from manual lifecycle management. It is a storage class that automatically monitors access patterns and moves objects between distinct access tiers without operational overhead or retrieval fees.&lt;br /&gt;
[[File:Aws Intelligent-Tiering.png|center|thumb|Intelligent-Tiering ]]&lt;br /&gt;
Intelligent-Tiering evaluates objects at the individual level and transitions them through up to five tiers:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Frequent Access Tier:&#039;&#039;&#039; The default landing zone, priced identically to S3 Standard.&lt;br /&gt;
# &#039;&#039;&#039;Infrequent Access Tier:&#039;&#039;&#039; Objects not accessed for 30 consecutive days are moved here, saving roughly 40% on storage.&lt;br /&gt;
# &#039;&#039;&#039;Archive Instant Access Tier:&#039;&#039;&#039; Objects not accessed for 90 days are moved here, saving roughly 68%. Like the previous tiers, data here still features millisecond retrieval times.&lt;br /&gt;
# &#039;&#039;&#039;Archive Access Tier (Optional):&#039;&#039;&#039; You can configure Intelligent-Tiering to move objects here after 90 to 730 days of inactivity. It mirrors standard Glacier pricing and retrieval times (minutes to hours).&lt;br /&gt;
# &#039;&#039;&#039;Deep Archive Access Tier (Optional):&#039;&#039;&#039; The final tier for objects untouched for 180 to 730 days, mirroring Glacier Deep Archive.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The moment an object in &#039;&#039;any&#039;&#039; of these tiers is accessed, AWS automatically moves it back to the Frequent Access tier. The financial trade-off is a small monthly monitoring and automation fee per 1,000 objects. For buckets containing large files (like &amp;lt;code&amp;gt;.ova&amp;lt;/code&amp;gt; images or database snapshots), the storage savings from dropping into the Infrequent or Archive Instant tiers drastically outweigh the microscopic monitoring fee.&lt;br /&gt;
&lt;br /&gt;
Crucially for compliance architectures, &#039;&#039;&#039;S3 Object Lock is fully supported on Intelligent-Tiering&#039;&#039;&#039;. You can apply Legal Holds and Compliance Mode retention periods to objects while letting AWS automatically sink them into the cheapest storage tiers over time, guaranteeing immutability without sacrificing cost efficiency.&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=File:Aws_Intelligent-Tiering.png&amp;diff=1867</id>
		<title>File:Aws Intelligent-Tiering.png</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=File:Aws_Intelligent-Tiering.png&amp;diff=1867"/>
		<updated>2026-10-07T03:08:35Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AWS Intelligent-Tiering&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1866</id>
		<title>Cybersecurity/AWS Cybersecurity papers</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1866"/>
		<updated>2026-10-07T02:31:35Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example|AWS Secrets Example]]&lt;br /&gt;
&lt;br /&gt;
[[Cybersecurity/AWS Cybersecurity papers/S3 File Retention|File retention in S3]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1865</id>
		<title>Cybersecurity</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1865"/>
		<updated>2026-10-07T02:30:21Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cvedetails.com 🔍CVE Search]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerability tree |🌴Vulnerability tree]]&lt;br /&gt;
&lt;br /&gt;
[[Pentesting |✒️Pentesting]]&lt;br /&gt;
&lt;br /&gt;
[[Assessing Risk|😲Risk]]&lt;br /&gt;
&lt;br /&gt;
[[The Dirty Dozen|✈️Dirty dozen]]&lt;br /&gt;
&lt;br /&gt;
[[MTO triangle|📐Motive Technology Opportunity]]&lt;br /&gt;
&lt;br /&gt;
[[North / South &amp;amp; East West Network Security |🧭North/South &amp;amp; East/West Movements]]&lt;br /&gt;
&lt;br /&gt;
[https://cheatsheetseries.owasp.org/index.html 🐝OS Wasp Cheat Sheets]&lt;br /&gt;
&lt;br /&gt;
[[Cyber Kill Chain|⛓️‍💥Cyber Kill Chain]]&lt;br /&gt;
&lt;br /&gt;
[[Cybersecurity/AWS Cybersecurity papers|🌤️AWS Cybersecurity papers]]&lt;br /&gt;
&lt;br /&gt;
[https://media.defense.gov/2025/Jun/23/2003742198/-1/-1/0/CSI_MEMORY_SAFE_LANGUAGES_REDUCING_VULNERABILITIES_IN_MODERN_SOFTWARE_DEVELOPMENT.PDF Memory Safe Development]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1864</id>
		<title>Cybersecurity</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1864"/>
		<updated>2026-10-07T02:29:47Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cvedetails.com 🔍CVE Search]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerability tree |🌴Vulnerability tree]]&lt;br /&gt;
&lt;br /&gt;
[[Pentesting |✒️Pentesting]]&lt;br /&gt;
&lt;br /&gt;
[[Assessing Risk|😲Risk]]&lt;br /&gt;
&lt;br /&gt;
[[The Dirty Dozen|✈️Dirty dozen]]&lt;br /&gt;
&lt;br /&gt;
[[MTO triangle|📐Motive Technology Opportunity]]&lt;br /&gt;
&lt;br /&gt;
[[North / South &amp;amp; East West Network Security |🧭North/South &amp;amp; East/West Movements]]&lt;br /&gt;
&lt;br /&gt;
[https://cheatsheetseries.owasp.org/index.html 🐝OS Wasp Cheat Sheets]&lt;br /&gt;
&lt;br /&gt;
[[Cyber Kill Chain|⛓️‍💥Cyber Kill Chain]]&lt;br /&gt;
&lt;br /&gt;
[[Cybersecurity/AWS Cybersecurity papers|☁️AWS Cybersecurity papers]]&lt;br /&gt;
&lt;br /&gt;
[https://media.defense.gov/2025/Jun/23/2003742198/-1/-1/0/CSI_MEMORY_SAFE_LANGUAGES_REDUCING_VULNERABILITIES_IN_MODERN_SOFTWARE_DEVELOPMENT.PDF Memory Safe Development]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1863</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1863"/>
		<updated>2026-10-06T21:35:30Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Storing secrets outside of source code and configuration files is a conerstone of cybersecurity. Fortunatley AWS includeds &amp;quot;AWS Secrets Manger&amp;quot; intended for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the KEY features of AWS Secrets manager are:&lt;br /&gt;
&lt;br /&gt;
* Granular access controls&lt;br /&gt;
* Auduable access (Know who, what and when)&lt;br /&gt;
* Secret history&lt;br /&gt;
* Seemless intergration with AWS services&lt;br /&gt;
* Regional replication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper provides a demonstration of securing secrets with AWS Serets manager.&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the secret ===&lt;br /&gt;
&lt;br /&gt;
# From AWS console open secerts manager.&lt;br /&gt;
# Select &#039;&#039;&#039;Other type of secret&#039;&#039;&#039;&lt;br /&gt;
# Use the &amp;quot;Key / Value&amp;quot; Option&lt;br /&gt;
# Provice and key and a value&lt;br /&gt;
# Click next&lt;br /&gt;
# Provice a name for the secret&lt;br /&gt;
# Click next&lt;br /&gt;
# Turn on (or off) automatic rotation &lt;br /&gt;
# Click next&lt;br /&gt;
# Click store&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Great! Now we have a secret!. However nothing will work without IAM permissions!&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
# Open EC2, Select Instances&lt;br /&gt;
# Open your sandbox EC2 instance&lt;br /&gt;
# Select Actions &amp;gt; Security &amp;gt; Modift IAM Role&lt;br /&gt;
# Select &amp;quot;Create IAM Role&amp;quot;&lt;br /&gt;
# Let&#039;s call the role &amp;quot;Secret_read&amp;quot;&lt;br /&gt;
# Select &amp;quot;Use Existing Policy&amp;quot;&lt;br /&gt;
# Select &amp;quot;AWSSecretsManagerClientReadOnlyAccess&amp;quot;&lt;br /&gt;
# Select &amp;quot;Create Role&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Setup the sandbox ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
lets do this on Amazon Linux - Much easier!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install python:&#039;&#039;&#039;&lt;br /&gt;
 sudo dnf update -y&lt;br /&gt;
 sudo dnf install -y python3 python3-pip&lt;br /&gt;
 python3 --version&lt;br /&gt;
 pip3 --version&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;Create the v-env:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
 python3 -m venv venv&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install boto3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Step 4: Create the code ====&lt;br /&gt;
Create the test code, fetch.py&lt;br /&gt;
 import json&lt;br /&gt;
 import boto3&lt;br /&gt;
 &lt;br /&gt;
 client = boto3.client(&amp;quot;secretsmanager&amp;quot;, region_name=&amp;quot;us-east-1&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 payload = {&lt;br /&gt;
     &amp;quot;username&amp;quot;: &amp;quot;db_admin&amp;quot;,&lt;br /&gt;
     &amp;quot;password&amp;quot;: &amp;quot;SuperSecretPassword123!&amp;quot;,&lt;br /&gt;
     &amp;quot;host&amp;quot;: &amp;quot;mydb.internal&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
 response = client.create_secret(&lt;br /&gt;
     Name=&amp;quot;app/database_creds&amp;quot;,&lt;br /&gt;
     Description=&amp;quot;Application DB Credentials&amp;quot;,&lt;br /&gt;
     SecretString=json.dumps(payload),&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 print(f&amp;quot;Created secret ARN: {response[&#039;ARN&#039;]}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Run the code ====&lt;br /&gt;
 python3 fetch.py&lt;br /&gt;
 &lt;br /&gt;
 {&#039;Test&#039;: &#039;This is secret&#039;}&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Lab Teardown &amp;amp; Cost Management ====&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1862</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1862"/>
		<updated>2026-10-06T21:34:24Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* 1. Verify IMDSv2 Credential Acquisition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Storing secrets outside of source code and configuration files is a conerstone of cybersecurity. Fortunatley AWS includeds &amp;quot;AWS Secrets Manger&amp;quot; intended for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the KEY features of AWS Secrets manager are:&lt;br /&gt;
&lt;br /&gt;
* Granular access controls&lt;br /&gt;
* Auduable access (Know who, what and when)&lt;br /&gt;
* Secret history&lt;br /&gt;
* Seemless intergration with AWS services&lt;br /&gt;
* Regional replication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper provides a demonstration of securing secrets with AWS Serets manager.&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the secret ===&lt;br /&gt;
&lt;br /&gt;
# From AWS console open secerts manager.&lt;br /&gt;
# Select &#039;&#039;&#039;Other type of secret&#039;&#039;&#039;&lt;br /&gt;
# Use the &amp;quot;Key / Value&amp;quot; Option&lt;br /&gt;
# Provice and key and a value&lt;br /&gt;
# Click next&lt;br /&gt;
# Provice a name for the secret&lt;br /&gt;
# Click next&lt;br /&gt;
# Turn on (or off) automatic rotation &lt;br /&gt;
# Click next&lt;br /&gt;
# Click store&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Great! Now we have a secret!. However nothing will work without IAM permissions!&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
# Open EC2, Select Instances&lt;br /&gt;
# Open your sandbox EC2 instance&lt;br /&gt;
# Select Actions &amp;gt; Security &amp;gt; Modift IAM Role&lt;br /&gt;
# Select &amp;quot;Create IAM Role&amp;quot;&lt;br /&gt;
# Let&#039;s call the role &amp;quot;Secret_read&amp;quot;&lt;br /&gt;
# Select &amp;quot;Use Existing Policy&amp;quot;&lt;br /&gt;
# Select &amp;quot;AWSSecretsManagerClientReadOnlyAccess&amp;quot;&lt;br /&gt;
# Select &amp;quot;Create Role&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Setup the sandbox ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
lets do this on Amazon Linux - Much easier!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Install python:&#039;&#039;&#039;&lt;br /&gt;
 sudo dnf update -y&lt;br /&gt;
 sudo dnf install -y python3 python3-pip&lt;br /&gt;
 python3 --version&lt;br /&gt;
 pip3 --version&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;br /&amp;gt;Create the v-env:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
 python3 -m venv venv&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install boto3&lt;br /&gt;
&lt;br /&gt;
==== Step 4: Create the code ====&lt;br /&gt;
Create the test code, fetch.py&lt;br /&gt;
 import json&lt;br /&gt;
 import boto3&lt;br /&gt;
 &lt;br /&gt;
 client = boto3.client(&amp;quot;secretsmanager&amp;quot;, region_name=&amp;quot;us-east-1&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 payload = {&lt;br /&gt;
     &amp;quot;username&amp;quot;: &amp;quot;db_admin&amp;quot;,&lt;br /&gt;
     &amp;quot;password&amp;quot;: &amp;quot;SuperSecretPassword123!&amp;quot;,&lt;br /&gt;
     &amp;quot;host&amp;quot;: &amp;quot;mydb.internal&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
 response = client.create_secret(&lt;br /&gt;
     Name=&amp;quot;app/database_creds&amp;quot;,&lt;br /&gt;
     Description=&amp;quot;Application DB Credentials&amp;quot;,&lt;br /&gt;
     SecretString=json.dumps(payload),&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 print(f&amp;quot;Created secret ARN: {response[&#039;ARN&#039;]}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Run the code ====&lt;br /&gt;
 python3 fetch.py&lt;br /&gt;
 &lt;br /&gt;
 {&#039;Test&#039;: &#039;This is secret&#039;}&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Lab Teardown &amp;amp; Cost Management ====&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1861</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1861"/>
		<updated>2026-10-06T21:33:07Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* Step 3: Setup the sandbox */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Storing secrets outside of source code and configuration files is a conerstone of cybersecurity. Fortunatley AWS includeds &amp;quot;AWS Secrets Manger&amp;quot; intended for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the KEY features of AWS Secrets manager are:&lt;br /&gt;
&lt;br /&gt;
* Granular access controls&lt;br /&gt;
* Auduable access (Know who, what and when)&lt;br /&gt;
* Secret history&lt;br /&gt;
* Seemless intergration with AWS services&lt;br /&gt;
* Regional replication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper provides a demonstration of securing secrets with AWS Serets manager.&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the secret ===&lt;br /&gt;
&lt;br /&gt;
# From AWS console open secerts manager.&lt;br /&gt;
# Select &#039;&#039;&#039;Other type of secret&#039;&#039;&#039;&lt;br /&gt;
# Use the &amp;quot;Key / Value&amp;quot; Option&lt;br /&gt;
# Provice and key and a value&lt;br /&gt;
# Click next&lt;br /&gt;
# Provice a name for the secret&lt;br /&gt;
# Click next&lt;br /&gt;
# Turn on (or off) automatic rotation &lt;br /&gt;
# Click next&lt;br /&gt;
# Click store&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Great! Now we have a secret!. However nothing will work without IAM permissions!&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
# Open EC2, Select Instances&lt;br /&gt;
# Open your sandbox EC2 instance&lt;br /&gt;
# Select Actions &amp;gt; Security &amp;gt; Modift IAM Role&lt;br /&gt;
# Select &amp;quot;Create IAM Role&amp;quot;&lt;br /&gt;
# Let&#039;s call the role &amp;quot;Secret_read&amp;quot;&lt;br /&gt;
# Select &amp;quot;Use Existing Policy&amp;quot;&lt;br /&gt;
# Select &amp;quot;AWSSecretsManagerClientReadOnlyAccess&amp;quot;&lt;br /&gt;
# Select &amp;quot;Create Role&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Setup the sandbox ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
lets do this on Amazon Linuz - Much easier!&lt;br /&gt;
&lt;br /&gt;
Install python:&lt;br /&gt;
 sudo dnf update -y&lt;br /&gt;
 sudo dnf install -y python3 python3-pip&lt;br /&gt;
 python3 --version&lt;br /&gt;
 pip3 --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Crearte the v-env:&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
 python3 -m venv venv&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
 pip install boto3&lt;br /&gt;
&lt;br /&gt;
==== Step 4: Create the code ====&lt;br /&gt;
Create the test code, fetch.py&lt;br /&gt;
 import json&lt;br /&gt;
 import boto3&lt;br /&gt;
 &lt;br /&gt;
 client = boto3.client(&amp;quot;secretsmanager&amp;quot;, region_name=&amp;quot;us-east-1&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 payload = {&lt;br /&gt;
     &amp;quot;username&amp;quot;: &amp;quot;db_admin&amp;quot;,&lt;br /&gt;
     &amp;quot;password&amp;quot;: &amp;quot;SuperSecretPassword123!&amp;quot;,&lt;br /&gt;
     &amp;quot;host&amp;quot;: &amp;quot;mydb.internal&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
 response = client.create_secret(&lt;br /&gt;
     Name=&amp;quot;app/database_creds&amp;quot;,&lt;br /&gt;
     Description=&amp;quot;Application DB Credentials&amp;quot;,&lt;br /&gt;
     SecretString=json.dumps(payload),&lt;br /&gt;
 )&lt;br /&gt;
 &lt;br /&gt;
 print(f&amp;quot;Created secret ARN: {response[&#039;ARN&#039;]}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Run the code ====&lt;br /&gt;
 python3 fetch.py&lt;br /&gt;
 &lt;br /&gt;
 {&#039;Test&#039;: &#039;This is secret&#039;}&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Lab Teardown &amp;amp; Cost Management ====&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1860</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1860"/>
		<updated>2026-10-06T02:54:28Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
Storing secrets outside of source code and configuration files is a conerstone of cybersecurity. Fortunatley AWS includeds &amp;quot;AWS Secrets Manger&amp;quot; intended for this purpose.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Some of the KEY features of AWS Secrets manager are:&lt;br /&gt;
&lt;br /&gt;
* Granular access controls&lt;br /&gt;
* Auduable access (Know who, what and when)&lt;br /&gt;
* Secret history&lt;br /&gt;
* Seemless intergration with AWS services&lt;br /&gt;
* Regional replication&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This paper provides a demonstration of securing secrets with AWS Serets manager.&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the secret ===&lt;br /&gt;
&lt;br /&gt;
# From AWS console open secerts manager.&lt;br /&gt;
# Select &#039;&#039;&#039;Other type of secret&#039;&#039;&#039;&lt;br /&gt;
# Use the &amp;quot;Key / Value&amp;quot; Option&lt;br /&gt;
# Provice and key and a value&lt;br /&gt;
# Click next&lt;br /&gt;
# Provice a name for the secret&lt;br /&gt;
# Click next&lt;br /&gt;
# Turn on (or off) automatic rotation &lt;br /&gt;
# Click next&lt;br /&gt;
# Click store&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Great! Now we have a secret!. However nothing will work without IAM permissions!&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
# Open EC2, Select Instances&lt;br /&gt;
# Open your sandbox EC2 instance&lt;br /&gt;
# Select Actions &amp;gt; Security &amp;gt; Modift IAM Role&lt;br /&gt;
# Select &amp;quot;Create IAM Role&amp;quot;&lt;br /&gt;
# Let&#039;s call the role &amp;quot;Secret_read&amp;quot;&lt;br /&gt;
# Select &amp;quot;Use Existing Policy&amp;quot;&lt;br /&gt;
# Select &amp;quot;AWSSecretsManagerClientReadOnlyAccess&amp;quot;&lt;br /&gt;
# Select &amp;quot;Create Role&amp;quot;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Setup the sandbox ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
lets do this on Amazon Linuz - Much easier!&lt;br /&gt;
&lt;br /&gt;
Install python:&lt;br /&gt;
 sudo dnf update -y&lt;br /&gt;
&lt;br /&gt;
 sudo dnf install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
 python3 --version&lt;br /&gt;
&lt;br /&gt;
 pip3 --version&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Crearte the v-env:&lt;br /&gt;
&lt;br /&gt;
 mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
&lt;br /&gt;
 python3 -m venv venv&lt;br /&gt;
&lt;br /&gt;
 source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
 pip install --upgrade pip&lt;br /&gt;
&lt;br /&gt;
 pip install boto3&lt;br /&gt;
&lt;br /&gt;
==== Step 4: Create the code ====&lt;br /&gt;
Create the test code, fetch.py&lt;br /&gt;
 import json&lt;br /&gt;
&lt;br /&gt;
 import boto3&lt;br /&gt;
&lt;br /&gt;
 client = boto3.client(&amp;quot;secretsmanager&amp;quot;, region_name=&amp;quot;us-east-1&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 payload = {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;username&amp;quot;: &amp;quot;db_admin&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;password&amp;quot;: &amp;quot;SuperSecretPassword123!&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;host&amp;quot;: &amp;quot;mydb.internal&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 response = client.create_secret(&lt;br /&gt;
&lt;br /&gt;
     Name=&amp;quot;app/database_creds&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     Description=&amp;quot;Application DB Credentials&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
     SecretString=json.dumps(payload),&lt;br /&gt;
&lt;br /&gt;
 )&lt;br /&gt;
&lt;br /&gt;
 print(f&amp;quot;Created secret ARN: {response[&#039;ARN&#039;]}&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Run the code ====&lt;br /&gt;
 python3 fetch.py&lt;br /&gt;
&lt;br /&gt;
 {&#039;Test&#039;: &#039;This is secret&#039;}&lt;br /&gt;
&lt;br /&gt;
==== Step 5: Lab Teardown &amp;amp; Cost Management ====&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1859</id>
		<title>Cybersecurity/AWS Cybersecurity papers</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1859"/>
		<updated>2026-10-06T02:09:18Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example|AWS Secrets Example]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Manager_Retrieval_on_EC2_via_IAM_Instance_Profiles&amp;diff=1858</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Manager_Retrieval_on_EC2_via_IAM_Instance_Profiles&amp;diff=1858"/>
		<updated>2026-10-06T02:06:43Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Mflavell moved page Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles to Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1857</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1857"/>
		<updated>2026-10-06T02:06:42Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Mflavell moved page Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles to Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
This guide details the end-to-end setup for creating a secret in AWS Secrets Manager, granting access to an Amazon EC2 instance using an IAM instance profile (eliminating hardcoded credentials), configuring a Python runtime environment on Amazon Linux, and retrieving the secret payload programmatically using boto3.&lt;br /&gt;
&lt;br /&gt;
=== Architecture &amp;amp; Security Model ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;AWS Secrets Manager&#039;&#039;&#039;: Stores sensitive configuration data encrypted at rest with AWS KMS.&lt;br /&gt;
* &#039;&#039;&#039;IAM Instance Profile&#039;&#039;&#039;: Temporary security credentials rotated automatically via the EC2 Instance Metadata Service (IMDSv2). No static AWS access keys are stored on the instance.&lt;br /&gt;
* &#039;&#039;&#039;Principle of Least Privilege&#039;&#039;&#039;: The IAM role permissions are restricted strictly to the secretsmanager:GetSecretValue action on the target secret resource ARN.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the Secret in AWS Secrets Manager ===&lt;br /&gt;
&lt;br /&gt;
Execute the following command via AWS CLI (or deploy via the AWS Management Console) to generate the secret with a JSON payload:&lt;br /&gt;
&lt;br /&gt;
Note the generated &#039;&#039;&#039;ARN&#039;&#039;&#039; from the output:&lt;br /&gt;
&lt;br /&gt;
arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Create the IAM Role Trust Policy ====&lt;br /&gt;
Save the following trust policy document as ec2-trust-policy.json:&lt;br /&gt;
&lt;br /&gt;
Create the role:&lt;br /&gt;
&lt;br /&gt;
aws iam create-role &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--assume-role-policy-document file://ec2-trust-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Create and Attach the Least-Privilege IAM Policy ====&lt;br /&gt;
Save the permissions policy as secrets-policy.json, locking the resource down to the target secret ARN:&lt;br /&gt;
&lt;br /&gt;
Attach the policy:&lt;br /&gt;
&lt;br /&gt;
aws iam put-role-policy &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--policy-name SecretsManagerAccessPolicy &lt;br /&gt;
&lt;br /&gt;
--policy-document file://secrets-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Create the Instance Profile and Attach to EC2 ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create instance profile and add the role&lt;br /&gt;
&lt;br /&gt;
aws iam create-instance-profile --instance-profile-name EC2-SecretsManager-Profile&lt;br /&gt;
aws iam add-role-to-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-profile-name EC2-SecretsManager-Profile &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly&lt;br /&gt;
&lt;br /&gt;
# Attach to the running EC2 instance&lt;br /&gt;
&lt;br /&gt;
aws ec2 associate-iam-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-id &amp;lt;YOUR_INSTANCE_ID&amp;gt; &lt;br /&gt;
&lt;br /&gt;
--iam-instance-profile Name=EC2-SecretsManager-Profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: In the AWS Console, this can also be applied via: &#039;&#039;&#039;EC2 Console&#039;&#039;&#039; -&amp;gt; Select Instance -&amp;gt; &#039;&#039;&#039;Actions&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Security&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Modify IAM role&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 3: EC2 System &amp;amp; Python Environment Setup ===&lt;br /&gt;
&lt;br /&gt;
Log in to the Amazon Linux instance and configure the runtime.&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
Confirm the instance profile is detected:&lt;br /&gt;
&lt;br /&gt;
TOKEN=$(curl -s -S -X PUT &amp;quot;[http://169.254.169.254/latest/api/token](https://www.google.com/search?q=http://169.254.169.254/latest/api/token)&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 60&amp;quot;)&lt;br /&gt;
curl -s -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; [http://169.254.169.254/latest/meta-data/iam/security-credentials/](https://www.google.com/search?q=http://169.254.169.254/latest/meta-data/iam/security-credentials/)&lt;br /&gt;
&lt;br /&gt;
The command should return: EC2-SecretsManager-ReadOnly.&lt;br /&gt;
&lt;br /&gt;
==== 2. Install Packages &amp;amp; Virtual Environment ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2023:&lt;br /&gt;
&lt;br /&gt;
sudo dnf update -y&lt;br /&gt;
sudo dnf install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2:&lt;br /&gt;
&lt;br /&gt;
# sudo yum update -y &amp;amp;&amp;amp; sudo yum install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Set up project workspace&lt;br /&gt;
&lt;br /&gt;
mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
# Install AWS SDK&lt;br /&gt;
&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install boto3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Python Retrieval Script ===&lt;br /&gt;
&lt;br /&gt;
Create fetch.py.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note on Python compatibility:&#039;&#039; Including from **future** import annotations ensures the union type syntax (dict | str) parses cleanly across Python 3.7+ through 3.9 environments without throwing TypeError: unsupported operand type(s) for |: &#039;type&#039; and &#039;type&#039;.&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
import boto3&lt;br /&gt;
from botocore.exceptions import ClientError&lt;br /&gt;
&lt;br /&gt;
def get_secret(secret_name: str, region_name: str = &amp;quot;us-east-1&amp;quot;) -&amp;gt; dict | str:&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;Retrieve and parse secret from AWS Secrets Manager using IAM instance credentials.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
session = boto3.session.Session()&lt;br /&gt;
client = session.client(&lt;br /&gt;
service_name=&amp;quot;secretsmanager&amp;quot;,&lt;br /&gt;
region_name=region_name,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
try:&lt;br /&gt;
    response = client.get_secret_value(SecretId=secret_name)&lt;br /&gt;
except ClientError as e:&lt;br /&gt;
    raise e&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;SecretString&amp;quot; in response:&lt;br /&gt;
    secret = response[&amp;quot;SecretString&amp;quot;]&lt;br /&gt;
    try:&lt;br /&gt;
        return json.loads(secret)&lt;br /&gt;
    except json.JSONDecodeError:&lt;br /&gt;
        return secret&lt;br /&gt;
&lt;br /&gt;
return response[&amp;quot;SecretBinary&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
if **name** == &amp;quot;**main**&amp;quot;:&lt;br /&gt;
SECRET_ID = &amp;quot;arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&amp;quot;&lt;br /&gt;
REGION = &amp;quot;us-east-1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
credentials = get_secret(SECRET_ID, region_name=REGION)&lt;br /&gt;
print(&amp;quot;Successfully retrieved credentials payload:&amp;quot;)&lt;br /&gt;
print(credentials)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
==== Execution and Verification ====&lt;br /&gt;
&lt;br /&gt;
(venv) [ec2-user@ip-10-0-0-5 secrets-lab]$ python fetch.py&lt;br /&gt;
Successfully retrieved credentials payload:&lt;br /&gt;
{&#039;username&#039;: &#039;db_admin&#039;, &#039;password&#039;: &#039;SampleSecurePassword123!&#039;, &#039;host&#039;: &#039;db.internal&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 5: Lab Teardown &amp;amp; Cost Management ===&lt;br /&gt;
&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1856</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1856"/>
		<updated>2026-10-05T01:57:01Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* Troubleshooting Matrix */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
This guide details the end-to-end setup for creating a secret in AWS Secrets Manager, granting access to an Amazon EC2 instance using an IAM instance profile (eliminating hardcoded credentials), configuring a Python runtime environment on Amazon Linux, and retrieving the secret payload programmatically using boto3.&lt;br /&gt;
&lt;br /&gt;
=== Architecture &amp;amp; Security Model ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;AWS Secrets Manager&#039;&#039;&#039;: Stores sensitive configuration data encrypted at rest with AWS KMS.&lt;br /&gt;
* &#039;&#039;&#039;IAM Instance Profile&#039;&#039;&#039;: Temporary security credentials rotated automatically via the EC2 Instance Metadata Service (IMDSv2). No static AWS access keys are stored on the instance.&lt;br /&gt;
* &#039;&#039;&#039;Principle of Least Privilege&#039;&#039;&#039;: The IAM role permissions are restricted strictly to the secretsmanager:GetSecretValue action on the target secret resource ARN.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the Secret in AWS Secrets Manager ===&lt;br /&gt;
&lt;br /&gt;
Execute the following command via AWS CLI (or deploy via the AWS Management Console) to generate the secret with a JSON payload:&lt;br /&gt;
&lt;br /&gt;
Note the generated &#039;&#039;&#039;ARN&#039;&#039;&#039; from the output:&lt;br /&gt;
&lt;br /&gt;
arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Create the IAM Role Trust Policy ====&lt;br /&gt;
Save the following trust policy document as ec2-trust-policy.json:&lt;br /&gt;
&lt;br /&gt;
Create the role:&lt;br /&gt;
&lt;br /&gt;
aws iam create-role &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--assume-role-policy-document file://ec2-trust-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Create and Attach the Least-Privilege IAM Policy ====&lt;br /&gt;
Save the permissions policy as secrets-policy.json, locking the resource down to the target secret ARN:&lt;br /&gt;
&lt;br /&gt;
Attach the policy:&lt;br /&gt;
&lt;br /&gt;
aws iam put-role-policy &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--policy-name SecretsManagerAccessPolicy &lt;br /&gt;
&lt;br /&gt;
--policy-document file://secrets-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Create the Instance Profile and Attach to EC2 ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create instance profile and add the role&lt;br /&gt;
&lt;br /&gt;
aws iam create-instance-profile --instance-profile-name EC2-SecretsManager-Profile&lt;br /&gt;
aws iam add-role-to-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-profile-name EC2-SecretsManager-Profile &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly&lt;br /&gt;
&lt;br /&gt;
# Attach to the running EC2 instance&lt;br /&gt;
&lt;br /&gt;
aws ec2 associate-iam-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-id &amp;lt;YOUR_INSTANCE_ID&amp;gt; &lt;br /&gt;
&lt;br /&gt;
--iam-instance-profile Name=EC2-SecretsManager-Profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: In the AWS Console, this can also be applied via: &#039;&#039;&#039;EC2 Console&#039;&#039;&#039; -&amp;gt; Select Instance -&amp;gt; &#039;&#039;&#039;Actions&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Security&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Modify IAM role&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 3: EC2 System &amp;amp; Python Environment Setup ===&lt;br /&gt;
&lt;br /&gt;
Log in to the Amazon Linux instance and configure the runtime.&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
Confirm the instance profile is detected:&lt;br /&gt;
&lt;br /&gt;
TOKEN=$(curl -s -S -X PUT &amp;quot;[http://169.254.169.254/latest/api/token](https://www.google.com/search?q=http://169.254.169.254/latest/api/token)&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 60&amp;quot;)&lt;br /&gt;
curl -s -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; [http://169.254.169.254/latest/meta-data/iam/security-credentials/](https://www.google.com/search?q=http://169.254.169.254/latest/meta-data/iam/security-credentials/)&lt;br /&gt;
&lt;br /&gt;
The command should return: EC2-SecretsManager-ReadOnly.&lt;br /&gt;
&lt;br /&gt;
==== 2. Install Packages &amp;amp; Virtual Environment ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2023:&lt;br /&gt;
&lt;br /&gt;
sudo dnf update -y&lt;br /&gt;
sudo dnf install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2:&lt;br /&gt;
&lt;br /&gt;
# sudo yum update -y &amp;amp;&amp;amp; sudo yum install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Set up project workspace&lt;br /&gt;
&lt;br /&gt;
mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
# Install AWS SDK&lt;br /&gt;
&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install boto3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Python Retrieval Script ===&lt;br /&gt;
&lt;br /&gt;
Create fetch.py.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note on Python compatibility:&#039;&#039; Including from **future** import annotations ensures the union type syntax (dict | str) parses cleanly across Python 3.7+ through 3.9 environments without throwing TypeError: unsupported operand type(s) for |: &#039;type&#039; and &#039;type&#039;.&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
import boto3&lt;br /&gt;
from botocore.exceptions import ClientError&lt;br /&gt;
&lt;br /&gt;
def get_secret(secret_name: str, region_name: str = &amp;quot;us-east-1&amp;quot;) -&amp;gt; dict | str:&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;Retrieve and parse secret from AWS Secrets Manager using IAM instance credentials.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
session = boto3.session.Session()&lt;br /&gt;
client = session.client(&lt;br /&gt;
service_name=&amp;quot;secretsmanager&amp;quot;,&lt;br /&gt;
region_name=region_name,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
try:&lt;br /&gt;
    response = client.get_secret_value(SecretId=secret_name)&lt;br /&gt;
except ClientError as e:&lt;br /&gt;
    raise e&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;SecretString&amp;quot; in response:&lt;br /&gt;
    secret = response[&amp;quot;SecretString&amp;quot;]&lt;br /&gt;
    try:&lt;br /&gt;
        return json.loads(secret)&lt;br /&gt;
    except json.JSONDecodeError:&lt;br /&gt;
        return secret&lt;br /&gt;
&lt;br /&gt;
return response[&amp;quot;SecretBinary&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
if **name** == &amp;quot;**main**&amp;quot;:&lt;br /&gt;
SECRET_ID = &amp;quot;arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&amp;quot;&lt;br /&gt;
REGION = &amp;quot;us-east-1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
credentials = get_secret(SECRET_ID, region_name=REGION)&lt;br /&gt;
print(&amp;quot;Successfully retrieved credentials payload:&amp;quot;)&lt;br /&gt;
print(credentials)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
==== Execution and Verification ====&lt;br /&gt;
&lt;br /&gt;
(venv) [ec2-user@ip-10-0-0-5 secrets-lab]$ python fetch.py&lt;br /&gt;
Successfully retrieved credentials payload:&lt;br /&gt;
{&#039;username&#039;: &#039;db_admin&#039;, &#039;password&#039;: &#039;SampleSecurePassword123!&#039;, &#039;host&#039;: &#039;db.internal&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 5: Lab Teardown &amp;amp; Cost Management ===&lt;br /&gt;
&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1855</id>
		<title>Cybersecurity/AWS Cybersecurity papers/AWS Secrets Example</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers/AWS_Secrets_Example&amp;diff=1855"/>
		<updated>2026-10-05T01:56:33Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==  === Overview === This guide details the end-to-end setup for creating a secret in AWS Secrets Manager, granting access to an Amazon EC2 instance using an IAM instance profile (eliminating hardcoded credentials), configuring a Python runtime environment on Amazon Linux, and retrieving the secret payload programmatically using boto3.  === Architecture &amp;amp; Security Model ===  * &amp;#039;&amp;#039;&amp;#039;AWS Secrets Manager&amp;#039;&amp;#039;&amp;#039;: St...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
This guide details the end-to-end setup for creating a secret in AWS Secrets Manager, granting access to an Amazon EC2 instance using an IAM instance profile (eliminating hardcoded credentials), configuring a Python runtime environment on Amazon Linux, and retrieving the secret payload programmatically using boto3.&lt;br /&gt;
&lt;br /&gt;
=== Architecture &amp;amp; Security Model ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;AWS Secrets Manager&#039;&#039;&#039;: Stores sensitive configuration data encrypted at rest with AWS KMS.&lt;br /&gt;
* &#039;&#039;&#039;IAM Instance Profile&#039;&#039;&#039;: Temporary security credentials rotated automatically via the EC2 Instance Metadata Service (IMDSv2). No static AWS access keys are stored on the instance.&lt;br /&gt;
* &#039;&#039;&#039;Principle of Least Privilege&#039;&#039;&#039;: The IAM role permissions are restricted strictly to the secretsmanager:GetSecretValue action on the target secret resource ARN.&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Create the Secret in AWS Secrets Manager ===&lt;br /&gt;
&lt;br /&gt;
Execute the following command via AWS CLI (or deploy via the AWS Management Console) to generate the secret with a JSON payload:&lt;br /&gt;
&lt;br /&gt;
Note the generated &#039;&#039;&#039;ARN&#039;&#039;&#039; from the output:&lt;br /&gt;
&lt;br /&gt;
arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Configure IAM Permissions and Instance Profile ===&lt;br /&gt;
&lt;br /&gt;
==== 1. Create the IAM Role Trust Policy ====&lt;br /&gt;
Save the following trust policy document as ec2-trust-policy.json:&lt;br /&gt;
&lt;br /&gt;
Create the role:&lt;br /&gt;
&lt;br /&gt;
aws iam create-role &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--assume-role-policy-document file://ec2-trust-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 2. Create and Attach the Least-Privilege IAM Policy ====&lt;br /&gt;
Save the permissions policy as secrets-policy.json, locking the resource down to the target secret ARN:&lt;br /&gt;
&lt;br /&gt;
Attach the policy:&lt;br /&gt;
&lt;br /&gt;
aws iam put-role-policy &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly &lt;br /&gt;
&lt;br /&gt;
--policy-name SecretsManagerAccessPolicy &lt;br /&gt;
&lt;br /&gt;
--policy-document file://secrets-policy.json&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 3. Create the Instance Profile and Attach to EC2 ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Create instance profile and add the role&lt;br /&gt;
&lt;br /&gt;
aws iam create-instance-profile --instance-profile-name EC2-SecretsManager-Profile&lt;br /&gt;
aws iam add-role-to-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-profile-name EC2-SecretsManager-Profile &lt;br /&gt;
&lt;br /&gt;
--role-name EC2-SecretsManager-ReadOnly&lt;br /&gt;
&lt;br /&gt;
# Attach to the running EC2 instance&lt;br /&gt;
&lt;br /&gt;
aws ec2 associate-iam-instance-profile &lt;br /&gt;
&lt;br /&gt;
--instance-id &amp;lt;YOUR_INSTANCE_ID&amp;gt; &lt;br /&gt;
&lt;br /&gt;
--iam-instance-profile Name=EC2-SecretsManager-Profile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: In the AWS Console, this can also be applied via: &#039;&#039;&#039;EC2 Console&#039;&#039;&#039; -&amp;gt; Select Instance -&amp;gt; &#039;&#039;&#039;Actions&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Security&#039;&#039;&#039; -&amp;gt; &#039;&#039;&#039;Modify IAM role&#039;&#039;&#039;.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 3: EC2 System &amp;amp; Python Environment Setup ===&lt;br /&gt;
&lt;br /&gt;
Log in to the Amazon Linux instance and configure the runtime.&lt;br /&gt;
&lt;br /&gt;
==== 1. Verify IMDSv2 Credential Acquisition ====&lt;br /&gt;
Confirm the instance profile is detected:&lt;br /&gt;
&lt;br /&gt;
TOKEN=$(curl -s -S -X PUT &amp;quot;[http://169.254.169.254/latest/api/token](https://www.google.com/search?q=http://169.254.169.254/latest/api/token)&amp;quot; -H &amp;quot;X-aws-ec2-metadata-token-ttl-seconds: 60&amp;quot;)&lt;br /&gt;
curl -s -H &amp;quot;X-aws-ec2-metadata-token: $TOKEN&amp;quot; [http://169.254.169.254/latest/meta-data/iam/security-credentials/](https://www.google.com/search?q=http://169.254.169.254/latest/meta-data/iam/security-credentials/)&lt;br /&gt;
&lt;br /&gt;
The command should return: EC2-SecretsManager-ReadOnly.&lt;br /&gt;
&lt;br /&gt;
==== 2. Install Packages &amp;amp; Virtual Environment ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2023:&lt;br /&gt;
&lt;br /&gt;
sudo dnf update -y&lt;br /&gt;
sudo dnf install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Amazon Linux 2:&lt;br /&gt;
&lt;br /&gt;
# sudo yum update -y &amp;amp;&amp;amp; sudo yum install -y python3 python3-pip&lt;br /&gt;
&lt;br /&gt;
# Set up project workspace&lt;br /&gt;
&lt;br /&gt;
mkdir ~/secrets-lab &amp;amp;&amp;amp; cd ~/secrets-lab&lt;br /&gt;
python3 -m venv venv&lt;br /&gt;
source venv/bin/activate&lt;br /&gt;
&lt;br /&gt;
# Install AWS SDK&lt;br /&gt;
&lt;br /&gt;
pip install --upgrade pip&lt;br /&gt;
pip install boto3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Python Retrieval Script ===&lt;br /&gt;
&lt;br /&gt;
Create fetch.py.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note on Python compatibility:&#039;&#039; Including from **future** import annotations ensures the union type syntax (dict | str) parses cleanly across Python 3.7+ through 3.9 environments without throwing TypeError: unsupported operand type(s) for |: &#039;type&#039; and &#039;type&#039;.&lt;br /&gt;
&lt;br /&gt;
import json&lt;br /&gt;
import boto3&lt;br /&gt;
from botocore.exceptions import ClientError&lt;br /&gt;
&lt;br /&gt;
def get_secret(secret_name: str, region_name: str = &amp;quot;us-east-1&amp;quot;) -&amp;gt; dict | str:&lt;br /&gt;
&amp;quot;&amp;quot;&amp;quot;Retrieve and parse secret from AWS Secrets Manager using IAM instance credentials.&amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
session = boto3.session.Session()&lt;br /&gt;
client = session.client(&lt;br /&gt;
service_name=&amp;quot;secretsmanager&amp;quot;,&lt;br /&gt;
region_name=region_name,&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
try:&lt;br /&gt;
    response = client.get_secret_value(SecretId=secret_name)&lt;br /&gt;
except ClientError as e:&lt;br /&gt;
    raise e&lt;br /&gt;
&lt;br /&gt;
if &amp;quot;SecretString&amp;quot; in response:&lt;br /&gt;
    secret = response[&amp;quot;SecretString&amp;quot;]&lt;br /&gt;
    try:&lt;br /&gt;
        return json.loads(secret)&lt;br /&gt;
    except json.JSONDecodeError:&lt;br /&gt;
        return secret&lt;br /&gt;
&lt;br /&gt;
return response[&amp;quot;SecretBinary&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
if **name** == &amp;quot;**main**&amp;quot;:&lt;br /&gt;
SECRET_ID = &amp;quot;arn:aws:secretsmanager:us-east-1:843771826066:secret:test/secret-cK45Ko&amp;quot;&lt;br /&gt;
REGION = &amp;quot;us-east-1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
credentials = get_secret(SECRET_ID, region_name=REGION)&lt;br /&gt;
print(&amp;quot;Successfully retrieved credentials payload:&amp;quot;)&lt;br /&gt;
print(credentials)&lt;br /&gt;
&lt;br /&gt;
```&lt;br /&gt;
&lt;br /&gt;
==== Execution and Verification ====&lt;br /&gt;
&lt;br /&gt;
(venv) [ec2-user@ip-10-0-0-5 secrets-lab]$ python fetch.py&lt;br /&gt;
Successfully retrieved credentials payload:&lt;br /&gt;
{&#039;username&#039;: &#039;db_admin&#039;, &#039;password&#039;: &#039;SampleSecurePassword123!&#039;, &#039;host&#039;: &#039;db.internal&#039;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
=== Step 5: Lab Teardown &amp;amp; Cost Management ===&lt;br /&gt;
&lt;br /&gt;
AWS Secrets Manager incurs $0.40/secret/month (prorated hourly). To prevent ongoing charges after completing lab tests, force-delete the secret without entering the default recovery retention period:&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting Matrix ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Symptom !! Root Cause !! Remediation&lt;br /&gt;
|-&lt;br /&gt;
| botocore.exceptions.NoCredentialsError&lt;br /&gt;
| No IAM role attached to EC2; IMDS unreachable.&lt;br /&gt;
&lt;br /&gt;
| Verify IAM instance profile association or ensure instance metadata options allow hop limit &amp;gt;= 2 if running in containers. |&lt;br /&gt;
| --- |&lt;br /&gt;
| TypeError: unsupported operand type(s) for |&lt;br /&gt;
| Running Python &amp;lt; 3.10 with PEP 604 type unions. |&lt;br /&gt;
| Add from **future** import annotations as line 1 or use typing.Union[dict, str]. |&lt;br /&gt;
| - |&lt;br /&gt;
| ClientError: AccessDeniedException |&lt;br /&gt;
| IAM policy ARN mismatch or missing secretsmanager:GetSecretValue. |&lt;br /&gt;
| Ensure the policy Resource ARN matches the full secret ARN wildcard (Secrets Manager appends random suffix characters to names). |&lt;br /&gt;
| } |&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1854</id>
		<title>Cybersecurity/AWS Cybersecurity papers</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1854"/>
		<updated>2026-10-05T01:56:13Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles|AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1853</id>
		<title>Cybersecurity/AWS Cybersecurity papers</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity/AWS_Cybersecurity_papers&amp;diff=1853"/>
		<updated>2026-10-05T01:56:05Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles|AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles]]&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[Cybersecurity/AWS Cybersecurity papers/AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles|AWS Secrets Manager Retrieval on EC2 via IAM Instance Profiles]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1852</id>
		<title>Cybersecurity</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1852"/>
		<updated>2026-10-05T01:54:29Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cvedetails.com 🔍CVE Search]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerability tree |🌴Vulnerability tree]]&lt;br /&gt;
&lt;br /&gt;
[[Pentesting |✒️Pentesting]]&lt;br /&gt;
&lt;br /&gt;
[[Assessing Risk|😲Risk]]&lt;br /&gt;
&lt;br /&gt;
[[The Dirty Dozen|✈️Dirty dozen]]&lt;br /&gt;
&lt;br /&gt;
[[MTO triangle|📐Motive Technology Opportunity]]&lt;br /&gt;
&lt;br /&gt;
[[North / South &amp;amp; East West Network Security |🧭North/South &amp;amp; East/West Movements]]&lt;br /&gt;
&lt;br /&gt;
[https://cheatsheetseries.owasp.org/index.html 🐝OS Wasp Cheat Sheets]&lt;br /&gt;
&lt;br /&gt;
[[Cyber Kill Chain|⛓️‍💥Cyber Kill Chain]]&lt;br /&gt;
&lt;br /&gt;
[[Cybersecurity/AWS Cybersecurity papers|AWS Cybersecurity papers]]&lt;br /&gt;
&lt;br /&gt;
[https://media.defense.gov/2025/Jun/23/2003742198/-1/-1/0/CSI_MEMORY_SAFE_LANGUAGES_REDUCING_VULNERABILITIES_IN_MODERN_SOFTWARE_DEVELOPMENT.PDF Memory Safe Development]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1851</id>
		<title>Cybersecurity</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Cybersecurity&amp;diff=1851"/>
		<updated>2026-10-05T01:53:52Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
[https://www.cvedetails.com 🔍CVE Search]&lt;br /&gt;
&lt;br /&gt;
[[Vulnerability tree |🌴Vulnerability tree]]&lt;br /&gt;
&lt;br /&gt;
[[Pentesting |✒️Pentesting]]&lt;br /&gt;
&lt;br /&gt;
[[Assessing Risk|😲Risk]]&lt;br /&gt;
&lt;br /&gt;
[[The Dirty Dozen|✈️Dirty dozen]]&lt;br /&gt;
&lt;br /&gt;
[[MTO triangle|📐Motive Technology Opportunity]]&lt;br /&gt;
&lt;br /&gt;
[[North / South &amp;amp; East West Network Security |🧭North/South &amp;amp; East/West Movements]]&lt;br /&gt;
&lt;br /&gt;
[https://cheatsheetseries.owasp.org/index.html 🐝OS Wasp Cheat Sheets]&lt;br /&gt;
&lt;br /&gt;
[[Cyber Kill Chain|⛓️‍💥Cyber Kill Chain]]&lt;br /&gt;
&lt;br /&gt;
[[AWS Cybersecurity papers|AWS Cybersecurity papers]]&lt;br /&gt;
&lt;br /&gt;
[https://media.defense.gov/2025/Jun/23/2003742198/-1/-1/0/CSI_MEMORY_SAFE_LANGUAGES_REDUCING_VULNERABILITIES_IN_MODERN_SOFTWARE_DEVELOPMENT.PDF Memory Safe Development]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/SSP_Intro&amp;diff=1850</id>
		<title>Computer Notes/Security Services Platform/SSP Intro</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/SSP_Intro&amp;diff=1850"/>
		<updated>2026-09-18T00:04:26Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;= Overview =  * Runs Vdefend security services * This is an integrated security platform that can be deployed in the cloud. * Services run inside kubanties on virtual machines  == Services include ==  * Security Intelligence * Network Detection and Response * Malware prevention * Rule Analysis  = Install process =  * Install SSP on vSphere :* Install NSX ::* Link SSP to NSX ::* Upload packages using package management. ::* Install platform features  vSphere &amp;gt; SSPI &amp;gt; NSX...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Overview = &lt;br /&gt;
* Runs Vdefend security services&lt;br /&gt;
* This is an integrated security platform that can be deployed in the cloud.&lt;br /&gt;
* Services run inside kubanties on virtual machines&lt;br /&gt;
&lt;br /&gt;
== Services include ==&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
* Network Detection and Response&lt;br /&gt;
* Malware prevention&lt;br /&gt;
* Rule Analysis&lt;br /&gt;
&lt;br /&gt;
= Install process =&lt;br /&gt;
&lt;br /&gt;
* Install SSP on vSphere&lt;br /&gt;
:* Install NSX&lt;br /&gt;
::* Link SSP to NSX&lt;br /&gt;
::* Upload packages using package management.&lt;br /&gt;
::* Install platform features&lt;br /&gt;
&lt;br /&gt;
vSphere &amp;gt; SSPI &amp;gt; NSX &amp;gt; NSX Features&lt;br /&gt;
== Package management notes ==&lt;br /&gt;
* Accessed from the vdefend SSP Installer&lt;br /&gt;
* The URL feature in upload enabled packages to be downloaded to the installer from an internal server on the air gapped network.&lt;br /&gt;
::* User downloads package &amp;gt; adds to internal server &amp;gt; downloads from internal server using SSPI&lt;br /&gt;
* Packages are signed, only signed packages are allowed.&lt;br /&gt;
&lt;br /&gt;
= Components =&lt;br /&gt;
== vSphere ==&lt;br /&gt;
* vSphere controls the clusters.&lt;br /&gt;
:* By default a cluster has 3 hosts&lt;br /&gt;
:* This default is often expanded&lt;br /&gt;
&lt;br /&gt;
* Virtual machines are started on the hosts&lt;br /&gt;
:* SSPI and NSX run on their own VM&#039;s&lt;br /&gt;
:* Other VM&#039;s include:&lt;br /&gt;
::* Ssp-service-controller&lt;br /&gt;
::* SSP-servie-md-0-worker &#039;&#039;&#039;two of these&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This configuration gives a total of 5 VM&#039;s and 3 Guest OS in a basic configuration.&lt;br /&gt;
&lt;br /&gt;
== NSX ==&lt;br /&gt;
* Management is performed in NSX.&lt;br /&gt;
:* After deployment of the NSX connect to the web UI using IP / FQDN&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features are based off the configuration you set in NSX:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
::This feature provides distributed visibility and policy recommendations within an NSX environment, and lets you visualize security posture, analyze traffic flows, and create micro-segmentation policies.&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response (NDR)&lt;br /&gt;
::This feature continuously monitors your network for threats and anomalous behavior, using techniques like network traffic analysis, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), and advanced threat analysis, and then responds to identified threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Malware Prevention Service (MPS)	&lt;br /&gt;
::This feature provides file-level protection against known and unknown malicious files, including zero-day threats, by analyzing traffic and extracting files for analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Network Traffic Analysis (NTA)&lt;br /&gt;
::This feature monitors and inspects network traffic patterns and identifies anomalies or suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Metrics	&lt;br /&gt;
::This feature collects point-in-time, time-series, and lifetime data to let you perform analyses (such as Top N) of your environment.&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/security-services-platform-overview/key-concepts.html]&lt;br /&gt;
&lt;br /&gt;
=== Private IP Ranges ===&lt;br /&gt;
* Defined in security intelligence&lt;br /&gt;
* These networks contain unsecured data&lt;br /&gt;
* Defining them is a &#039;&#039;must&#039;&#039; for the system to function correctly&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/overview-of-nsx-intelligence/managing-private-ip-ranges-for-nsx-intelligence.html]&lt;br /&gt;
&lt;br /&gt;
===  Distributed Firewall ===&lt;br /&gt;
&lt;br /&gt;
* This is a firewall that is deployed on each VM.&lt;br /&gt;
* Works the same way as a security group in AWS.&lt;br /&gt;
* Rules are loaded from NSX with NSX controlling the distributed firewall. &lt;br /&gt;
&lt;br /&gt;
==== Advantages of the distributed firewall approach ====&lt;br /&gt;
* Enforces Zero trust&lt;br /&gt;
* Prevents lateral movement inside the security boundary (zero trust)&lt;br /&gt;
* Parameter security (ie hardware firewalls) are no longer sufficient.&lt;br /&gt;
:: If a node is breached no lateral movement is prevented without a ZTA.&lt;br /&gt;
&lt;br /&gt;
* Firewalling each VM is also more secure than an agent based approach.&lt;br /&gt;
:: Again this all comes back to zero trust.&lt;br /&gt;
&lt;br /&gt;
A key concept here is [[North / South &amp;amp; East West Network Security]]&lt;br /&gt;
==== How it is organized ====&lt;br /&gt;
&lt;br /&gt;
* VM&#039;s are assigned to groups.&lt;br /&gt;
* Polices contain rules / What to do with the packet.&lt;br /&gt;
* Rules are assigned to source and destination groups.&lt;br /&gt;
&lt;br /&gt;
 Source Group + Destination group &amp;gt; Policy &amp;gt; Action&lt;br /&gt;
&lt;br /&gt;
* Key point the source group and destination group much match what is defined for the policy.&lt;br /&gt;
:* The policy will then execute the action based on the service.&lt;br /&gt;
::* The action could be allow / drop / reject&lt;br /&gt;
&lt;br /&gt;
* A policy can be time based.&lt;br /&gt;
[https://partnerportal.broadcom.com/documents/d/partner-portal/zero-trust-with-vmware-firewall-pptx?download=true more information on the distributed firewall]&lt;br /&gt;
&lt;br /&gt;
= Gateway Firewall =&lt;br /&gt;
&lt;br /&gt;
This is a parameter firewall with IDS/IPS configured from NSX.&lt;br /&gt;
&lt;br /&gt;
This is a &#039;&#039;software only&#039;&#039; firewall designed to control north / south traffic.&lt;br /&gt;
[https://www.vmware.com/docs/vmware-nsx-gateway-firewall]&lt;br /&gt;
&lt;br /&gt;
Manages through NSX manager alongside the distributed firewall.&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/malware-prevention/getting-started-with-malware-prevention/overview-of-malware-prevention_service.html]&lt;br /&gt;
&lt;br /&gt;
This is installed from the NXT Edge Appliance.&lt;br /&gt;
* This is downloaded and installed as an .ova or .iso image. [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-2/installation-guide/installing-nsx-edge/manually-deploying-nsx-edge-node-outside-of-nsx/install-nsx-edge-via-iso-file-as-a-virtual-appliance.html]&lt;br /&gt;
* Runs on the vSphere Client [https://www.vmware.com/products/cloud-infrastructure/vsphere]&lt;br /&gt;
* Can also be run on bare metal server (using ISO installer) [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-1/installation-guide/installing-nsx-edge/install-nsx-edge-on-bare-metal.html]&lt;br /&gt;
&lt;br /&gt;
== Types of Gateway ==&lt;br /&gt;
* Tier-0 &lt;br /&gt;
:* Connects to external networks&lt;br /&gt;
:* Handles routing&lt;br /&gt;
:* This is a North/South gateway&lt;br /&gt;
:* Controlled by the NSX admin&lt;br /&gt;
&lt;br /&gt;
* Tier-1&lt;br /&gt;
:* Handles routing between networks&lt;br /&gt;
:* This is a east/west gateway&lt;br /&gt;
:* Controlled by tenant admins&lt;br /&gt;
[https://vdives.com/2019/10/24/nsx-t-logical-routers-gateways/ More Details]&lt;br /&gt;
= SSP Data Storage =&lt;br /&gt;
[[SSP Data Storage]]&lt;br /&gt;
= External Material =&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/reference-material.html techdocs]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1849</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1849"/>
		<updated>2026-09-18T00:04:13Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/EULA bypass]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/SSP Intro]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1848</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1848"/>
		<updated>2026-09-18T00:03:24Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Replaced content with &amp;quot;Computer Notes &amp;gt; Security Services Platform  Accessing the K8 Cluster  Computer Notes/Security Services Platform/EULA bypass&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/EULA bypass]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/EULA_bypass&amp;diff=1847</id>
		<title>Computer Notes/Security Services Platform/EULA bypass</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/EULA_bypass&amp;diff=1847"/>
		<updated>2026-09-17T18:51:35Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;To bypass the EULA acceptance screen if you get a 500 error:  Connect to SSPI and run   sudo sqlite3 /config/db/operator_info.db &amp;quot;CREATE UNIQUE INDEX IF NOT EXISTS idx_operator_infos_name ON operator_infos (name);&amp;quot;&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To bypass the EULA acceptance screen if you get a 500 error:&lt;br /&gt;
&lt;br /&gt;
Connect to SSPI and run&lt;br /&gt;
&lt;br /&gt;
 sudo sqlite3 /config/db/operator_info.db &amp;quot;CREATE UNIQUE INDEX IF NOT EXISTS idx_operator_infos_name ON operator_infos (name);&amp;quot;&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1846</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1846"/>
		<updated>2026-09-17T18:50:47Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/EULA bypass]]&lt;br /&gt;
&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
* Runs Vdefend security services&lt;br /&gt;
&lt;br /&gt;
* This is an integrated security platform that can be deployed in the cloud.&lt;br /&gt;
&lt;br /&gt;
* Services run inside kubanties on virtual machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services include ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response&lt;br /&gt;
&lt;br /&gt;
* Malware prevention&lt;br /&gt;
&lt;br /&gt;
* Rule Analysis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install process =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Install SSP on vSphere&lt;br /&gt;
&lt;br /&gt;
:* Install NSX&lt;br /&gt;
&lt;br /&gt;
::* Link SSP to NSX&lt;br /&gt;
&lt;br /&gt;
::* Upload packages using package management.&lt;br /&gt;
&lt;br /&gt;
::* Install platform features&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vSphere &amp;gt; SSPI &amp;gt; NSX &amp;gt; NSX Features&lt;br /&gt;
&lt;br /&gt;
== Package management notes ==&lt;br /&gt;
&lt;br /&gt;
* Accessed from the vdefend SSP Installer&lt;br /&gt;
&lt;br /&gt;
* The URL feature in upload enabled packages to be downloaded to the installer from an internal server on the air gapped network.&lt;br /&gt;
::* User downloads package &amp;gt; adds to internal server &amp;gt; downloads from internal server using SSPI&lt;br /&gt;
&lt;br /&gt;
* Packages are signed, only signed packages are allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Components =&lt;br /&gt;
&lt;br /&gt;
== vSphere ==&lt;br /&gt;
&lt;br /&gt;
* vSphere controls the clusters.&lt;br /&gt;
&lt;br /&gt;
:* By default a cluster has 3 hosts&lt;br /&gt;
&lt;br /&gt;
:* This default is often expanded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Virtual machines are started on the hosts&lt;br /&gt;
&lt;br /&gt;
:* SSPI and NSX run on their own VM&#039;s&lt;br /&gt;
&lt;br /&gt;
:* Other VM&#039;s include:&lt;br /&gt;
&lt;br /&gt;
::* Ssp-service-controller&lt;br /&gt;
::* SSP-servie-md-0-worker &#039;&#039;&#039;two of these&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This configuration gives a total of 5 VM&#039;s and 3 Guest OS in a basic configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NSX ==&lt;br /&gt;
&lt;br /&gt;
* Management is performed in NSX.&lt;br /&gt;
&lt;br /&gt;
:* After deployment of the NSX connect to the web UI using IP / FQDN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features are based off the configuration you set in NSX:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
::This feature provides distributed visibility and policy recommendations within an NSX environment, and lets you visualize security posture, analyze traffic flows, and create micro-segmentation policies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response (NDR)&lt;br /&gt;
&lt;br /&gt;
::This feature continuously monitors your network for threats and anomalous behavior, using techniques like network traffic analysis, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), and advanced threat analysis, and then responds to identified threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Malware Prevention Service (MPS)	&lt;br /&gt;
&lt;br /&gt;
::This feature provides file-level protection against known and unknown malicious files, including zero-day threats, by analyzing traffic and extracting files for analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Network Traffic Analysis (NTA)&lt;br /&gt;
&lt;br /&gt;
::This feature monitors and inspects network traffic patterns and identifies anomalies or suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Metrics	&lt;br /&gt;
&lt;br /&gt;
::This feature collects point-in-time, time-series, and lifetime data to let you perform analyses (such as Top N) of your environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/security-services-platform-overview/key-concepts.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Private IP Ranges ===&lt;br /&gt;
&lt;br /&gt;
* Defined in security intelligence&lt;br /&gt;
&lt;br /&gt;
* These networks contain unsecured data&lt;br /&gt;
&lt;br /&gt;
* Defining them is a &#039;&#039;must&#039;&#039; for the system to function correctly&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/overview-of-nsx-intelligence/managing-private-ip-ranges-for-nsx-intelligence.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Distributed Firewall ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This is a firewall that is deployed on each VM.&lt;br /&gt;
&lt;br /&gt;
* Works the same way as a security group in AWS.&lt;br /&gt;
&lt;br /&gt;
* Rules are loaded from NSX with NSX controlling the distributed firewall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Advantages of the distributed firewall approach ====&lt;br /&gt;
&lt;br /&gt;
* Enforces Zero trust&lt;br /&gt;
&lt;br /&gt;
* Prevents lateral movement inside the security boundary (zero trust)&lt;br /&gt;
&lt;br /&gt;
* Parameter security (ie hardware firewalls) are no longer sufficient.&lt;br /&gt;
&lt;br /&gt;
:: If a node is breached no lateral movement is prevented without a ZTA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Firewalling each VM is also more secure than an agent based approach.&lt;br /&gt;
&lt;br /&gt;
:: Again this all comes back to zero trust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A key concept here is [[North / South &amp;amp; East West Network Security]]&lt;br /&gt;
&lt;br /&gt;
==== How it is organized ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* VM&#039;s are assigned to groups.&lt;br /&gt;
&lt;br /&gt;
* Polices contain rules / What to do with the packet.&lt;br /&gt;
&lt;br /&gt;
* Rules are assigned to source and destination groups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Source Group + Destination group &amp;gt; Policy &amp;gt; Action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Key point the source group and destination group much match what is defined for the policy.&lt;br /&gt;
&lt;br /&gt;
:* The policy will then execute the action based on the service.&lt;br /&gt;
&lt;br /&gt;
::* The action could be allow / drop / reject&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A policy can be time based.&lt;br /&gt;
&lt;br /&gt;
[https://partnerportal.broadcom.com/documents/d/partner-portal/zero-trust-with-vmware-firewall-pptx?download=true more information on the distributed firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gateway Firewall =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a parameter firewall with IDS/IPS configured from NSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a &#039;&#039;software only&#039;&#039; firewall designed to control north / south traffic.&lt;br /&gt;
[https://www.vmware.com/docs/vmware-nsx-gateway-firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manages through NSX manager alongside the distributed firewall.&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/malware-prevention/getting-started-with-malware-prevention/overview-of-malware-prevention_service.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is installed from the NXT Edge Appliance.&lt;br /&gt;
&lt;br /&gt;
* This is downloaded and installed as an .ova or .iso image. [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-2/installation-guide/installing-nsx-edge/manually-deploying-nsx-edge-node-outside-of-nsx/install-nsx-edge-via-iso-file-as-a-virtual-appliance.html]&lt;br /&gt;
&lt;br /&gt;
* Runs on the vSphere Client [https://www.vmware.com/products/cloud-infrastructure/vsphere]&lt;br /&gt;
&lt;br /&gt;
* Can also be run on bare metal server (using ISO installer) [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-1/installation-guide/installing-nsx-edge/install-nsx-edge-on-bare-metal.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types of Gateway ==&lt;br /&gt;
&lt;br /&gt;
* Tier-0 &lt;br /&gt;
:* Connects to external networks&lt;br /&gt;
:* Handles routing&lt;br /&gt;
:* This is a North/South gateway&lt;br /&gt;
:* Controlled by the NSX admin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tier-1&lt;br /&gt;
:* Handles routing between networks&lt;br /&gt;
:* This is a east/west gateway&lt;br /&gt;
:* Controlled by tenant admins&lt;br /&gt;
&lt;br /&gt;
[https://vdives.com/2019/10/24/nsx-t-logical-routers-gateways/ More Details]&lt;br /&gt;
&lt;br /&gt;
= SSP Data Storage =&lt;br /&gt;
[[SSP Data Storage]]&lt;br /&gt;
&lt;br /&gt;
= External Material =&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/reference-material.html techdocs]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1845</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1845"/>
		<updated>2026-09-17T18:50:03Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/ELUA bypass]]&lt;br /&gt;
&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
* Runs Vdefend security services&lt;br /&gt;
&lt;br /&gt;
* This is an integrated security platform that can be deployed in the cloud.&lt;br /&gt;
&lt;br /&gt;
* Services run inside kubanties on virtual machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services include ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response&lt;br /&gt;
&lt;br /&gt;
* Malware prevention&lt;br /&gt;
&lt;br /&gt;
* Rule Analysis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install process =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Install SSP on vSphere&lt;br /&gt;
&lt;br /&gt;
:* Install NSX&lt;br /&gt;
&lt;br /&gt;
::* Link SSP to NSX&lt;br /&gt;
&lt;br /&gt;
::* Upload packages using package management.&lt;br /&gt;
&lt;br /&gt;
::* Install platform features&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vSphere &amp;gt; SSPI &amp;gt; NSX &amp;gt; NSX Features&lt;br /&gt;
&lt;br /&gt;
== Package management notes ==&lt;br /&gt;
&lt;br /&gt;
* Accessed from the vdefend SSP Installer&lt;br /&gt;
&lt;br /&gt;
* The URL feature in upload enabled packages to be downloaded to the installer from an internal server on the air gapped network.&lt;br /&gt;
::* User downloads package &amp;gt; adds to internal server &amp;gt; downloads from internal server using SSPI&lt;br /&gt;
&lt;br /&gt;
* Packages are signed, only signed packages are allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Components =&lt;br /&gt;
&lt;br /&gt;
== vSphere ==&lt;br /&gt;
&lt;br /&gt;
* vSphere controls the clusters.&lt;br /&gt;
&lt;br /&gt;
:* By default a cluster has 3 hosts&lt;br /&gt;
&lt;br /&gt;
:* This default is often expanded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Virtual machines are started on the hosts&lt;br /&gt;
&lt;br /&gt;
:* SSPI and NSX run on their own VM&#039;s&lt;br /&gt;
&lt;br /&gt;
:* Other VM&#039;s include:&lt;br /&gt;
&lt;br /&gt;
::* Ssp-service-controller&lt;br /&gt;
::* SSP-servie-md-0-worker &#039;&#039;&#039;two of these&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This configuration gives a total of 5 VM&#039;s and 3 Guest OS in a basic configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NSX ==&lt;br /&gt;
&lt;br /&gt;
* Management is performed in NSX.&lt;br /&gt;
&lt;br /&gt;
:* After deployment of the NSX connect to the web UI using IP / FQDN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features are based off the configuration you set in NSX:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
::This feature provides distributed visibility and policy recommendations within an NSX environment, and lets you visualize security posture, analyze traffic flows, and create micro-segmentation policies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response (NDR)&lt;br /&gt;
&lt;br /&gt;
::This feature continuously monitors your network for threats and anomalous behavior, using techniques like network traffic analysis, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), and advanced threat analysis, and then responds to identified threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Malware Prevention Service (MPS)	&lt;br /&gt;
&lt;br /&gt;
::This feature provides file-level protection against known and unknown malicious files, including zero-day threats, by analyzing traffic and extracting files for analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Network Traffic Analysis (NTA)&lt;br /&gt;
&lt;br /&gt;
::This feature monitors and inspects network traffic patterns and identifies anomalies or suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Metrics	&lt;br /&gt;
&lt;br /&gt;
::This feature collects point-in-time, time-series, and lifetime data to let you perform analyses (such as Top N) of your environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/security-services-platform-overview/key-concepts.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Private IP Ranges ===&lt;br /&gt;
&lt;br /&gt;
* Defined in security intelligence&lt;br /&gt;
&lt;br /&gt;
* These networks contain unsecured data&lt;br /&gt;
&lt;br /&gt;
* Defining them is a &#039;&#039;must&#039;&#039; for the system to function correctly&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/overview-of-nsx-intelligence/managing-private-ip-ranges-for-nsx-intelligence.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Distributed Firewall ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This is a firewall that is deployed on each VM.&lt;br /&gt;
&lt;br /&gt;
* Works the same way as a security group in AWS.&lt;br /&gt;
&lt;br /&gt;
* Rules are loaded from NSX with NSX controlling the distributed firewall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Advantages of the distributed firewall approach ====&lt;br /&gt;
&lt;br /&gt;
* Enforces Zero trust&lt;br /&gt;
&lt;br /&gt;
* Prevents lateral movement inside the security boundary (zero trust)&lt;br /&gt;
&lt;br /&gt;
* Parameter security (ie hardware firewalls) are no longer sufficient.&lt;br /&gt;
&lt;br /&gt;
:: If a node is breached no lateral movement is prevented without a ZTA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Firewalling each VM is also more secure than an agent based approach.&lt;br /&gt;
&lt;br /&gt;
:: Again this all comes back to zero trust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A key concept here is [[North / South &amp;amp; East West Network Security]]&lt;br /&gt;
&lt;br /&gt;
==== How it is organized ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* VM&#039;s are assigned to groups.&lt;br /&gt;
&lt;br /&gt;
* Polices contain rules / What to do with the packet.&lt;br /&gt;
&lt;br /&gt;
* Rules are assigned to source and destination groups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Source Group + Destination group &amp;gt; Policy &amp;gt; Action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Key point the source group and destination group much match what is defined for the policy.&lt;br /&gt;
&lt;br /&gt;
:* The policy will then execute the action based on the service.&lt;br /&gt;
&lt;br /&gt;
::* The action could be allow / drop / reject&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A policy can be time based.&lt;br /&gt;
&lt;br /&gt;
[https://partnerportal.broadcom.com/documents/d/partner-portal/zero-trust-with-vmware-firewall-pptx?download=true more information on the distributed firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gateway Firewall =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a parameter firewall with IDS/IPS configured from NSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a &#039;&#039;software only&#039;&#039; firewall designed to control north / south traffic.&lt;br /&gt;
[https://www.vmware.com/docs/vmware-nsx-gateway-firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manages through NSX manager alongside the distributed firewall.&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/malware-prevention/getting-started-with-malware-prevention/overview-of-malware-prevention_service.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is installed from the NXT Edge Appliance.&lt;br /&gt;
&lt;br /&gt;
* This is downloaded and installed as an .ova or .iso image. [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-2/installation-guide/installing-nsx-edge/manually-deploying-nsx-edge-node-outside-of-nsx/install-nsx-edge-via-iso-file-as-a-virtual-appliance.html]&lt;br /&gt;
&lt;br /&gt;
* Runs on the vSphere Client [https://www.vmware.com/products/cloud-infrastructure/vsphere]&lt;br /&gt;
&lt;br /&gt;
* Can also be run on bare metal server (using ISO installer) [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-1/installation-guide/installing-nsx-edge/install-nsx-edge-on-bare-metal.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types of Gateway ==&lt;br /&gt;
&lt;br /&gt;
* Tier-0 &lt;br /&gt;
:* Connects to external networks&lt;br /&gt;
:* Handles routing&lt;br /&gt;
:* This is a North/South gateway&lt;br /&gt;
:* Controlled by the NSX admin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tier-1&lt;br /&gt;
:* Handles routing between networks&lt;br /&gt;
:* This is a east/west gateway&lt;br /&gt;
:* Controlled by tenant admins&lt;br /&gt;
&lt;br /&gt;
[https://vdives.com/2019/10/24/nsx-t-logical-routers-gateways/ More Details]&lt;br /&gt;
&lt;br /&gt;
= SSP Data Storage =&lt;br /&gt;
[[SSP Data Storage]]&lt;br /&gt;
&lt;br /&gt;
= External Material =&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/reference-material.html techdocs]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1844</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1844"/>
		<updated>2026-09-17T18:49:53Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
[[[Computer Notes/Security Services Platform/ELUA bypass]]&lt;br /&gt;
&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
* Runs Vdefend security services&lt;br /&gt;
&lt;br /&gt;
* This is an integrated security platform that can be deployed in the cloud.&lt;br /&gt;
&lt;br /&gt;
* Services run inside kubanties on virtual machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services include ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response&lt;br /&gt;
&lt;br /&gt;
* Malware prevention&lt;br /&gt;
&lt;br /&gt;
* Rule Analysis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install process =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Install SSP on vSphere&lt;br /&gt;
&lt;br /&gt;
:* Install NSX&lt;br /&gt;
&lt;br /&gt;
::* Link SSP to NSX&lt;br /&gt;
&lt;br /&gt;
::* Upload packages using package management.&lt;br /&gt;
&lt;br /&gt;
::* Install platform features&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vSphere &amp;gt; SSPI &amp;gt; NSX &amp;gt; NSX Features&lt;br /&gt;
&lt;br /&gt;
== Package management notes ==&lt;br /&gt;
&lt;br /&gt;
* Accessed from the vdefend SSP Installer&lt;br /&gt;
&lt;br /&gt;
* The URL feature in upload enabled packages to be downloaded to the installer from an internal server on the air gapped network.&lt;br /&gt;
::* User downloads package &amp;gt; adds to internal server &amp;gt; downloads from internal server using SSPI&lt;br /&gt;
&lt;br /&gt;
* Packages are signed, only signed packages are allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Components =&lt;br /&gt;
&lt;br /&gt;
== vSphere ==&lt;br /&gt;
&lt;br /&gt;
* vSphere controls the clusters.&lt;br /&gt;
&lt;br /&gt;
:* By default a cluster has 3 hosts&lt;br /&gt;
&lt;br /&gt;
:* This default is often expanded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Virtual machines are started on the hosts&lt;br /&gt;
&lt;br /&gt;
:* SSPI and NSX run on their own VM&#039;s&lt;br /&gt;
&lt;br /&gt;
:* Other VM&#039;s include:&lt;br /&gt;
&lt;br /&gt;
::* Ssp-service-controller&lt;br /&gt;
::* SSP-servie-md-0-worker &#039;&#039;&#039;two of these&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This configuration gives a total of 5 VM&#039;s and 3 Guest OS in a basic configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NSX ==&lt;br /&gt;
&lt;br /&gt;
* Management is performed in NSX.&lt;br /&gt;
&lt;br /&gt;
:* After deployment of the NSX connect to the web UI using IP / FQDN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features are based off the configuration you set in NSX:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
::This feature provides distributed visibility and policy recommendations within an NSX environment, and lets you visualize security posture, analyze traffic flows, and create micro-segmentation policies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response (NDR)&lt;br /&gt;
&lt;br /&gt;
::This feature continuously monitors your network for threats and anomalous behavior, using techniques like network traffic analysis, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), and advanced threat analysis, and then responds to identified threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Malware Prevention Service (MPS)	&lt;br /&gt;
&lt;br /&gt;
::This feature provides file-level protection against known and unknown malicious files, including zero-day threats, by analyzing traffic and extracting files for analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Network Traffic Analysis (NTA)&lt;br /&gt;
&lt;br /&gt;
::This feature monitors and inspects network traffic patterns and identifies anomalies or suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Metrics	&lt;br /&gt;
&lt;br /&gt;
::This feature collects point-in-time, time-series, and lifetime data to let you perform analyses (such as Top N) of your environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/security-services-platform-overview/key-concepts.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Private IP Ranges ===&lt;br /&gt;
&lt;br /&gt;
* Defined in security intelligence&lt;br /&gt;
&lt;br /&gt;
* These networks contain unsecured data&lt;br /&gt;
&lt;br /&gt;
* Defining them is a &#039;&#039;must&#039;&#039; for the system to function correctly&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/overview-of-nsx-intelligence/managing-private-ip-ranges-for-nsx-intelligence.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Distributed Firewall ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This is a firewall that is deployed on each VM.&lt;br /&gt;
&lt;br /&gt;
* Works the same way as a security group in AWS.&lt;br /&gt;
&lt;br /&gt;
* Rules are loaded from NSX with NSX controlling the distributed firewall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Advantages of the distributed firewall approach ====&lt;br /&gt;
&lt;br /&gt;
* Enforces Zero trust&lt;br /&gt;
&lt;br /&gt;
* Prevents lateral movement inside the security boundary (zero trust)&lt;br /&gt;
&lt;br /&gt;
* Parameter security (ie hardware firewalls) are no longer sufficient.&lt;br /&gt;
&lt;br /&gt;
:: If a node is breached no lateral movement is prevented without a ZTA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Firewalling each VM is also more secure than an agent based approach.&lt;br /&gt;
&lt;br /&gt;
:: Again this all comes back to zero trust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A key concept here is [[North / South &amp;amp; East West Network Security]]&lt;br /&gt;
&lt;br /&gt;
==== How it is organized ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* VM&#039;s are assigned to groups.&lt;br /&gt;
&lt;br /&gt;
* Polices contain rules / What to do with the packet.&lt;br /&gt;
&lt;br /&gt;
* Rules are assigned to source and destination groups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Source Group + Destination group &amp;gt; Policy &amp;gt; Action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Key point the source group and destination group much match what is defined for the policy.&lt;br /&gt;
&lt;br /&gt;
:* The policy will then execute the action based on the service.&lt;br /&gt;
&lt;br /&gt;
::* The action could be allow / drop / reject&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A policy can be time based.&lt;br /&gt;
&lt;br /&gt;
[https://partnerportal.broadcom.com/documents/d/partner-portal/zero-trust-with-vmware-firewall-pptx?download=true more information on the distributed firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gateway Firewall =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a parameter firewall with IDS/IPS configured from NSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a &#039;&#039;software only&#039;&#039; firewall designed to control north / south traffic.&lt;br /&gt;
[https://www.vmware.com/docs/vmware-nsx-gateway-firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manages through NSX manager alongside the distributed firewall.&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/malware-prevention/getting-started-with-malware-prevention/overview-of-malware-prevention_service.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is installed from the NXT Edge Appliance.&lt;br /&gt;
&lt;br /&gt;
* This is downloaded and installed as an .ova or .iso image. [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-2/installation-guide/installing-nsx-edge/manually-deploying-nsx-edge-node-outside-of-nsx/install-nsx-edge-via-iso-file-as-a-virtual-appliance.html]&lt;br /&gt;
&lt;br /&gt;
* Runs on the vSphere Client [https://www.vmware.com/products/cloud-infrastructure/vsphere]&lt;br /&gt;
&lt;br /&gt;
* Can also be run on bare metal server (using ISO installer) [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-1/installation-guide/installing-nsx-edge/install-nsx-edge-on-bare-metal.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types of Gateway ==&lt;br /&gt;
&lt;br /&gt;
* Tier-0 &lt;br /&gt;
:* Connects to external networks&lt;br /&gt;
:* Handles routing&lt;br /&gt;
:* This is a North/South gateway&lt;br /&gt;
:* Controlled by the NSX admin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tier-1&lt;br /&gt;
:* Handles routing between networks&lt;br /&gt;
:* This is a east/west gateway&lt;br /&gt;
:* Controlled by tenant admins&lt;br /&gt;
&lt;br /&gt;
[https://vdives.com/2019/10/24/nsx-t-logical-routers-gateways/ More Details]&lt;br /&gt;
&lt;br /&gt;
= SSP Data Storage =&lt;br /&gt;
[[SSP Data Storage]]&lt;br /&gt;
&lt;br /&gt;
= External Material =&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/reference-material.html techdocs]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1843</id>
		<title>Computer Notes/Security Services Platform/Accessing the K8 Cluster</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1843"/>
		<updated>2026-09-11T18:00:49Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Accessing Security Services Platform (SSP) Kubernetes Cluster Nodes from SSPI using Key Pair Authentication&#039;&#039;&#039; is a operational procedure used by system administrators to establish secure, passwordless SSH sessions between a VMware Security Services Platform Installer (SSPI) appliance and its managed Kubernetes (K8s) cluster nodes. &lt;br /&gt;
&lt;br /&gt;
Utilizing public-key cryptography eliminates the reliance on static passwords, simplifies automated node administration, and aligns with security best practices for infrastructure management.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Before configuring key pair authentication, ensure the following requirements are met:&lt;br /&gt;
* Administrative shell access (`sysadmin` or `root`) to the deployment SSPI appliance.&lt;br /&gt;
* Operational access to the `kubectl` command-line utility configured on the SSPI host.&lt;br /&gt;
* Network connectivity on TCP port 22 (SSH) between the SSPI appliance and all target Kubernetes nodes (Control Plane and Worker nodes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Generate an SSH Key Pair on SSPI ==&lt;br /&gt;
&lt;br /&gt;
If an SSH key pair does not already exist on the SSPI appliance, generate a high-entropy key pair (such as Ed25519) from the SSPI terminal shell.&lt;br /&gt;
&lt;br /&gt;
# Log into the SSPI host via SSH:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh sysadmin@&amp;lt;SSPI_IP_ADDRESS&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Switch to the root account if required for system-level node administration:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt;&lt;br /&gt;
# Generate a new Ed25519 key pair:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh-keygen -t ed25519 -C &amp;quot;sspi-k8s-admin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Press ENTER to accept the default file location (&amp;lt;code&amp;gt;~/.ssh/id_ed25519&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Optionally enter a passphrase to secure the private key on disk.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Retrieve Target Kubernetes Node IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
Query the Kubernetes API server from the SSPI command line to identify the internal IP addresses of the cluster nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get nodes -o wide&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the values in the &amp;lt;code&amp;gt;INTERNAL-IP&amp;lt;/code&amp;gt; column for the target Control Plane or Worker nodes.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Distribute the Public Key to Cluster Nodes ==&lt;br /&gt;
&lt;br /&gt;
To establish trust, copy the generated public key (&amp;lt;code&amp;gt;id_ed25519.pub&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on the target node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method A: Using &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; (Automated) ===&lt;br /&gt;
If password authentication is temporarily enabled on the nodes, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub sysadmin@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the node&#039;s password when prompted to append the key automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method B: Manual Injection (Pre-deployment or Cluster Spec) ===&lt;br /&gt;
If direct password access to the nodes is disabled, inject the public key content directly into the cluster specification or pre-seed file during initial provision:&lt;br /&gt;
&lt;br /&gt;
# Display the public key:&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat ~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;&lt;br /&gt;
# Copy the string output and append it to &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; on the target node file system.&lt;br /&gt;
# Ensure correct file permissions on the target node:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod 700 /root/.ssh &amp;amp;&amp;amp; chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4: Establish Passwordless SSH Connection ==&lt;br /&gt;
&lt;br /&gt;
Verify the key pair authentication setup by opening a new SSH connection from the SSPI appliance to the target node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -i ~/.ssh/id_ed25519 sysadmin@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon successful authentication, the terminal prompt will update to reflect the target node&#039;s hostname without prompting for a password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Restrict Root File Permissions:&#039;&#039;&#039; Verify that the private key on the SSPI appliance maintains strict permissions (&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;) to prevent unauthorized read access by non-privileged local users.&lt;br /&gt;
* &#039;&#039;&#039;Audit Authorized Keys:&#039;&#039;&#039; Periodically audit the &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on cluster nodes to remove obsolete or unauthorized public keys.&lt;br /&gt;
* &#039;&#039;&#039;Least Privilege:&#039;&#039;&#039; Limit direct node SSH access to emergency troubleshooting and diagnostic operations. Standard cluster administrative operations should be performed via `kubectl` or API endpoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Permission Denied (publickey) ===&lt;br /&gt;
If connection fails with a &amp;lt;code&amp;gt;Permission denied (publickey)&amp;lt;/code&amp;gt; error:&lt;br /&gt;
* Verify key permissions on the SSPI host: &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Check remote permissions on the node: &amp;lt;code&amp;gt;chmod 700 /root/.ssh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Verbose SSH output can be reviewed by appending &amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt; to the SSH command:&lt;br /&gt;
*: &amp;lt;code&amp;gt;ssh -vvv -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Kubernetes]]&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:Network Security]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Kubernetes/Kubernetes_Command-Line_Cheat_Sheet&amp;diff=1842</id>
		<title>Computer Notes/Kubernetes/Kubernetes Command-Line Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Kubernetes/Kubernetes_Command-Line_Cheat_Sheet&amp;diff=1842"/>
		<updated>2026-09-10T00:14:12Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Kubernetes Command-Line Cheat Sheet&amp;#039;&amp;#039;&amp;#039; is a reference guide for standard operations using the &amp;lt;code&amp;gt;kubectl&amp;lt;/code&amp;gt; command-line interface to manage Kubernetes clusters, workloads, and node infrastructure.  == Cluster Context &amp;amp; Namespaces == {| class=&amp;quot;wikitable&amp;quot; ! Command !! Description |- | &amp;lt;code&amp;gt;kubectl config get-contexts&amp;lt;/code&amp;gt; || List all available cluster contexts. |- | &amp;lt;code&amp;gt;kubectl config use-context &amp;amp;lt;context-name&amp;amp;gt;&amp;lt;/code&amp;gt; || Switch active cluster context....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Kubernetes Command-Line Cheat Sheet&#039;&#039;&#039; is a reference guide for standard operations using the &amp;lt;code&amp;gt;kubectl&amp;lt;/code&amp;gt; command-line interface to manage Kubernetes clusters, workloads, and node infrastructure.&lt;br /&gt;
&lt;br /&gt;
== Cluster Context &amp;amp; Namespaces ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl config get-contexts&amp;lt;/code&amp;gt; || List all available cluster contexts.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl config use-context &amp;amp;lt;context-name&amp;amp;gt;&amp;lt;/code&amp;gt; || Switch active cluster context.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl config set-context --current --namespace=&amp;amp;lt;ns&amp;amp;gt;&amp;lt;/code&amp;gt; || Set default namespace for current context.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get ns&amp;lt;/code&amp;gt; || List all namespaces in the cluster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Viewing &amp;amp; Inspecting Resources ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get pods -A&amp;lt;/code&amp;gt; || List all pods across all namespaces.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get pods -o wide&amp;lt;/code&amp;gt; || List pods with IP addresses and node assignments.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get all -n &amp;amp;lt;namespace&amp;amp;gt;&amp;lt;/code&amp;gt; || Show all active resources in a specific namespace.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl describe &amp;amp;lt;resource&amp;amp;gt;/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || View detailed state, events, and configuration.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get &amp;amp;lt;resource&amp;amp;gt; &amp;amp;lt;name&amp;amp;gt; -o yaml&amp;lt;/code&amp;gt; || Export resource manifest to YAML format.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Deploying &amp;amp; Managing Workloads ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl apply -f &amp;amp;lt;file.yaml&amp;amp;gt;&amp;lt;/code&amp;gt; || Create or update resources declaratively.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl delete -f &amp;amp;lt;file.yaml&amp;amp;gt;&amp;lt;/code&amp;gt; || Delete resources defined in a YAML manifest.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl scale deploy/&amp;amp;lt;name&amp;amp;gt; --replicas=&amp;amp;lt;N&amp;amp;gt;&amp;lt;/code&amp;gt; || Scale the replica count of a Deployment.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl rollout restart deploy/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Perform a zero-downtime rolling restart.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl rollout undo deploy/&amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Roll back to the previous deployment revision.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debugging &amp;amp; Observability ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl logs -f &amp;amp;lt;pod-name&amp;amp;gt;&amp;lt;/code&amp;gt; || Stream real-time logs from a pod container.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl logs -p &amp;amp;lt;pod-name&amp;amp;gt;&amp;lt;/code&amp;gt; || View logs from a previous crashed container instance.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl exec -it &amp;amp;lt;pod-name&amp;amp;gt; -- /bin/sh&amp;lt;/code&amp;gt; || Open an interactive shell inside a running pod.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl port-forward svc/&amp;amp;lt;name&amp;amp;gt; 8080:80&amp;lt;/code&amp;gt; || Forward local port 8080 to cluster service port 80.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get events --sort-by=&#039;.metadata.creationTimestamp&#039;&amp;lt;/code&amp;gt; || List recent cluster events sorted by timestamp.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl top pods&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;kubectl top nodes&amp;lt;/code&amp;gt; || Display live CPU and memory metrics.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Node Operations &amp;amp; Maintenance ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl get nodes&amp;lt;/code&amp;gt; || List all cluster nodes and their current status.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl cordon &amp;amp;lt;node-name&amp;amp;gt;&amp;lt;/code&amp;gt; || Mark a node as unschedulable.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl drain &amp;amp;lt;node-name&amp;amp;gt; --ignore-daemonsets&amp;lt;/code&amp;gt; || Safely evict all pods before node maintenance.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;kubectl uncordon &amp;amp;lt;node-name&amp;amp;gt;&amp;lt;/code&amp;gt; || Mark a node as schedulable again.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Essential Productivity Shell Shortcuts ==&lt;br /&gt;
Add these shortcuts to your shell profile (&amp;lt;code&amp;gt;~/.bashrc&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;~/.zshrc&amp;lt;/code&amp;gt;) to speed up workflow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
alias k=&#039;kubectl&#039;&lt;br /&gt;
alias kgp=&#039;kubectl get pods&#039;&lt;br /&gt;
alias kgs=&#039;kubectl get svc&#039;&lt;br /&gt;
alias kgd=&#039;kubectl get deployments&#039;&lt;br /&gt;
alias kdp=&#039;kubectl describe pod&#039;&lt;br /&gt;
alias kl=&#039;kubectl logs -f&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Kubernetes]]&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Kubernetes]]&lt;br /&gt;
[[Category:Cheat Sheets]]&lt;br /&gt;
[[Category:System Administration]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Kubernetes&amp;diff=1841</id>
		<title>Computer Notes/Kubernetes</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Kubernetes&amp;diff=1841"/>
		<updated>2026-09-10T00:13:56Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes/Kubernetes/Kubernetes Command-Line Cheat Sheet|Kubernetes Command-Line Cheat Sheet]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Kubernetes&amp;diff=1840</id>
		<title>Computer Notes/Kubernetes</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Kubernetes&amp;diff=1840"/>
		<updated>2026-09-10T00:13:25Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;Kubernetes Command-Line Cheat Sheet&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes/Kubernetes|Kubernetes Command-Line Cheat Sheet]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes&amp;diff=1839</id>
		<title>Computer Notes</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes&amp;diff=1839"/>
		<updated>2026-09-10T00:12:52Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes/Security Services Platform|Security Services Platform]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Kubernetes|Kubernetes]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/CA Siteminder|CA Siteminder]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/CA Siteminder|CA Siteminder]]&lt;br /&gt;
&lt;br /&gt;
[[Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Java|Java]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/AWS|AWS]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/SSL|SSL]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Google Sheets|Google Sheets]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/MediaWiki|Mediawiki]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/CA Directory|CA Directory]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Windows|Windows]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Python|Python]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Notepad++|Notepad++]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Open LDAP|Open LDAP]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/SQLite Cheat sheet|SQLite Cheat Sheet]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/VSphere|VSphere]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/GIT|GIT]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/VMware Workstation|VMware Workstation]]&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/PI VPN|PI VPN]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1838</id>
		<title>Computer Notes/Security Services Platform/Accessing the K8 Cluster</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1838"/>
		<updated>2026-09-10T00:05:38Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: /* Step 1: Generate an SSH Key Pair on SSPI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Accessing Security Services Platform (SSP) Kubernetes Cluster Nodes from SSPI using Key Pair Authentication&#039;&#039;&#039; is a operational procedure used by system administrators to establish secure, passwordless SSH sessions between a VMware Security Services Platform Installer (SSPI) appliance and its managed Kubernetes (K8s) cluster nodes. &lt;br /&gt;
&lt;br /&gt;
Utilizing public-key cryptography eliminates the reliance on static passwords, simplifies automated node administration, and aligns with security best practices for infrastructure management.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Before configuring key pair authentication, ensure the following requirements are met:&lt;br /&gt;
* Administrative shell access (`sysadmin` or `root`) to the deployment SSPI appliance.&lt;br /&gt;
* Operational access to the `kubectl` command-line utility configured on the SSPI host.&lt;br /&gt;
* Network connectivity on TCP port 22 (SSH) between the SSPI appliance and all target Kubernetes nodes (Control Plane and Worker nodes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Generate an SSH Key Pair on SSPI ==&lt;br /&gt;
&lt;br /&gt;
If an SSH key pair does not already exist on the SSPI appliance, generate a high-entropy key pair (such as Ed25519) from the SSPI terminal shell.&lt;br /&gt;
&lt;br /&gt;
# Log into the SSPI host via SSH:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh sysadmin@&amp;lt;SSPI_IP_ADDRESS&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Switch to the root account if required for system-level node administration:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt;&lt;br /&gt;
# Generate a new Ed25519 key pair:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh-keygen -t ed25519 -C &amp;quot;sspi-k8s-admin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Press ENTER to accept the default file location (&amp;lt;code&amp;gt;~/.ssh/id_ed25519&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Optionally enter a passphrase to secure the private key on disk.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Retrieve Target Kubernetes Node IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
Query the Kubernetes API server from the SSPI command line to identify the internal IP addresses of the cluster nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get nodes -o wide&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the values in the &amp;lt;code&amp;gt;INTERNAL-IP&amp;lt;/code&amp;gt; column for the target Control Plane or Worker nodes.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Distribute the Public Key to Cluster Nodes ==&lt;br /&gt;
&lt;br /&gt;
To establish trust, copy the generated public key (&amp;lt;code&amp;gt;id_ed25519.pub&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on the target node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method A: Using &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; (Automated) ===&lt;br /&gt;
If password authentication is temporarily enabled on the nodes, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the node&#039;s password when prompted to append the key automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method B: Manual Injection (Pre-deployment or Cluster Spec) ===&lt;br /&gt;
If direct password access to the nodes is disabled, inject the public key content directly into the cluster specification or pre-seed file during initial provision:&lt;br /&gt;
&lt;br /&gt;
# Display the public key:&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat ~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;&lt;br /&gt;
# Copy the string output and append it to &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; on the target node file system.&lt;br /&gt;
# Ensure correct file permissions on the target node:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod 700 /root/.ssh &amp;amp;&amp;amp; chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4: Establish Passwordless SSH Connection ==&lt;br /&gt;
&lt;br /&gt;
Verify the key pair authentication setup by opening a new SSH connection from the SSPI appliance to the target node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon successful authentication, the terminal prompt will update to reflect the target node&#039;s hostname without prompting for a password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Restrict Root File Permissions:&#039;&#039;&#039; Verify that the private key on the SSPI appliance maintains strict permissions (&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;) to prevent unauthorized read access by non-privileged local users.&lt;br /&gt;
* &#039;&#039;&#039;Audit Authorized Keys:&#039;&#039;&#039; Periodically audit the &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on cluster nodes to remove obsolete or unauthorized public keys.&lt;br /&gt;
* &#039;&#039;&#039;Least Privilege:&#039;&#039;&#039; Limit direct node SSH access to emergency troubleshooting and diagnostic operations. Standard cluster administrative operations should be performed via `kubectl` or API endpoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Permission Denied (publickey) ===&lt;br /&gt;
If connection fails with a &amp;lt;code&amp;gt;Permission denied (publickey)&amp;lt;/code&amp;gt; error:&lt;br /&gt;
* Verify key permissions on the SSPI host: &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Check remote permissions on the node: &amp;lt;code&amp;gt;chmod 700 /root/.ssh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Verbose SSH output can be reviewed by appending &amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt; to the SSH command:&lt;br /&gt;
*: &amp;lt;code&amp;gt;ssh -vvv -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Kubernetes]]&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:Network Security]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1837</id>
		<title>Computer Notes/Security Services Platform/Accessing the K8 Cluster</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1837"/>
		<updated>2026-09-10T00:04:39Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Accessing Security Services Platform (SSP) Kubernetes Cluster Nodes from SSPI using Key Pair Authentication&#039;&#039;&#039; is a operational procedure used by system administrators to establish secure, passwordless SSH sessions between a VMware Security Services Platform Installer (SSPI) appliance and its managed Kubernetes (K8s) cluster nodes. &lt;br /&gt;
&lt;br /&gt;
Utilizing public-key cryptography eliminates the reliance on static passwords, simplifies automated node administration, and aligns with security best practices for infrastructure management.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Before configuring key pair authentication, ensure the following requirements are met:&lt;br /&gt;
* Administrative shell access (`sysadmin` or `root`) to the deployment SSPI appliance.&lt;br /&gt;
* Operational access to the `kubectl` command-line utility configured on the SSPI host.&lt;br /&gt;
* Network connectivity on TCP port 22 (SSH) between the SSPI appliance and all target Kubernetes nodes (Control Plane and Worker nodes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Generate an SSH Key Pair on SSPI ==&lt;br /&gt;
&lt;br /&gt;
If an SSH key pair does not already exist on the SSPI appliance, generate a high-entropy key pair (such as Ed25519) from the SSPI terminal shell.&lt;br /&gt;
&lt;br /&gt;
# Log into the SSPI host via SSH:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh sysadmin@&amp;lt;SSPI_IP_ADDRESS&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Switch to the root account if required for system-level node administration:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt;&lt;br /&gt;
# Generate a new Ed25519 key pair:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh-keygen -t ed25519 -C &amp;quot;sspi-k8s-admin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Press {{Key|Enter}} to accept the default file location (&amp;lt;code&amp;gt;~/.ssh/id_ed25519&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Optionally enter a passphrase to secure the private key on disk.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 2: Retrieve Target Kubernetes Node IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
Query the Kubernetes API server from the SSPI command line to identify the internal IP addresses of the cluster nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get nodes -o wide&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the values in the &amp;lt;code&amp;gt;INTERNAL-IP&amp;lt;/code&amp;gt; column for the target Control Plane or Worker nodes.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Distribute the Public Key to Cluster Nodes ==&lt;br /&gt;
&lt;br /&gt;
To establish trust, copy the generated public key (&amp;lt;code&amp;gt;id_ed25519.pub&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on the target node.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method A: Using &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; (Automated) ===&lt;br /&gt;
If password authentication is temporarily enabled on the nodes, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the node&#039;s password when prompted to append the key automatically.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Method B: Manual Injection (Pre-deployment or Cluster Spec) ===&lt;br /&gt;
If direct password access to the nodes is disabled, inject the public key content directly into the cluster specification or pre-seed file during initial provision:&lt;br /&gt;
&lt;br /&gt;
# Display the public key:&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat ~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;&lt;br /&gt;
# Copy the string output and append it to &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; on the target node file system.&lt;br /&gt;
# Ensure correct file permissions on the target node:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod 700 /root/.ssh &amp;amp;&amp;amp; chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 4: Establish Passwordless SSH Connection ==&lt;br /&gt;
&lt;br /&gt;
Verify the key pair authentication setup by opening a new SSH connection from the SSPI appliance to the target node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon successful authentication, the terminal prompt will update to reflect the target node&#039;s hostname without prompting for a password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Security Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Restrict Root File Permissions:&#039;&#039;&#039; Verify that the private key on the SSPI appliance maintains strict permissions (&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;) to prevent unauthorized read access by non-privileged local users.&lt;br /&gt;
* &#039;&#039;&#039;Audit Authorized Keys:&#039;&#039;&#039; Periodically audit the &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on cluster nodes to remove obsolete or unauthorized public keys.&lt;br /&gt;
* &#039;&#039;&#039;Least Privilege:&#039;&#039;&#039; Limit direct node SSH access to emergency troubleshooting and diagnostic operations. Standard cluster administrative operations should be performed via `kubectl` or API endpoints.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Permission Denied (publickey) ===&lt;br /&gt;
If connection fails with a &amp;lt;code&amp;gt;Permission denied (publickey)&amp;lt;/code&amp;gt; error:&lt;br /&gt;
* Verify key permissions on the SSPI host: &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Check remote permissions on the node: &amp;lt;code&amp;gt;chmod 700 /root/.ssh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Verbose SSH output can be reviewed by appending &amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt; to the SSH command:&lt;br /&gt;
*: &amp;lt;code&amp;gt;ssh -vvv -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
&lt;br /&gt;
[[Category:Kubernetes]]&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:Network Security]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1836</id>
		<title>Computer Notes/Security Services Platform/Accessing the K8 Cluster</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1836"/>
		<updated>2026-09-10T00:03:49Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Accessing Security Services Platform (SSP) Kubernetes Cluster Nodes from SSPI using Key Pair Authentication&#039;&#039;&#039; is a operational procedure used by system administrators to establish secure, passwordless SSH sessions between a VMware Security Services Platform Installer (SSPI) appliance and its managed Kubernetes (K8s) cluster nodes. &lt;br /&gt;
&lt;br /&gt;
Utilizing public-key cryptography eliminates the reliance on static passwords, simplifies automated node administration, and aligns with security best practices for infrastructure management.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
Before configuring key pair authentication, ensure the following requirements are met:&lt;br /&gt;
* Administrative shell access (`sysadmin` or `root`) to the deployment SSPI appliance.&lt;br /&gt;
* Operational access to the `kubectl` command-line utility configured on the SSPI host.&lt;br /&gt;
* Network connectivity on TCP port 22 (SSH) between the SSPI appliance and all target Kubernetes nodes (Control Plane and Worker nodes).&lt;br /&gt;
&lt;br /&gt;
== Step 1: Generate an SSH Key Pair on SSPI ==&lt;br /&gt;
&lt;br /&gt;
If an SSH key pair does not already exist on the SSPI appliance, generate a high-entropy key pair (such as Ed25519) from the SSPI terminal shell.&lt;br /&gt;
&lt;br /&gt;
# Log into the SSPI host via SSH:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh sysadmin@&amp;lt;SSPI_IP_ADDRESS&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Switch to the root account if required for system-level node administration:&lt;br /&gt;
#: &amp;lt;code&amp;gt;sudo -i&amp;lt;/code&amp;gt;&lt;br /&gt;
# Generate a new Ed25519 key pair:&lt;br /&gt;
#: &amp;lt;code&amp;gt;ssh-keygen -t ed25519 -C &amp;quot;sspi-k8s-admin&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
# Press {{Key|Enter}} to accept the default file location (&amp;lt;code&amp;gt;~/.ssh/id_ed25519&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Optionally enter a passphrase to secure the private key on disk.&lt;br /&gt;
&lt;br /&gt;
== Step 2: Retrieve Target Kubernetes Node IP Addresses ==&lt;br /&gt;
&lt;br /&gt;
Query the Kubernetes API server from the SSPI command line to identify the internal IP addresses of the cluster nodes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;kubectl get nodes -o wide&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note the values in the &amp;lt;code&amp;gt;INTERNAL-IP&amp;lt;/code&amp;gt; column for the target Control Plane or Worker nodes.&lt;br /&gt;
&lt;br /&gt;
== Step 3: Distribute the Public Key to Cluster Nodes ==&lt;br /&gt;
&lt;br /&gt;
To establish trust, copy the generated public key (&amp;lt;code&amp;gt;id_ed25519.pub&amp;lt;/code&amp;gt;) to the &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on the target node.&lt;br /&gt;
&lt;br /&gt;
=== Method A: Using &amp;lt;code&amp;gt;ssh-copy-id&amp;lt;/code&amp;gt; (Automated) ===&lt;br /&gt;
If password authentication is temporarily enabled on the nodes, run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh-copy-id -i ~/.ssh/id_ed25519.pub root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the node&#039;s password when prompted to append the key automatically.&lt;br /&gt;
&lt;br /&gt;
=== Method B: Manual Injection (Pre-deployment or Cluster Spec) ===&lt;br /&gt;
If direct password access to the nodes is disabled, inject the public key content directly into the cluster specification or pre-seed file during initial provision:&lt;br /&gt;
&lt;br /&gt;
# Display the public key:&lt;br /&gt;
#: &amp;lt;code&amp;gt;cat ~/.ssh/id_ed25519.pub&amp;lt;/code&amp;gt;&lt;br /&gt;
# Copy the string output and append it to &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; on the target node file system.&lt;br /&gt;
# Ensure correct file permissions on the target node:&lt;br /&gt;
#: &amp;lt;code&amp;gt;chmod 700 /root/.ssh &amp;amp;&amp;amp; chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4: Establish Passwordless SSH Connection ==&lt;br /&gt;
&lt;br /&gt;
Verify the key pair authentication setup by opening a new SSH connection from the SSPI appliance to the target node:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;ssh -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Upon successful authentication, the terminal prompt will update to reflect the target node&#039;s hostname without prompting for a password.&lt;br /&gt;
&lt;br /&gt;
== Security Best Practices ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Restrict Root File Permissions:&#039;&#039;&#039; Verify that the private key on the SSPI appliance maintains strict permissions (&amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;) to prevent unauthorized read access by non-privileged local users.&lt;br /&gt;
* &#039;&#039;&#039;Audit Authorized Keys:&#039;&#039;&#039; Periodically audit the &amp;lt;code&amp;gt;/root/.ssh/authorized_keys&amp;lt;/code&amp;gt; file on cluster nodes to remove obsolete or unauthorized public keys.&lt;br /&gt;
* &#039;&#039;&#039;Least Privilege:&#039;&#039;&#039; Limit direct node SSH access to emergency troubleshooting and diagnostic operations. Standard cluster administrative operations should be performed via `kubectl` or API endpoints.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Permission Denied (publickey) ===&lt;br /&gt;
If connection fails with a &amp;lt;code&amp;gt;Permission denied (publickey)&amp;lt;/code&amp;gt; error:&lt;br /&gt;
* Verify key permissions on the SSPI host: &amp;lt;code&amp;gt;chmod 600 ~/.ssh/id_ed25519&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Check remote permissions on the node: &amp;lt;code&amp;gt;chmod 700 /root/.ssh&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;chmod 600 /root/.ssh/authorized_keys&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Verbose SSH output can be reviewed by appending &amp;lt;code&amp;gt;-vvv&amp;lt;/code&amp;gt; to the SSH command:&lt;br /&gt;
*: &amp;lt;code&amp;gt;ssh -vvv -i ~/.ssh/id_ed25519 root@&amp;lt;NODE_INTERNAL_IP&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
* [[Kubernetes]]&lt;br /&gt;
* [[Public-key cryptography]]&lt;br /&gt;
* [[ssh-keygen]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Kubernetes]]&lt;br /&gt;
[[Category:System Administration]]&lt;br /&gt;
[[Category:VMware]]&lt;br /&gt;
[[Category:Network Security]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1835</id>
		<title>Computer Notes/Security Services Platform/Accessing the K8 Cluster</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform/Accessing_the_K8_Cluster&amp;diff=1835"/>
		<updated>2026-09-10T00:02:35Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;SSH key pair authentication&amp;#039;&amp;#039;&amp;#039; is a public-key cryptographic mechanism used within the Secure Shell (SSH) protocol to authenticate users or machines attempting to establish a remote network connection. Unlike traditional password-based authentication, key pair authentication relies on asymmetric cryptography, utilizing a mathematically linked pair of cryptographic keys: a &amp;#039;&amp;#039;&amp;#039;public key&amp;#039;&amp;#039;&amp;#039; and a &amp;#039;&amp;#039;&amp;#039;private key&amp;#039;&amp;#039;&amp;#039;.  == Mechanism and Architecture == SSH key authenticatio...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;SSH key pair authentication&#039;&#039;&#039; is a public-key cryptographic mechanism used within the Secure Shell (SSH) protocol to authenticate users or machines attempting to establish a remote network connection. Unlike traditional password-based authentication, key pair authentication relies on asymmetric cryptography, utilizing a mathematically linked pair of cryptographic keys: a &#039;&#039;&#039;public key&#039;&#039;&#039; and a &#039;&#039;&#039;private key&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Mechanism and Architecture ==&lt;br /&gt;
SSH key authentication operates on a challenge-response model designed to verify identity without ever transmitting sensitive credential data over the network.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Private Key:&#039;&#039;&#039; Kept strictly confidential on the client machine. It is protected by local file permissions (typically &amp;lt;code&amp;gt;chmod 600&amp;lt;/code&amp;gt;) and can be further secured using a passphrase.&lt;br /&gt;
* &#039;&#039;&#039;Public Key:&#039;&#039;&#039; Placed on the target server, where it is stored in the remote user&#039;s configuration file (commonly &amp;lt;code&amp;gt;~/.ssh/authorized_keys&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
When a client requests an SSH session:&lt;br /&gt;
# The client sends a signal to the server identifying the public key it wishes to use for authentication.&lt;br /&gt;
# The server checks its &amp;lt;code&amp;gt;authorized_keys&amp;lt;/code&amp;gt; file to confirm the key is authorized for the requested account.&lt;br /&gt;
# The server generates a cryptographic challenge (a random string of data) and sends it to the client.&lt;br /&gt;
# The client uses its local private key to sign the challenge, generating a digital signature, which is sent back to the server.&lt;br /&gt;
# The server uses the stored public key to verify the signature. If valid, the session is established.&lt;br /&gt;
&lt;br /&gt;
== Common Algorithms and Key Generation ==&lt;br /&gt;
Key pairs are generated using software utilities such as OpenSSH&#039;s &amp;lt;code&amp;gt;ssh-keygen&amp;lt;/code&amp;gt;. The security and performance of the key pair depend on the underlying mathematical algorithm:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ed25519:&#039;&#039;&#039; An Elliptic Curve Digital Signature Algorithm (EdDSA) scheme offering high performance, immunity to side-channel attacks, and a fixed key length of 256 bits. It is widely considered the modern standard.&lt;br /&gt;
* &#039;&#039;&#039;ECDSA:&#039;&#039;&#039; An elliptic curve implementation based on NIST curves. While secure, implementation flaws in random number generation can compromise private keys.&lt;br /&gt;
* &#039;&#039;&#039;RSA:&#039;&#039;&#039; A historical standard based on the integer factorization problem. Modern security guidelines mandate key lengths of 3072 or 4096 bits, as shorter lengths (e.g., 2048-bit) are increasingly vulnerable to advancing computational power.&lt;br /&gt;
&lt;br /&gt;
== Advantages and Applications ==&lt;br /&gt;
SSH key pair authentication offers significant operational benefits over standard passwords:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Mitigation of Brute-Force Attacks:&#039;&#039;&#039; Modern SSH keys possess high entropy, rendering dictionary and online brute-force attacks mathematically infeasible.&lt;br /&gt;
* &#039;&#039;&#039;Non-Interactive Automation:&#039;&#039;&#039; Keys facilitate secure, automated execution of administrative scripts, deployment pipelines (CI/CD), and infrastructure management tools without human intervention.&lt;br /&gt;
* &#039;&#039;&#039;Granular Access Control:&#039;&#039;&#039; System administrators can grant or revoke specific user access instantly by adding or removing individual public keys from a server, eliminating the need to reset global account passwords.&lt;br /&gt;
&lt;br /&gt;
== See Also ==&lt;br /&gt;
* [[Secure Shell]]&lt;br /&gt;
* [[Public-key cryptography]]&lt;br /&gt;
* [[ssh-keygen]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Computer access control]]&lt;br /&gt;
[[Category:Network security]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1834</id>
		<title>Computer Notes/Security Services Platform</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/Security_Services_Platform&amp;diff=1834"/>
		<updated>2026-09-10T00:02:20Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer Notes]] &amp;gt; Security Services Platform&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/Security Services Platform/Accessing the K8 Cluster|Accessing the K8 Cluster]]&lt;br /&gt;
&lt;br /&gt;
= Overview = &lt;br /&gt;
&lt;br /&gt;
* Runs Vdefend security services&lt;br /&gt;
&lt;br /&gt;
* This is an integrated security platform that can be deployed in the cloud.&lt;br /&gt;
&lt;br /&gt;
* Services run inside kubanties on virtual machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Services include ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response&lt;br /&gt;
&lt;br /&gt;
* Malware prevention&lt;br /&gt;
&lt;br /&gt;
* Rule Analysis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install process =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Install SSP on vSphere&lt;br /&gt;
&lt;br /&gt;
:* Install NSX&lt;br /&gt;
&lt;br /&gt;
::* Link SSP to NSX&lt;br /&gt;
&lt;br /&gt;
::* Upload packages using package management.&lt;br /&gt;
&lt;br /&gt;
::* Install platform features&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vSphere &amp;gt; SSPI &amp;gt; NSX &amp;gt; NSX Features&lt;br /&gt;
&lt;br /&gt;
== Package management notes ==&lt;br /&gt;
&lt;br /&gt;
* Accessed from the vdefend SSP Installer&lt;br /&gt;
&lt;br /&gt;
* The URL feature in upload enabled packages to be downloaded to the installer from an internal server on the air gapped network.&lt;br /&gt;
::* User downloads package &amp;gt; adds to internal server &amp;gt; downloads from internal server using SSPI&lt;br /&gt;
&lt;br /&gt;
* Packages are signed, only signed packages are allowed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Components =&lt;br /&gt;
&lt;br /&gt;
== vSphere ==&lt;br /&gt;
&lt;br /&gt;
* vSphere controls the clusters.&lt;br /&gt;
&lt;br /&gt;
:* By default a cluster has 3 hosts&lt;br /&gt;
&lt;br /&gt;
:* This default is often expanded&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Virtual machines are started on the hosts&lt;br /&gt;
&lt;br /&gt;
:* SSPI and NSX run on their own VM&#039;s&lt;br /&gt;
&lt;br /&gt;
:* Other VM&#039;s include:&lt;br /&gt;
&lt;br /&gt;
::* Ssp-service-controller&lt;br /&gt;
::* SSP-servie-md-0-worker &#039;&#039;&#039;two of these&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This configuration gives a total of 5 VM&#039;s and 3 Guest OS in a basic configuration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== NSX ==&lt;br /&gt;
&lt;br /&gt;
* Management is performed in NSX.&lt;br /&gt;
&lt;br /&gt;
:* After deployment of the NSX connect to the web UI using IP / FQDN&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Features are based off the configuration you set in NSX:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Security Intelligence&lt;br /&gt;
&lt;br /&gt;
::This feature provides distributed visibility and policy recommendations within an NSX environment, and lets you visualize security posture, analyze traffic flows, and create micro-segmentation policies.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Network Detection and Response (NDR)&lt;br /&gt;
&lt;br /&gt;
::This feature continuously monitors your network for threats and anomalous behavior, using techniques like network traffic analysis, IDS (Intrusion Detection System), IPS (Intrusion Prevention System), and advanced threat analysis, and then responds to identified threats.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Malware Prevention Service (MPS)	&lt;br /&gt;
&lt;br /&gt;
::This feature provides file-level protection against known and unknown malicious files, including zero-day threats, by analyzing traffic and extracting files for analysis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Network Traffic Analysis (NTA)&lt;br /&gt;
&lt;br /&gt;
::This feature monitors and inspects network traffic patterns and identifies anomalies or suspicious behavior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Metrics	&lt;br /&gt;
&lt;br /&gt;
::This feature collects point-in-time, time-series, and lifetime data to let you perform analyses (such as Top N) of your environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/security-services-platform-overview/key-concepts.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Private IP Ranges ===&lt;br /&gt;
&lt;br /&gt;
* Defined in security intelligence&lt;br /&gt;
&lt;br /&gt;
* These networks contain unsecured data&lt;br /&gt;
&lt;br /&gt;
* Defining them is a &#039;&#039;must&#039;&#039; for the system to function correctly&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/overview-of-nsx-intelligence/managing-private-ip-ranges-for-nsx-intelligence.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===  Distributed Firewall ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* This is a firewall that is deployed on each VM.&lt;br /&gt;
&lt;br /&gt;
* Works the same way as a security group in AWS.&lt;br /&gt;
&lt;br /&gt;
* Rules are loaded from NSX with NSX controlling the distributed firewall. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Advantages of the distributed firewall approach ====&lt;br /&gt;
&lt;br /&gt;
* Enforces Zero trust&lt;br /&gt;
&lt;br /&gt;
* Prevents lateral movement inside the security boundary (zero trust)&lt;br /&gt;
&lt;br /&gt;
* Parameter security (ie hardware firewalls) are no longer sufficient.&lt;br /&gt;
&lt;br /&gt;
:: If a node is breached no lateral movement is prevented without a ZTA.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Firewalling each VM is also more secure than an agent based approach.&lt;br /&gt;
&lt;br /&gt;
:: Again this all comes back to zero trust.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A key concept here is [[North / South &amp;amp; East West Network Security]]&lt;br /&gt;
&lt;br /&gt;
==== How it is organized ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* VM&#039;s are assigned to groups.&lt;br /&gt;
&lt;br /&gt;
* Polices contain rules / What to do with the packet.&lt;br /&gt;
&lt;br /&gt;
* Rules are assigned to source and destination groups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 Source Group + Destination group &amp;gt; Policy &amp;gt; Action&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Key point the source group and destination group much match what is defined for the policy.&lt;br /&gt;
&lt;br /&gt;
:* The policy will then execute the action based on the service.&lt;br /&gt;
&lt;br /&gt;
::* The action could be allow / drop / reject&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* A policy can be time based.&lt;br /&gt;
&lt;br /&gt;
[https://partnerportal.broadcom.com/documents/d/partner-portal/zero-trust-with-vmware-firewall-pptx?download=true more information on the distributed firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Gateway Firewall =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a parameter firewall with IDS/IPS configured from NSX.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is a &#039;&#039;software only&#039;&#039; firewall designed to control north / south traffic.&lt;br /&gt;
[https://www.vmware.com/docs/vmware-nsx-gateway-firewall]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Manages through NSX manager alongside the distributed firewall.&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/malware-prevention/getting-started-with-malware-prevention/overview-of-malware-prevention_service.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This is installed from the NXT Edge Appliance.&lt;br /&gt;
&lt;br /&gt;
* This is downloaded and installed as an .ova or .iso image. [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-2/installation-guide/installing-nsx-edge/manually-deploying-nsx-edge-node-outside-of-nsx/install-nsx-edge-via-iso-file-as-a-virtual-appliance.html]&lt;br /&gt;
&lt;br /&gt;
* Runs on the vSphere Client [https://www.vmware.com/products/cloud-infrastructure/vsphere]&lt;br /&gt;
&lt;br /&gt;
* Can also be run on bare metal server (using ISO installer) [https://techdocs.broadcom.com/us/en/vmware-cis/nsx/nsxt-dc/3-1/installation-guide/installing-nsx-edge/install-nsx-edge-on-bare-metal.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Types of Gateway ==&lt;br /&gt;
&lt;br /&gt;
* Tier-0 &lt;br /&gt;
:* Connects to external networks&lt;br /&gt;
:* Handles routing&lt;br /&gt;
:* This is a North/South gateway&lt;br /&gt;
:* Controlled by the NSX admin&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Tier-1&lt;br /&gt;
:* Handles routing between networks&lt;br /&gt;
:* This is a east/west gateway&lt;br /&gt;
:* Controlled by tenant admins&lt;br /&gt;
&lt;br /&gt;
[https://vdives.com/2019/10/24/nsx-t-logical-routers-gateways/ More Details]&lt;br /&gt;
&lt;br /&gt;
= SSP Data Storage =&lt;br /&gt;
[[SSP Data Storage]]&lt;br /&gt;
&lt;br /&gt;
= External Material =&lt;br /&gt;
&lt;br /&gt;
[https://techdocs.broadcom.com/us/en/vmware-security-load-balancing/vdefend/security-services-platform/5-0/reference-material.html techdocs]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/GIT/Git_Cheat_Sheet&amp;diff=1833</id>
		<title>Computer Notes/GIT/Git Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/GIT/Git_Cheat_Sheet&amp;diff=1833"/>
		<updated>2026-08-31T17:08:52Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: Created page with &amp;quot;== Starting a Project == {| class=&amp;quot;wikitable&amp;quot; |- ! Command !! Action |- | &amp;lt;code&amp;gt;git init&amp;lt;/code&amp;gt; || Initialize a new local Git repository |- | &amp;lt;code&amp;gt;git clone &amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt; || Download a repository from a remote server |}  == Staging &amp;amp; Committing == {| class=&amp;quot;wikitable&amp;quot; |- ! Command !! Action |- | &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || Show modified, untracked, and staged files |- | &amp;lt;code&amp;gt;git add &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; || Stage a specific file |- | &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || Stage a...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Starting a Project ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git init&amp;lt;/code&amp;gt; || Initialize a new local Git repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git clone &amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt; || Download a repository from a remote server&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Staging &amp;amp; Committing ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; || Show modified, untracked, and staged files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git add &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; || Stage a specific file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git add .&amp;lt;/code&amp;gt; || Stage all modified and new files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git add -f &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; || Force-stage a file ignored by .gitignore&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git commit -m &amp;quot;message&amp;quot;&amp;lt;/code&amp;gt; || Save staged snapshot with a description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git commit -am &amp;quot;message&amp;quot;&amp;lt;/code&amp;gt; || Stage tracked changes and commit in one step&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Branching &amp;amp; Merging ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch&amp;lt;/code&amp;gt; || List all local branches&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Create a new branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git switch &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Switch to an existing branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git switch -c &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Create and switch to a new branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git merge &amp;amp;lt;branch&amp;amp;gt;&amp;lt;/code&amp;gt; || Merge target branch into active branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git branch -d &amp;amp;lt;name&amp;amp;gt;&amp;lt;/code&amp;gt; || Delete a merged branch&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Syncing &amp;amp; Remotes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git remote add origin &amp;amp;lt;url&amp;amp;gt;&amp;lt;/code&amp;gt; || Link local repository to a remote URL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git fetch&amp;lt;/code&amp;gt; || Download remote changes without merging&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git pull&amp;lt;/code&amp;gt; || Fetch and merge changes from remote repository&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push -u origin &amp;amp;lt;branch&amp;amp;gt;&amp;lt;/code&amp;gt; || Upload commits and set default remote branch&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git push&amp;lt;/code&amp;gt; || Upload commits to linked remote branch&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Viewing History &amp;amp; Files ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git log --oneline&amp;lt;/code&amp;gt; || View condensed commit history&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git diff&amp;lt;/code&amp;gt; || Show changes made to unstaged files&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git diff --staged&amp;lt;/code&amp;gt; || Show changes staged for the next commit&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git ls-files&amp;lt;/code&amp;gt; || List all files currently tracked by Git&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Undoing Changes ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Command !! Action&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git restore &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; || Discard uncommitted changes in a file&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git restore --staged &amp;amp;lt;file&amp;amp;gt;&amp;lt;/code&amp;gt; || Unstage a file without losing changes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git reset HEAD~1&amp;lt;/code&amp;gt; || Undo last commit, keeping changes locally&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git reset --hard HEAD~1&amp;lt;/code&amp;gt; || Permanently discard last commit and all work&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;git commit --amend&amp;lt;/code&amp;gt; || Add staged changes to or edit the last commit&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
	<entry>
		<id>https://cramsession.net/index.php?title=Computer_Notes/GIT&amp;diff=1832</id>
		<title>Computer Notes/GIT</title>
		<link rel="alternate" type="text/html" href="https://cramsession.net/index.php?title=Computer_Notes/GIT&amp;diff=1832"/>
		<updated>2026-08-31T17:08:33Z</updated>

		<summary type="html">&lt;p&gt;Mflavell: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Setting up a private GIT repo in linux =&lt;br /&gt;
&lt;br /&gt;
Generate an SSH key:&lt;br /&gt;
&lt;br /&gt;
 ssh-keygen -t ed25519 -C &amp;quot;your_email@example.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The email must match your github email!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start the SSH agent &amp;amp; Add your key:&lt;br /&gt;
&lt;br /&gt;
 eval &amp;quot;$(ssh-agent -s)&amp;quot;&lt;br /&gt;
 ssh-add ~/.ssh/id_ed25519&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the public key:&lt;br /&gt;
 &lt;br /&gt;
 cat ~/.ssh/id_ed25519.pub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the key to github:&lt;br /&gt;
&lt;br /&gt;
::* Go to Settings -&amp;gt; SSH and GPG keys -&amp;gt; New SSH Key.&lt;br /&gt;
&lt;br /&gt;
::* Give it a title (like &amp;quot;Linux Desktop&amp;quot;), paste the key into the field, and save.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Clone what you need:&lt;br /&gt;
&lt;br /&gt;
  git clone git@github.com:username/private-repo.git&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= The git process =&lt;br /&gt;
&lt;br /&gt;
** Clone the repo &lt;br /&gt;
&lt;br /&gt;
** Add / Modify files &amp;gt; git add (add the files you want to submit)&lt;br /&gt;
&lt;br /&gt;
** git status (Double check list)&lt;br /&gt;
&lt;br /&gt;
** git commit (saves locally)&lt;br /&gt;
&lt;br /&gt;
** git push (upload changes)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Useful commands =&lt;br /&gt;
&lt;br /&gt;
====Add the a folder to git====&lt;br /&gt;
 &lt;br /&gt;
 git add &#039;&#039;&#039;path&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Remove something that is staged====&lt;br /&gt;
&lt;br /&gt;
 git restore --staged &#039;&#039;&#039;path&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Check what is staged====&lt;br /&gt;
 &lt;br /&gt;
 git status&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Commit the changes====&lt;br /&gt;
&lt;br /&gt;
 git commit -m “Message for commit”&lt;br /&gt;
&lt;br /&gt;
or to amend a commit&lt;br /&gt;
&lt;br /&gt;
 git commit –amend -m “Message for commit”&lt;br /&gt;
&lt;br /&gt;
====Uploading changes====&lt;br /&gt;
&lt;br /&gt;
 git push&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Computer Notes/GIT/Git Cheat Sheet|Git Cheat Sheet]]&lt;/div&gt;</summary>
		<author><name>Mflavell</name></author>
	</entry>
</feed>