Cloud Microservice Security

Monolith Architecture Security Controls Below is a sample traditional monolithic architecture with various security controls.   Microservices Microservices are an architectural approach. Decouple system into small, independent services Use well defined service APIs Each microservice is easy to change and deploy independently They fit naturally with containers – one microservice per container Consider the following […]

IoT on AWS

AWS provides several devices and services for enterprise IoT solutions.   Devices and Device Software Snowcone FreeRTOS OS for microcontrollers that makes small, low-power edge devices easy to program, deploy, secure, connect and manage IoT Greengrass Software that allows local compute, messaging, data caching, sync and machine learning inference capabilities on connected devices in a […]

AWS Tagging Strategy

These are some notes on AWS Tagging Best Practices. See reference section below for sources. Amazon Web Services allows customers to assign metadata to their AWS resources in the form of tags. Each tag is a simple label consisting of a customer-defined key and an optional value that can make it easier to manage, search […]

AWS Service Quotas

In Amazon Web Services there are service quotas for many of the services. A service quota is the maximum number of service resources or operations that apply to an account, although some service quotas apply to a Region. An example of an account-based quota is the number of AWS IAM roles per account or AWS […]

AWS Solutions Architect Certification

Notes taken during preparation for the AWS SA Associate Certification. Purpose The AWS Solutions Architect Certification is intended for individuals who perform a Solutions Architect role. This exam validates an examinee’s ability to effectively demonstrate knowledge of how to architect and deploy secure and robust applications on AWS technologies.   Exam Domains The exam is […]

Load Balanced and Auto Scaling containerized app with AWS ECS

Elastic Container Service (ECS) is a container management service that is scalable, secure, reliable and fast. ECS can launch containers in EC2 or serverless in what is called Fargate. For either launch types, ECS will be orchestrating the containers and managing the cluster. Amazon ECS is a regional service that simplifies running application containers in […]

Information Systems Government Compliance

Organizations DHS – Major US Government agency focused on cyber security is DHS. They focus on the physical and cyber threats to the nation. US-CERT (United States Computer Emergency Readiness Team) – coordinates cyber information sharing and manages national cyber risks. (www.us-cert.gov). They also distribute vulnerability and threat information to National Awareness System (NCAS) and […]

Azure implementing caching

The following is from Azure Developer Training lab for AZ-203 Azure Cache for Redis overview Azure Cache for Redis is based on the popular software Redis. It is typically used as a cache to improve the performance and scalability of systems that rely heavily on backend data-stores. Performance is improved by temporarily copying frequently accessed […]

Azure developing scalable apps

The following is from Azure Developer Training lab for AZ-203 Common autoscale patterns Note: Azure Monitor autoscale currently applies only to Virtual Machine Scale Sets, Cloud Services, App Service – Web Apps, and API Management services. Scale based on CPU You have a web app (/VMSS/cloud service role) and You want to scale out/scale in […]

Azure Monitor and Logging

The following is from Azure Developer Training lab for AZ-203 Azure Monitor overview Note: Consolidation of monitoring services into Azure Monitor Log Analytics and Application Insights have been consolidated into Azure Monitor to provide a single integrated experience for monitoring Azure resources and hybrid environments. Overview The following diagram gives a high-level view of Azure […]

Azure Secure Data Solutions

The following is from Azure Developer Training lab for AZ-203 Encryption Encryption is the process of translating plain text data (plaintext) into something that appears to be random and meaningless (ciphertext). Decryption is the process of converting ciphertext back to plaintext. To encrypt more than a small amount of data,symmetric encryption is used. A symmetric […]

Azure implementing Access Control

The following is from Azure Developer Training lab for AZ-203 Claims Authorization is the process of determining which entities have permission to change, view, or otherwise access a computer resource. For example, in a business, only managers may be allowed to access the files of their employees. In the past, this was simple toaccomplish with […]

Azure Managing Identities

The following is from Azure Developer Training lab for AZ-203 Managed identities for Azure resources overview Note: Managed identities for Azure resources is a feature of Azure Active Directory. Each of the Azure services that support managed identities for Azure resources are subject to their own timeline. Make sure you review the availability status of […]

Azure Implementing Authentication

The following is from Azure Developer Training lab for AZ-203 Microsoft identity platform overview Microsoft identity platform is an evolution of the Azure Active Directory (Azure AD) identity service and developer platform. It allows developers to build applications that sign in all Microsoft identities, get tokens to call Microsoft Graph, other Microsoft APIs, or APIs […]

Azure develop solutions Relational Database

The following is from Azure Developer Training lab for AZ-203 The Azure SQL Database service SQL Database is a general-purpose relational database managed service in Microsoft Azure that supports structures such as relational data, JSON, spatial, and XML. SQL Database delivers dynamically scalable performance within two different purchasingmodels: a vCore-based purchasing model and a DTU-based […]

Azure develop solution for Cosmos DB

The following is from Azure Developer Training lab for AZ-203 Azure Cosmos DB Microsoft Azure Cosmos DB is a database service native to Azure that focuses on providing a high-performance database regardless of your selected API or data model. Azure Cosmos DB offers multiple APIs and models that can be used interchangeably for various application […]

Azure App Service API Apps

The following is from Azure Developer Training lab for AZ-203 API Management overview API Management (APIM) helps organizations publish APIs to external, partner, and internal developers to unlock the potential of their data and services. Businesses everywhere are looking to extend their operations as a digital platform, creating new channels, finding new customers and driving […]

Azure App Service Functions

The following is from Azure Developer Training lab for AZ-203 Introduction to Azure Functions Azure Functions is a solution for easily running small pieces of code, or “functions,” in the cloud. You can write just the code you need for the problem at hand, without worrying about a whole application or the infrastructure to run […]

Azure App Service Mobile Apps

The following is from Azure Developer Training lab for AZ-203 About mobile apps in App Service Azure App Service is a fully managed platform as a service (PaaS) offering for professional developers. The service brings a rich set of capabilities to web, mobile, and integration scenarios. The Mobile Apps feature of Azure App Service gives […]

Azure App Service In Depth

The following is from Azure Developer Training lab for AZ-203 Web Apps Overview Azure App Service web apps (or just Web Apps) is a service for hosting web applications, REST APIs, and mobile back ends. You can develop in your favorite language, be it .NET, .NET Core, Java, Ruby, Node.js, PHP, orPython. Applications run and […]

AWS SAM (Serverless Application Model)

Following excerpt from AWS Developer site: The AWS Serverless Application Model (AWS SAM) is an open-source framework that you can use to build serverless applications on AWS. A serverless application is a combination of Lambda functions, event sources, and other resources that work together to perform tasks. Note that a serverless application is more than just a Lambda function—it […]

Facial Recognition using AWS Rokognition

Rekognition Overview This overview section was copied from AWS Rokognition site. Rekognition API service provides identification of objects, people, text, scenes, activities, or inappropriate content. Developers can quickly build a searchable content library to optimize media workflows, enrich recommendation engines by extracting text in images, or integrate secondary authentication into existing applications to enhance end-user […]

Azure Functions

This post is general notes and overview of Azure Functions.   Background Azure Functions is the serverless compute service in Azure. It is a combination of Events and Code where events could be: Time Data Web In contrast to Azure Functions, we could use Azure App Service (Azure Web Applications and Web Jobs) but that […]

Azure Securing Identity

The following is from Azure Administrator Training lab for AZ-103 Azure MFA Concepts Azure Multi-Factor Authentication (MFA) helps safeguard access to data andapplications while maintaining simplicity for users. It provides additionalsecurity by requiring a second form of authentication and delivers strongauthentication through a range of easy to use authentication methods. For organizations that need to […]

Azure Governance and Compliance

The following is from Azure Administrator Training lab for AZ-103 Management Groups If your organization has several subscriptions, you may need a way to efficiently manage access, policies, and compliance for those subscriptions.Azure management groups provide a level of scope above subscriptions. You organize subscriptions into containers called “management groups” and apply your governance conditions […]

Azure Active Directory

The following is from Azure Administrator Training lab for AZ-103 Azure Active Directory (Azure AD) is Microsoft’s multi-tenant cloud-baseddirectory and identity management service. For IT Admins, Azure ADprovides an affordable, easy to use solution to give employees and businesspartners single sign-on (SSO) access to thousands of cloud SaaS Applicationslike Office365, Salesforce.com, DropBox, and Concur. For […]

Azure Data Services

The following is from Azure Administrator Training lab for AZ-103 CDN Benefits A content delivery network (CDN) is a distributed network of servers that canefficiently deliver content to users. CDNs store cached content on edgeservers that are close to end-users. CDNs are typically used to deliver static content such as images, style sheets,documents, client-side scripts, […]

Azure Data Protection

The following is from Azure Administrator Training lab for AZ-103 Replication Options The data in your Azure storage account is always replicated to ensuredurability and high availability. Azure Storage replication copies your data sothat it is protected from planned and unplanned events ranging from transienthardware failures, network or power outages, massive natural disasters, andso on. […]

Azure Monitoring

The following is from Azure Administrator Training lab for AZ-103 Azure Monitor Service Monitoring is the act of collecting and analyzing data to determine theperformance, health, and availability of your business application and theresources that it depends on. An effective monitoring strategy helps youunderstand the detailed operation of the components of your application. Italso helps […]

Azure Network Traffic Management

The following is from Azure Administrator Training lab for AZ-103 System Routes Azure uses system routes to direct network traffic between virtual machines,on-premises networks, and the Internet. The following situations are managedby these system routes: Traffic between VMs in the same subnet. Between VMs in different subnets in the same virtual network. Data flow from […]

Azure Intersite Networking

The following is from Azure Administrator Training lab for AZ-103 VNet Peering VNet Peering Perhaps the simplest and quickest way to connect your VNets is to use VNetpeering. Virtual network peering enables you to seamlessly connect two Azurevirtual networks. Once peered, the virtual networks appear as one, forconnectivity purposes. There are two types of VNet […]

Azure Virtual Networking

The following is from Azure Administrator Training lab for AZ-103 Azure Networking Components A major incentive for adopting cloud solutions such as Azure is to enableinformation technology (IT) departments to move server resources to thecloud. This can save money and simplify operations by removing the need tomaintain expensive datacenters with uninterruptible power supplies,generators, multiple fail-safes, […]

Azure Storage In Depth

The following is from Azure Administrator Training lab for AZ-103 Azure Storage Azure Storage is Microsoft’s cloud storage solution for modern data storage scenarios. Azure Storage offers a massively scalable objectstore for data objects, a file system service for the cloud, a messaging store for reliable messaging, and a NoSQL store. Azure Storage is: Durable […]

Azure Storage

The following is from Azure Administrator Training lab for AZ-103 These are some reference notes using Azure Storage services as of 12/2018. The main storage services available are listed below and explained further in the sections below. Azure Blobs (objects/media) Azure Data Lake Storage (gen2) Azure Files (File Server) Azure Queues Azure Tables Azure Cosmos DB […]

Azure Security

The following is from Azure Administrator Training lab for AZ-103 Some Azure Services related to Security, Privacy and Compliance.   Azure Firewall – enforce, log application and network connectivity. Inbound and oubound filtering rules. Azure Monitor loggin. Different than Web Application Firewall (WAF) which is part of Application Gateway – it does only inbound protection […]

Azure Resource Manager and ARM Templates

The following is from Azure Administrator Training lab for AZ-103 Resource Manager The infrastructure for your application is typically made up of manycomponents – maybe a virtual machine, storage account, and virtual network,or a web app, database, database server, and third-party services. You maynot see these components as separate entities, instead you see them as relatedand interdependent parts of a single entity. You want to deploy, manage, andmonitor them as a group. Azure Resource Manager enables you to work with the resources in yoursolution as a group. You can deploy, update, or delete all the resources foryour solution in a single, coordinated operation. You use a template fordeployment and that template can work for different environments such astesting, staging, and production. Resource Manager provides security,auditing, and tagging features to help you manage your resources afterdeployment. Consistent management layer Resource Manager provides a consistent management layer to perform tasksthrough Azure PowerShell, Azure CLI, Azure portal, REST API, and clientSDKs. All capabilities that are available in the Azure portal are alsoavailable through Azure PowerShell, Azure CLI, the Azure REST APIs, andclient SDKs. Functionality initially released through APIs will be representedin the portal within 180 days of initial release. Choose the tools and APIs that work best for you – they have the samecapability and provide consistent results. The following image shows how all the tools interact with the same AzureResource Manager API. The API passes requests to the Resource Managerservice, which authenticates and authorizes the requests. Resource Managerthen routes the requests to the appropriate resource providers. Benefits Resource Manager provides several benefits: You can deploy, manage, and monitor all the resources for your solutionas a group, rather than handling these resources individually. You can repeatedly deploy your solution throughout the developmentlifecycle and have confidence your resources are deployed in aconsistent state. You can manage your infrastructure through declarative templatesrather than scripts. You can define the dependencies between resources so they’re deployedin the correct order. You can apply access control to all services in your resource groupbecause Role-Based Access Control (RBAC) is natively integrated intothe management platform. You can apply tags to resources to logically organize all the resources inyour subscription. You can clarify your organization’s billing by viewing costs for a groupof resources sharing the same tag. Guidance The following suggestions help you take full advantage of Resource Managerwhen working with your solutions. Define and deploy your infrastructure through the declarative syntax inResource Manager templates, rather than through imperativecommands. Define all deployment and configuration steps in the template. Youshould have no manual steps for setting up your solution. Run imperative commands to manage your resources, such as to start orstop an app or machine. Arrange resources with the same lifecycle in a resource group. Use tagsfor all other organizing of resources.   Terminology If you’re new to Azure Resource Manager (ARM), there are some terms youmight not be familiar with. resource – A manageable item that is available through Azure. Some common resources are a virtual machine, storage account, web app, database, and virtual network, but there are many more. resource group – A container that holds related resources for an Azure solution. The resource group can include all the resources for the solution, or only those resources that you want to manage as a group. You decide how you want to allocate resources to resource groups based on what makes the most sense for your organization. resource provider – A service that supplies the resources you can deploy and manage through Resource Manager. Each resource provider offers operations for working with the resources that are deployed. Some common resource providers are Microsoft.Compute, which supplies the virtual machine resource, Microsoft.Storage, which supplies the storage account resource, and Microsoft.Web, which supplies resources related to web apps. ARM template – A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a resource group. It also defines the dependencies between the deployed resources. The template can be used to deploy the resources consistently and repeatedly. declarative syntax – Syntax that lets you state “Here is what I intend to create” without having to write the sequence of programming commands to create it. The Resource Manager template is an example of declarative syntax. In the file, you define the properties for the infrastructure to deploy to Azure. Resource providers Each resource provider offers a set of resources and operations for working with an Azure service. For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. This resource provider offers a resource type called vaults for creating the key vault. The name of a resource type is in the format: {resource-provider}/{resource-type}. For example, the key vault type is Microsoft.KeyVault/vaults. ✔️ Before getting started with deploying your resources, you should gain an understanding of the available resource providers. Knowing the names of resource providers and resources helps you define resources you want to deploy to Azure. Also, you need to know the valid locations and API versions for each resource type.   Resource Group Deployments Resources can be deployed to any new or existing resource group.Deployment of resources to a resource group becomes a job where you cantrack the template execution. If deployment fails, the output of the job can describe why the deployment failed. Whether the deployment is a single resource to a group or a template to a group, you can use the information to fix any errors and redeploy. Deployments are incremental; if a resource group contains two web apps and you decide to deploy a third, the existing web apps will not be removed. Currently, immutable deployments are not supported in a resource group. To implement an immutable deployment, you must create a new resource group. Resource Groups Resource Groups are at their simplest a logical collection of resources. There are a couple of small rules for resource groups. Resources can only exist in one resource group. Resource Groups cannot be renamed. Resource Groups can have resources of many different types […]

Azure Overview and App Service

Some general notes about the Azure cloud platform and services. Regions – geographical area with one or many datacenters Feature Availability – not all features available in every region Geography – discrete market area with one or more regions Availability Zones – physically separate locations within Region providing redundancy for that region Availability Sets – […]

AWS DAX Overview and Sample Application using Encryption At Rest

This is an overview with a sample application using AWS DAX – DynamoDB Accelerator. Further below is a sample application that uses DAX, DynamoDB and EC2 – all with encryption at rest. DAX is a fully managed, in-memory cache for DynamoDB. It reduces DynamoDB response times from milliseconds to microseconds. As with other AWS services, […]

Serverless Application using AWS Lambda, API Gateway and DynamoDB and NodeJS

This is small sample project that demonstrates a Serverless Application. It uses the following AWS Services: API Gateway Lambda DynamoDB The repository of this project can be found on github here: https://github.com/johnlee/habits   The application is used as a personal goal tracker. It stores daily attempts (with timestamps) and an overall score for the day. […]

AWS Account Management

The following are covered in this post: Billing Organizations Resource Groups Tagging Active Directory Integration   AWS Organizations AWS Organizations is an account management service that enables you to consolidate multiple AWS accounts into an organization that you create and centrally manage. It features consolidated billing. There is no additional charge for using Organizations. An […]

AWS CLI

The AWS Command Line Interface (AWS CLI) is an open source tool that enables you to interact with AWS services using commands in your command-line shell. The AWS CLI is available in two versions: Version 1.x – The generally available version of the AWS CLI that is suitable for use in production environments. Version 2.x – A […]

AWS Security and Monitoring

Topics covered in this post Shared Responsibility Model Risk and Compliance CloudWatch CloudTrail KMS Signature Version 4 Signing Process Trusted Advisor Config     AWS has split responsibilities between them and users. Shared Responsibilities Model describes what customers of AWS need to follow. Customers / Users are responsible for patching, antivirus etc. It is recommended […]

AWS SQS SWF SNS and Kinesis

Notes here on the following services SQS SWF SNS Elastic Transcoder Kinesis   SQS The oldest AWS service, first one to go public. Amazon Simple Queue Service (Amazon SQS) offers a secure, durable, and available hosted queue that lets you integrate and decouple distributed software systems and components. Amazon SQS offers common constructs such as dead-letter […]

AWS DevOps

Under a DevOps model, development and operations are no longer siloed. Sometimes, these two functions are merged into a single team where engineers work across the entire application lifecycle, from development and test to deployment to operations, and develop a range of skills not limited to a single function. Quality assurance and security teams may […]

AWS Lambda

AWS Lambda is a compute service that runs code without the developer having to manage the infrastructure which it runs on. The compute resources are automatically managed by AWS. The code is triggered to execute based on events, in other words the code runs on demand. AWS charges only for code execution time. AWS Lambda […]

AWS EC2

EC2 is the backbone of AWS. Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services (AWS) cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications faster. You can use Amazon EC2 to launch as many or as few […]

AWS Databases

This article covers database services in AWS Elasticache RDS / Aurora RedShift DynamoDB EMR / Hadoop Which database service to use OLTP vs OLAP Online Transaction Processing (OLTP) differs from OLAP Online Analytic Processing (OLAP) in terms of the types of queries you will run. OLTP is like an order placed in a shopping app. […]

AWS CloudFormation

AWS CloudFormation is a service that helps you model and set up your Amazon Web Services resources so that you can spend less time managing those resources and more time focusing on your applications that run in AWS. You create a template that describes all the AWS resources that you want (like Amazon EC2 instances […]

AWS Identity and Access Management (IAM)

AWS Identity and Access Management (IAM) is a web service that helps you securely control access to AWS resources. You use IAM to control who is authenticated (signed in) and authorized (has permissions) to use resources. IAM is universal, not regional. All accounts start with a root account, it has complete Admin access. New users […]

DNS, Route53, CloudFront, WAF

  DNS All computers on the internet, from your smart phone or laptop to the servers that serve content for massive retail websites, communicate with one another by using numbers. These numbers, known as IP addresses, are in one of the following formats: Internet Protocol version 4 (IPv4) format, such as 192.0.2.44 32 bits (8 […]

AWS VPC

Amazon Virtual Private Cloud (Amazon VPC) enables you to launch AWS resources into a virtual network that you’ve defined. This virtual network closely resembles a traditional network that you’d operate in your own data center, with the benefits of using the scalable infrastructure of AWS. The following are the key concepts for VPCs: A virtual […]

Relational vs Non-Relational Databases

Other notes here regarding types of databases and cloud providers for these types of databases. http://solidfish.com/types-of-databases/   History Relational theory Tuples = unordered set of attribute values (row and attribute of column in a table) Relation = collection of tuples and corresponding relations Constraints = enforce consistency; used to identify tuples and relationships between them […]

Cloud Services Overview

  Cloud Services Provide Availability Scalability / Dynamic adjust for current workload (up or out) Elasticity / Providing scalability automatically Agility / React quickly Disaster Recovery Fault Tolerance Latency Global Reach Security Predictive Cost   Things to consider for cost when using Cloud Economies of Scale – Cloud providers have far larger resources therefore able […]

AWS Cloud Services

Review of Amazon Web Services (AWS). Material taken from AWS Associate Certification Exam (v.2012) Compute (Elastic Computer Cloud / EC2) Amazone Machine Image EC2 Instance Store Volumes Elastic Batch Store (EBS) Databases on EC2 Auto Scaling Elastic Load Balancing (ELB) Networking Amazon VPC (Virtual Private Cloud) Security Groups Network Access Control Lists (ACL) Elastic Network […]