AWS IAM
AWS Identity and Access Management (IAM) is a web service that enables you to securely control access to AWS resources. IAM allows you to manage who can authenticate (sign in) and who is authorized (has permissions) to use resources within your AWS account.
Key Features and Components
Users• Individual identities (such as people or applications) that need access to AWS resources.• Each user has unique credentials and can be assigned specific permissions.
Groups• Collections of users that share the same permissions.• Assigning permissions to a group automatically applies them to all users in that group, simplifying management.
Roles• Identities that can be assumed by anyone or anything that needs them, such as AWS services or external users.• Roles use temporary security credentials, which are especially useful for granting limited-time access to resources (e.g., an EC2 instance accessing an S3 bucket).
Policies• JSON documents that define permissions, specifying what actions are allowed or denied on which resources.• Policies can be attached to users, groups, or roles, and are used to enforce fine-grained access control.
How IAM Works
A user or application provides credentials to prove their identity to AWS. IAM evaluates policies attached to the identity and the resource to determine whether the requested action is allowed or denied. If authorized, the principal (user, group, or role) can perform actions like launching EC2 instances, modifying group memberships, or accessing S3 buckets.
Additional Features
Granular permissions: Control access at a detailed level, supporting the principle of least privilege.
Multi-factor authentication (MFA): Enhance security by requiring an additional verification method.
Identity federation: Allow users authenticated by external systems (like Google or Facebook) to access AWS resources.
No additional cost: IAM is free to use with your AWS account.
AWS KMSAWS Key Management Service (KMS) is a fully managed service from Amazon Web Services that enables you to create, control, and manage cryptographic keys used to protect your data across AWS workloads and applications. It is designed to simplify and centralize key management, helping organizations secure sensitive data by providing robust encryption, digital signing, and access control capabilities.
Key Features and Capabilities
Centralized Key Management: AWS KMS allows you to create, manage, rotate, disable, and define usage policies for cryptographic keys from a single, centralized location.
Integrated Security: Keys are protected by FIPS 140-3 (and previously FIPS 140-2) validated hardware security modules (HSMs), ensuring high levels of security and compliance for cryptographic operations.
Encryption and Decryption: Use KMS to encrypt and decrypt data stored in AWS services (like S3, EBS, RDS) or within your own applications, supporting both symmetric and asymmetric key operations.
Digital Signing and Verification: Generate and verify digital signatures using asymmetric key pairs, ensuring data authenticity and integrity.
Audit and Compliance: AWS KMS is integrated with AWS CloudTrail, providing detailed logs of all key usage and management actions to support auditing and compliance requirements.
Scalability and High Availability: The service is designed to automatically scale to meet the needs of your workloads, with high durability and regional redundancy.
Integration with AWS Services: KMS is natively integrated with over 100 AWS services, making it easy to enable encryption and manage keys across your cloud environment.
How AWS KMS Works
Key Hierarchy: At the core of AWS KMS is the concept of a KMS key, a logical container for cryptographic key material. Keys never leave the service unencrypted and are managed entirely within AWS KMS.
Key Types: There are three main types of KMS keys:
Customer managed keys (created and managed by you)
AWS managed keys (created by AWS services for your resources)
AWS owned keys (used by AWS for internal service operations)
Key Usage: KMS keys can be used for:
Data encryption, decryption, and re-encryption
Message signing and verification
Generating and verifying HMAC codes
Generating random numbers for cryptographic applications
Why Use AWS(...)
AWS S3
Amazon Simple Storage Service (Amazon S3) is a cloud-based object storage service provided by Amazon Web Services (AWS). It is designed for high scalability, data availability, security, and performance, enabling users and organizations to store and retrieve any amount of data from anywhere on the internet.
Key Features
• Object Storage Model: S3 stores data as objects within buckets. Each object consists of the data itself, metadata, and a unique key (identifier).• Buckets: A bucket is a logical container for storing objects. Each bucket name must be globally unique, and you can create multiple buckets in different AWS regions.• Scalability and Performance: S3 automatically scales to accommodate virtually unlimited data, supporting storage from gigabytes to exabytes with high performance and low latency.• Durability and Availability: S3 is engineered for 99.999999999% (11 nines) durability and 99.99% availability, with data automatically replicated across multiple devices and facilities within an AWS region.• Security and Access Control: Data in S3 is private by default. Access can be managed using AWS Identity and Access Management (IAM) policies, bucket policies, access control lists (ACLs), and S3 Access Points. S3 supports encryption and auditing for compliance and security.• Storage Classes: S3 offers multiple storage classes for different use cases and cost requirements, such as S3 Standard, S3 Intelligent-Tiering, S3 Standard-IA (Infrequent Access), S3 One Zone-IA, S3 Glacier, and S3 Glacier Deep Archive.• Data Management: S3 provides features like versioning, lifecycle policies, and event notifications to help manage data efficiently and automate transitions between storage classes
Azure Blob StorageAzure Blob Storage is Microsoft’s cloud-based object storage solution designed specifically for storing large amounts of unstructured data—data that does not fit a specific data model or definition, such as text, images, videos, audio files, log files, and binary data.
Key Features and Uses
• Unstructured Data Storage: Blob Storage is ideal for files like documents, images, media, and backups that don’t follow a rigid format.• Scalability: It can handle massive amounts of data and scale up or down as needed.• Accessibility: Objects in Blob Storage can be accessed from anywhere in the world over HTTP/HTTPS, via REST APIs, Azure PowerShell, Azure CLI, or client libraries for various programming languages.• Security: Offers encryption at rest and in transit, role-based access control, and shared access signatures.• Tiered Storage: Includes hot, cool, and archive access tiers to optimize cost based on how frequently data is accessed.• Integration: Works seamlessly with other Azure services and third-party applications for analytics, backup, disaster recovery, and content delivery.
How Blob Storage is Structured
• Storage Account: Provides a unique namespace in Azure for your data.• Container: Acts like a directory within the storage account to organize blobs.• Blob: The actual file (object) stored in a container. A single container can hold an unlimited number of blobs.
Types of Blobs
• Block Blobs: Best for text and binary data, such as documents or media files.• Page Blobs: Used for random read/write operations, often for virtual machine disks.• Append Blobs: Optimized for append operations, such as logging.
Common Use Cases
• Media and File Hosting: Serving images, videos, and documents directly to browsers or applications.• Backup and Disaster Recovery: Storing backups and archives for resilience.• Big Data and Analytics: Integration with Azure Data Lake Storage for analytics workloads.• Log and Event Data: Storing logs and other event data from applications or IoT devices.