Files
oam/knowledge base/cloud computing/aws/README.md
2024-08-23 22:59:16 +02:00

21 KiB

Amazon Web Services

  1. Networking
    1. Elastic IP addresses
  2. Services
    1. Billing and Cost Management
    2. CloudWatch
    3. Config
    4. Detective
    5. GuardDuty
    6. EventBridge
    7. ImageBuilder
    8. Inspector
    9. KMS
    10. Security Hub
  3. Resource constraints
  4. Access control
  5. Savings plans
  6. Further readings
    1. Sources

Networking

VPCs define isolated virtual networking environments.
AWS accounts include one default VPC for each AWS Region. These allow for immediate launch and connection to EC2 instances.

Subnets are ranges of IP addresses in VPCs.
Each subnet resides in a single Availability Zone.
Public subnets have a direct route to an Internet gateway. Resources in public subnets can access the public Internet.
Private subnets do not have a direct route to an Internet gateway. Resources in private subnets require a NAT device to access the public internet.

Gateways connect VPCs to other networks.
Internet gateways connect VPCs to the Internet.
NAT gateways allow resources in private subnets to connect to the Internet, other VPCs, or on-premises networks. They can communicate with services outside the VPC, but cannot receive unsolicited connection requests.
VPC endpoints connect VPCs to AWS services privately, without the need of Internet gateways or NAT devices.

Elastic IP addresses

Refer Elastic IP addresses.

Static, public IPv4 addresses allocated to one's AWS account until one releases it.
One can can rapidly remapping addresses to other instances in one's account and use them as targets in DNS records.

Services

Service Description
Billing and Cost Management FIXME
CloudWatch Observability (logging, monitoring, alerting)
Config Compliance
Detective FIXME
EC2 Virtual machines
ECR Container registry
ECS Containers as a service
EKS Kubernetes clusters
EventBridge FIXME
GuardDuty Threat detection
IAM Access control
ImageBuilder Build custom AMIs
Inspector FIXME
KMS Key management
OpenSearch ELK, logging
RDS Databases
S3 Storage
Sagemaker Machine learning
Security Hub Aggregator for security findings

Service icons are publicly available for diagrams and such. Public service IP address ranges are available in JSON form at https://ip-ranges.amazonaws.com/ip-ranges.json.

Billing and Cost Management

Costs can be grouped by Tags applied on resources.
Tags to use for this kind of grouping need to be activated in the Cost allocation tags section.
New tags might take 24 or 48 hours to appear there.

CloudWatch

Observability service. with functions for logging, monitoring and alerting.

Metrics are whatever needs to be monitored (e.g. CPU usage). Data points are the values of a metric over time. Namespaces are containers for metrics.

Metrics only exist in the region in which they are created.

Many AWS services offer basic monitoring by publishing a default set of metrics to CloudWatch with no charge.
This feature is automatically enabled by default when one starts using one of these services.

Config

Compliance service for assessing and auditing AWS resources.

Provides an inventory of resources.
Records and monitors resource configurations and their changes.
The data is stored in a bucket (default name config-bucket-{aws-account-number})
Changes can be streamed to 1 SNS topic for notification purposes.
Uses rules to evaluate whether the resources configurations comply.
Rule evaluation is done once every time a configuration changes, or periodically.
Resources are marked with the evaluation result (compliant, non-compliant).

Custom rules can be used to evaluate for uncommon requirements.
Custom rules leverage lambda functions.

Allows for automatic remediation for non-compliant resources by leveraging Systems Manager Automation documents.

Conformance packs are set of rules bundled together as a deployable single entity.
Defined as YAML templates.
Immutable: users cannot make changes without updating the whole rule package.
Sample templates for compliance standards and benchmarks are available.

Detective

Uses ML and graphs to try and identify the root cause of security issues.
Creates visualizations with details and context by leveraging events from VPC Flow Logs, CloudTrail and GuardDuty.

GuardDuty

Threat detection service.

It continuously monitors accounts and workloads for malicious activity and delivers security findings for visibility and remediation.
Done by pulling streams of data from CloudTrail, VPC Flow Logs or EKS.

Member accounts can administer GuardDuty by delegation if given the permissions to do so.

Findings are potential security issues for malicious events.
Those are also sent to EventBridge for notification (leveraging SNS).
Each is assigned a severity value (0.1 to 8+).

Trusted IP List is a whitelist of public IPs that will be ignored by the rules.
Threat IP List is a blacklist of public IPs and CIDRs that will be used by the rules.

EventBridge

TODO

ImageBuilder

Also refer Image baking in AWS using Packer and Image builder.

Inspector

TODO

KMS

Key material is the cryptographic secret of Keys that is used in encryption operations.

Enabling automatic key rotation for a KMS key makes the service generate new cryptographic material for the key every year by default.
Specify a custom rotation period to customize that time frame.

Perform on-demand rotation should you need to immediately initiate key material rotation.
This works regardless of whether the automatic key rotation is enabled or not. On-demand rotations do not change existing automatic rotation schedules.

KMS saves all previous versions of the cryptographic material in perpetuity to allow decryption of any data encrypted with keys.
Rotated key material is not deleted until the key itself is deleted.

Track the rotation of key material CloudWatch, CloudTrail, and the KMS console.
Alternatively, use the GetKeyRotationStatus operation to verify whether automatic rotation is enabled for a key and identify any in progress on-demand rotations. Use the ListKeyRotations operation to view the details of completed rotations.

When using a rotated KMS key to encrypt data, KMS uses the current key material.
When using the same rotated KMS key to decrypt ciphertext, KMS uses the version of the key material that was used for encryption.
One cannot select a particular version of key materials for decrypt operations. This automation allows to safely use rotated KMS keys in applications and AWS services without code changes.

Automatic key rotation has no effect on the data that KMS keys protect: it does not rotate the data generated by rotated keys, re-encrypts any data protected by the keys, nor it will mitigate the effect of compromised data keys.

KMS supports automatic and on-demand key rotation only for symmetric encryption keys with key material that KMS itself creates.
Automatic rotation is optional for customer managed KMS keys. KMS rotates the key material for AWS managed keys on an yearly basis. Rotation of AWS owned KMS keys is managed by the AWS service that owns the key.

Key rotation only changes the key material, not the key's properties.
The key is considered the same logical resource, regardless of whether or how many times its key material changes.

Creating a new key and using it in place of the original one has the same effect as rotating the key material in an existing key.
This is considered a manual key rotation and is a good choice to rotate keys that are not eligible for automatic key rotation.

AWS charges a monthly fee for the first and second rotation of key material maintained for each key.
This price increase is capped at the second rotation. Any subsequent rotations will not be billed.

Each key counts as one when calculating key resource quotas, regardless of the number of rotated key material versions.

Security Hub

Aggregator of findings for security auditing.

Uses Config to check resources' configuration by leveraging compliancy rules.

Security standards are offered as ret of rules for Config.

Data can be aggregated from different regions.
If the integration is enabled, findings from AWS services (GuardDuty) are used too within 5 minutes on average, while ones from 3rd parties can take longer.

Data can be imported from or exported to 3rd parties if the integration is enabled.
Kinda acts as a middle layer for AWS accounts.

Findings are consumed in AWS Security Finding Format (ASFF).
Those are automatically updated and deleted. Findings after 90 days are automatically deleted even if not resolved.

Can use custom insights.

Custom actions can be sent to EventBridge for automation.

Member accounts can administer Security Hub by delegation if given the permissions to do so.

Resource constraints

Data type Component Summary Description Type Length Pattern Required
Statement ID Value Optional identifier for a policy statement The element supports only ASCII uppercase letters (A-Z), lowercase letters (a-z), and numbers (0-9). String FIXME [A-Za-z0-9] No
Tag Key Required name of the tag The string value can be Unicode characters and cannot be prefixed with "aws:".
The string can contain only the set of Unicode letters, digits, white-space, _,' ., /, =, +, -, :, @ (Java regex: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$)
String 1 to 128 ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$ Yes
Tag Value The optional value of the tag The string value can be Unicode characters. The string can contain only the set of Unicode letters, digits, white-space, _, ., /, =, +, -, :, @ (Java regex: ^([\\p{L}\\p{Z}\\p{N}_.:/=+\\-]*)$", [\p{L}\p{Z}\p{N}_.:\/=+\-@]* on AWS) String 0 to 256 ^([\p{L}\p{Z}\p{N}_.:/=+\-@]*)$ Yes

Access control

Refer IAM.

Savings plans

Refer Savings Plans user guide.

Pricing models offering lower prices compared to On-Demand prices. They require specific usage commitments ($/hour) for 1-year or 3-years terms.

Dedicated Instances, Spot Instances and Reserved Instances are not discounted by Savings Plans.

Savings Plan Included resources Up to
Compute EC2 instances regardless of family, size, AZ, region, OS or tenancy
Lambda
Fargate
66%
EC2 Instance Individual EC2 instance families in a specific region (e.g. M5 usage in N. Virginia) regardless of AZ, size, OS or tenancy 72%
Amazon SageMaker Eligible SageMaker ML instances, including SageMaker Studio Notebook, SageMaker On-Demand Notebook, SageMaker Processing, SageMaker Data Wrangler, SageMaker Training, SageMaker Real-Time Inference, and SageMaker Batch Transform regardless of instance family, size, or region 64%

Both Compute and EC2 Instance plan types apply to EC2 instances that are a part of Amazon EMR, Amazon EKS, and Amazon ECS clusters. They do not apply to RDS instances.
Charges for the EKS service itself will not be covered by Savings Plans, but the underlying EC2 instances will be.

Savings Plans are available in the following payment options:

  • No Upfront: no upfront payments, commitment charged purely on a monthly basis.
  • Partial Upfront: lower prices, at least half of one's commitment upfront, remainder charged on a monthly basis.
  • All Upfront: lowest prices, entire commitment charged in one payment at the start.

Savings Plans can be purchased in any account within an AWS Organization/Consolidated Billing family.
By default, the benefits of the Plans are applicable to usage across all accounts. One can choose to restrict the benefit of the Plans to only the account that purchased them.

One account can have multiple Savings Plans active at the same time.

Plans cannot be cancelled during their term.
Plans can be returned only if:

  • They consist in an hourly commitment of $100 or less.
  • They have been purchased in the past 7 days and in the same calendar month.

Once returned, one will receive a 100% refund for any upfront charges for the Savings Plan.
Refunds will be reflected in one's bill within 24 hours of return.

Any usage covered by the plan will be charged at On-Demand rates, or get covered by a different Savings Plans if applicable.

Plans do not provide capacity reservations.
One can however reserve capacity with On Demand Capacity Reservations and pay lower prices on them with Savings Plans.

EC2 Instance Savings Plans are applied before Compute Savings Plans.

Savings Plans are applied to the highest savings percentage first. If there are multiple usages with equal savings percentages, Savings Plans are applied to the first usage with the lowest Savings Plans rate.
Savings Plans continue to apply until there are no more remaining usages, or one's commitment is exhausted. Any remaining usage is then charged at the On-Demand rates.

Further readings

Sources