SAP-C02

This is a digital copy of my physical notes taken while studying for AWS Certifications.
This is the following exam to SAA-C03.

IAM

IAM Access Analyzer

Security Token Service

Without externalID spoofing

sequenceDiagram
    Your Account->>+Corp Account: Provide AWS1:ExampleRole ARN
    Corp Account->>-Your Account: AssumeRole & access resources
    Attacker->>+Corp Account: Provide AWS1:ExampleRole ARN
    Corp Account->>-Your Account: AssumeRole & access resources

With externalID

sequenceDiagram
    Your Account->>+Corp Account: Provide AWS1:ExampleRole ARN
    Corp Account->>-Your Account: AssumeRole with external ID & access resources
    Attacker->>+Corp Account: Provide AWS1:ExampleRole ARN
    Corp Account->>-Your Account: AssumeRole fails because no external ID 

Identity Federation

flowchart
    subgraph Corporate Network
        LDAP[LDAP-Based Identity Store] <-- "2. Authenticate" --> IDP
        User -- "1. App makes auth request" --> IDP["Portal/Identity Provider (IdP)"]
        IDP -- "3. SAML Assertion" --> User
    end
    
    subgraph AWS Cloud
        STS -- "5. Temporary Security Credentials" --> User
        User -- "4. AssumeRoleWithSAML API" --> STS("Secure Token Service (STS)")
        User -- "6. Access AWS" --> S3
        S3
    end

Custom Identity Broker

flowchart LR
    subgraph Corporate Network
      User -- "1. User browse to a URL" --> IDP["Custom Identity Broker"]
      LDAP[LDAP-Based Identity Store] <-- "2. Authenticate" --> IDP
      IDP -- "4. Return Token or URL" --> User
    end
    
    subgraph AWS Cloud
      IDP <-- "3. Request Temporary Security Credentials" --> STS
      User -- "5. Access AWS API" --> S3
      User -- "5. Redirect" --> Console[AWS Console]
    end

Web Identity Federation - Without Cognito

Web Identity Federation - With Cognito

AWS Managed Microsoft Active Directory

Organisation Units

Service Control Policies (SCPs)

Organisation tag policies

Organisation AI opt-out policies

Organisation backup policies

AWS IAM Identity Center

AWS Control Tower

Compute

Placement Groups

Host Affinity

Host affinity is configured at the instance level. It establishes a launch relationship between an instance and a Dedicated Host.
When affinity is set to Host, an instance launched onto a specific host always restarts on the same host if stopped. This applies to both targeted and untargeted launches.
When affinity is set to Default, and you stop and restart the instance, it can be restarted on any available host. However, it tries to launch back onto the last Dedicated Host on which it ran (on a best-effort basis).

Source

AWS Resource Access Manager

SSL SNI

Cloud HSM

SSL Offloading

flowchart LR
    User <-- TCP --> NLB
    NLB <-- HTTPS --> M51[M5]
    NLB <-- HTTPS --> M52[M5]
    NLB <-- HTTPS --> M53[M5]

    subgraph ASG
        M51[M5]
        M52[M5]
        M53[M5]
    end

    M51 <--> CloudHSM
    M52 <--> CloudHSM
    M53 <--> CloudHSM

    CloudHSM <--> CloudHSMAZ["CloudHSM (Multi-AZ)"]

EC2 Instance Connect

Instance Recovery

High Performance Computing (HPC)

ECS Networking

EKS Data Volumes

ECS Anywhere

EKS Anywhere

NLB Zonal DNS Names

NLB Flow hash routing

AppSync

Route53 Health-checks

Hybrid DNS & Resolver Rules

AWS Global Accelerator

AWS Outposts

AWS Wavelength (5G)

AWS Local Zones

EBS Snapshots

Data Lifecycle Manager

EBS Encryption

EFS Access Points

S3 Replication Time Control (RTC)

FSX for Lustre Lazy Data Loading

AWS DataSync

RDS for Oracle

High Volume Queue Processing

Kinesis

Kinesis Streams

flowchart LR
    subgraph Producer
        P1[Producer 1]
        P2[Producer 2]
    end

    subgraph Kinesis Stream
        S1[Shard 1]
        S2[Shard 2]
    end

    subgraph Consumer
        C1[Consumer 1]
        C2[Consumer 2]
    end

    P1 -- Insert --> S1
    P2 -- Insert --> S2
    S1 -- Read --- C1
    S1 -- Read --- C2
    S2 -- Read --- C2

KCL Consumer

flowchart TD
  Kinesis[Kinesis Stream]
  KCL1[KCL App] 
  KCL2[KCL APP]
  DynamoDB[DynamoDB]
  
  Kinesis -- Consume Messages --> KCL1
  Kinesis -- Consume Messages --> KCL2
  
  KCL1 <-- Checkpoint Progress --> DynamoDB
  KCL2 <-- Checkpoint Progress --> DynamoDB

Kinesis Firehose

flowchart LR
  Stream[Kinesis Stream]
  Firehose[Kinesis Firehose]
  Lambda
  S3[S3 Output Bucket]
  S32[S3 Other Bucket]
  Redshift[Redshift]
  
  Stream == Delivery Stream ==> Firehose
  Firehose <-. Optional Transformation .-> Lambda
  Firehose --->|Original Records| S32
  Firehose --->|Delivery Failures| S32
  Firehose --->|Transformation Failures| S32
  
  Firehose ===>|Output| S3
  S3 -. Copy .-> Redshift

Kinesis Analytics

flowchart LR
  Streams[Kinesis Data Streams]
  Firehose[Kinesis Data Firehose]
  S3[Amazon S3]
  
  subgraph Kinesis Analytics
    Input[Input Streams]
    Reference["Reference Table"]
    
    Analytics[Kinesis Data Analytics]
   
    Output["Output Streams"]
    Error["Error Stream"]
  end
  
  StreamOut[Kinesis Data Streams]
  StreamOutConsumer[Consumers]
  FirehoseOut[Kinesis Data Firehose]
  S3Out[Amazon S3]
  RedshiftOut[Amazon Redshift]
  
  Streams --> Input
  Firehose --> Input
  S3 --> Reference
  
  Input --> Analytics
  Reference --> Analytics
  
  Analytics <-. SQL .-> Analytics 
  
  Analytics --> Output
  Analytics --> Error
  
  Output --> StreamOut
  Output --> FirehoseOut
  
  StreamOut --> StreamOutConsumer
  FirehoseOut --> S3Out
  FirehoseOut --> RedshiftOut

Comparing data streaming services

Comparison Charts

Kinesis Data Streams SQS SQS FIFO SNS DynamoDB S3
Data Immutable Immutable Immutable Immutable Mutable Mutable
Retention 1-365 days, export to S3 using KDF 1-14 days 1-14 days No retention Infinite or can implement TTL Infinite, can setup lifecycle
Ordering Per shard No ordering Per group-id No ordering No ordering No ordering
Scalability Provision shards Soft limit 300 msg/s Or 3000 if batch Soft limit WCU & RCU / On-demand Infinite / 3500 PUT 5500 GET per prefix
Readers EC2, Lambda, KDF, KDA, KCL (checkpoint) EC2, Lambda EC2, Lambda HTTP, Lambda, Email, SOS... DynamoDB Streams SDK, S3 Events
Latency KDS (200 ms) KDF (1 min) Low (10-100ms) Low (10-100ms) Low (10-100 ms) Low (10-100ms) Low (10-100ms)

AWS Batch

Amazon Elastic Map Reduce (EMR)

Redshift

Athena

Cloudwatch Synthetic Canary

Elastic Beanstalk

Service Catalog

AWS Compute Optimiser

AWS Snow Family

AWS Schema Conversion Tool (SCT)

Snowball + DMS

Disaster Recovery

Elastic Disaster Recovery

VPCs

VPC Peering

Transit Gateway

VPC Endpoints

VPC Endpoint Policies

Site to Site VPN

Client VPN

Direct Connect Virtual Interfaces

Direct Connect Encryption

Kinesis Video Streams

Amazon Workspaces

AWS Application Discovery Service

Agentless discovery can be performed by deploying the Application Discovery Service Agentless Collector (Agentless Collector) (OVA file) through your VMware vCenter. After Agentless Collector is configured, it identifies virtual machines (VMs) and hosts associated with vCenter. Agentless Collector collects the following static configuration data: Server hostnames, IP addresses, MAC addresses, disk resource allocations, database engine versions, and database schemas. Additionally, it collects the utilization data for each VM and database providing the average and peak utilization for metrics such as CPU, RAM, and Disk I/O.

Agent-based discovery can be performed by deploying the AWS Application Discovery Agent on each of your VMs and physical servers. The agent installer is available for Windows and Linux operating systems. It collects static configuration data, detailed time-series system-performance information, inbound and outbound network connections, and processes that are running.

source



Updated 422 days ago (22 Aug 2024)