- [Instructor] Public cloud services
come in a variety of different forms.
Let's take a look at the three tiers
of public cloud computing,
software as a service,
infrastructure as a service,
and platform as a service.
In a Software as a Service model,
the public cloud provider
delivers an entire application to its customers.
The customers don't need to worry
about processing, storage, networking,
or any of the infrastructure details of that cloud service.
The vendor writes the application, configures the servers,
and basically gets everything running for customers
who then simply use the service.
Very often these services are accessed
through a standard web browser
so very little if any configuration
is required on the customer's end.
Common examples of software as a service applications
include email delivered by Google apps
or Microsoft Office 365
and storage services that facilitate collaboration
and synchronization across devices such as Box and Dropbox.
SaaS applications can also be very specialized
such as credit card processing services
and travel and expense reporting management.
Customers of Infrastructure as a Service vendors
purchase basic computing resources from vendors
and piece them together to create customized IT solutions.
For example, infrastructure as a service vendors
might provide compute capacity, data storage,
and other basic infrastructure building blocks.
The three major vendors
in the infrastructure as a service space
are Amazon Web Services, Microsoft Azure,
and Google Compute.
Let's take a look at how simple it is to create a server
in an infrastructure as a service environment.
I'm logged in to the AWS console
and want to create a new Windows Server.
The first thing I do is go to the EC2 service,
that stands for Elastic Compute Cloud,
and it's Amazon's infrastructure as a service
virtual instance service.
I'm going to go here and click on running instances.
Then I'm going to click the launch instance button.
And I want to create a Windows Server
so I'm going to scroll down
and look for Microsoft Windows Server, select that.
Then I can go ahead and pick the size of the server
I'd like to start.
I'm going to take an m4 extra large server
and you can see here that has four virtual CPUs
and 16 gigabytes of memory.
Then I can go ahead and click review and launch.
I see the details here ready to go.
I click the launch button.
I'm asked to choose the key that I would like to use
to access the server later.
I click launch instances
and my instance is now getting ready to start.
In about two minutes from now,
they'll be a server running in Amazon Web Services
that I can access.
That's all there is to it.
I can connect to the server over RDP
and begin configuring whatever services I like.
I didn't need to think about hardware, networking,
or other issues.
The vendor took care of all of that for me.
I also didn't have to order any equipment
and wait for it to arrive.
I had a server up and running in seconds instead of weeks.
In the final tier of public cloud computing,
Platform as a Service,
vendors provide customers with a platform
where they can run their own application code
without worrying about server configuration.
This is the middle ground
between infrastructure and software as a service.
I don't need to worry about managing servers,
but I'm still running my own code.
Let's go ahead and take a look at the AWS Lambda service,
an example of a platform as a service environment.
I go ahead and click on Lambda in the AWS dashboard,
then click create a Lambda function.
I'm going to go ahead
and pick one of these blueprinted functions here,
the Lambda Canary.
I'm going to go ahead and just skip the scheduling,
take the default values there,
and then I'm able to configure my function.
I can go ahead and give this function a name, myCanary,
choose my programming language,
in this case I'm going to use Python,
and then there's some example code down here
which I can go ahead and edit any way I like.
Once I finished editing my code,
I can then save it to the AWS servers
and it will run in response to whatever events
or on whatever schedule I configure it to run on.
That's platform as a service.
Security professionals need to think about security
much differently in a cloud computing model.
The shared responsibility approach
requires that both vendors and customers
take responsibility for different elements of security.
In an infrastructure as a service approach,
the vendor is responsible for managing the security
of their hardware and data center.
Customers configure the operating system,
applications, and data
so securing those elements
is primarily a customer responsibility.
In a platform as a service approach,
the customer still has data and application responsibility,
but does not directly interact with the operating system
so that responsibility shifts to the vendor.
And finally in a software as a service approach,
the vendor manages almost everything
and the only responsibility that the customer has
is knowing what data is stored in the service
and applying appropriate access controls.
Understanding the shared responsibility model
is a critical responsibility for security professionals
working in a public cloud environment.