<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Concepts', 'Cloud Computing', 'Azure', and 'Platform Independence'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Concepts,Cloud+Computing,Azure,Platform+Independence&amp;orTags=0</link><description>Search results matching tags 'Concepts', 'Cloud Computing', 'Azure', and 'Platform Independence'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Windows Azure Security Review</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/08/02/windows-azure-security-review.aspx</link><pubDate>Tue, 02 Aug 2011 13:24:50 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:37432</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;em&gt;&lt;font color="#d19049"&gt;Current as of 08/01/2011 - Check the Resources listed below for more up-to-date information on this topic&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Background:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Security for any computing platform involves three primary areas:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font color="#ff0000"&gt;Principals&lt;/font&gt; (users or programmatic access to an asset or other program) &lt;/li&gt;    &lt;li&gt;&lt;font color="#ff0000"&gt;Securables&lt;/font&gt; (objects, data or programs that can be accessed) &lt;/li&gt;    &lt;li&gt;&lt;font color="#ff0000"&gt;Channels&lt;/font&gt; (methods of access by Principals to Securables) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;On-premise systems normally use a central system to control security. In a Windows operating system-based environment, this is &lt;a href="http://technet.microsoft.com/en-us/library/cc758436(WS.10).aspx" target="_blank"&gt;often accomplished with Active Directory&lt;/a&gt; or other systems that&amp;#160; provide sign-on and user identity information. While other networking security paradigms have different terminology, all involve the three areas defined above. &lt;/p&gt;  &lt;p&gt;In addition to the names and passwords for a user, Active Directory (like other security mechanisms) store other information about Principals - called &lt;em&gt;&lt;a href="http://claimsid.codeplex.com/" target="_blank"&gt;Claims&lt;/a&gt;&lt;/em&gt;. These claims can include any custom fields the provider allows. In many networks, these fields are not used heavily, because applications that eventually need to secure the assets they control are not always deployed on the same platforms everywhere. &lt;/p&gt;  &lt;p&gt;In a single environment, security is often quite simple. A Principal is created such as a user or group, and then the Principal is granted access to a Securable such as a a folder, database or other asset. Permissions or Rights (or both) combine to allow a particular Principal to read, write, delete or edit data, or to access or run a particular program.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/3324.Figure1_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure1" border="0" alt="Figure1" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/5140.Figure1_5F00_thumb.png" width="549" height="398" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 1 - On-premise security environment example&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The simplicity of this arrangement is due to a single, homogenous boundary. Even if more than one location is used, the Principals and Securables are grouped into a single logical boundary that is managed from one location. &lt;/p&gt;  &lt;p&gt;This background serves as the starting point for the Federating Security topic below.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Security Boundaries&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure is a series of resources - servers, data and service buses, in addition to other features. Developers write code, and the deploy that to the Azure environment. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/1665.Figure2a_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure2a" border="0" alt="Figure2a" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/3480.Figure2a_5F00_thumb.png" width="702" height="471" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 2 - Azure Components&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The code or data can be deployed to use one or more of the services. In other words, the &lt;a href="http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/12/how-to-combine-worker-and-web-role-in.html" target="_blank"&gt;Web Role in Windows Azure might host a simple website&lt;/a&gt;, and no other component need be used. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/4073.Figure2_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure2" border="0" alt="Figure2" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/1258.Figure2_5F00_thumb.png" width="737" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 3 - Simple Azure Web Role Application - only one feature used&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Or, &lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/02/22/windows-azure-use-case-hybrid-applications.aspx" target="_blank"&gt;a complex mix of Web, Worker and Data Services, along with a Service Bus, RDBS and even on-site systems&lt;/a&gt; can be grouped into a much larger program. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/6136.Figure4_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure4" border="0" alt="Figure4" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/4863.Figure4_5F00_thumb.png" width="735" height="456" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 4 - Complex Windows and SQL Azure Application With Multiple Interactions&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;For a more basic introduction to Windows and SQL Azure, see this link: &lt;a href="http://channel9.msdn.com/Events/TechEd/Europe/2010/COS322"&gt;http://channel9.msdn.com/Events/TechEd/Europe/2010/COS322&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Windows Azure, like any web-based property, has three general layers of security:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;font color="#ff0000"&gt;Physical Access&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#ff0000"&gt;Operating Environment (Including the Operating System itself)&lt;/font&gt; &lt;/li&gt;    &lt;li&gt;&lt;font color="#ff0000"&gt;Data and Programmatic Security&lt;/font&gt; &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Each of these layers have additional layers within themselves, and this forms the basis of a secure experience for the end user or program. Some of these layers are the responsibility of Microsoft; others are the responsibility of the architect and developer; others are a joint or shared responsibility of both Microsoft and the client.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;Layer One: Physical Access&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;The first layer of security within a web property such as Windows or SQL Azure is a secure facility. the following data points are important to understand for the worldwide facilities that host Windows and SQL Azure:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Microsoft Global Foundation Services (GFS) is responsible for the physical security of the datacenters located worldwide for Windows and SQL Azure. Information on Microsoft datacenters can be found here:&amp;#160; &lt;a href="http://www.globalfoundationservices.com/"&gt;http://www.globalfoundationservices.com/&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;The address and exact locations facilities are not commonly documented for security reasons. &lt;/li&gt;    &lt;li&gt;Microsoft runs it’s own data centers and does not contract this function out. &lt;/li&gt;    &lt;li&gt;The GFS controlled facilities hold an ISO/IEC 27001:2005 certification, and are audited to SAS level II. &lt;/li&gt;    &lt;li&gt;Standard secure operations protocols are in place, including least-privilege access. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;Layer Two: Operating Environment&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure and SQL Azure do not currently hold certifications. Microsoft does not comment on the security certifications being pursued for Windows or SQL Azure. That being said, the Windows Azure environment is based on a modified Windows 2008 R2 Enterprise environment, developed using the Trustworthy Computing Initiative (TCI). &lt;/p&gt;  &lt;p&gt;The system controlling the host machines and their guest environments that ultimately hold the Web and Worker Roles within Windows Azure is called the Fabric - not to be confused with the Application Fabric feature. The Fabric is not accessible by client code - it controls the inner workings of Windows Azure, including Load-balancing, system restarts, maintenance and monitoring. &lt;/p&gt;  &lt;p&gt;Within the host machines that house the Web and Worker Roles, special networking constructs broker all conversations between Virtual Machines. Virtual Machines - even ones configured to communicate with each other - move through this network. Direct-machine to machine communication is not allowed, protecting one application from another or one data construct from another.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/8015.Figure5_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure5" border="0" alt="Figure5" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/8182.Figure5_5F00_thumb.png" width="720" height="351" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 5 - Windows Azure Fabric&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Windows and SQL Azure support only TCP-based communications. Ports commonly used are:&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;80 - Default public port used for Web Roles - can be enabled/disabled per configuration &lt;/li&gt;    &lt;li&gt;443 - Default secure port used for Web roles - &lt;a href="http://msdn.microsoft.com/en-us/gg271302" target="_blank"&gt;can be enabled/disabled per configuration&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;9350-9353 - These ports are used by the Windows Azure AppFabric service bus bindings. Refer to &lt;a href="http://msdn.microsoft.com/en-us/library/ee732535.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee732535.aspx&lt;/a&gt; for more details &lt;/li&gt;    &lt;li&gt;1433 - SQL Azure &lt;/li&gt;    &lt;li&gt;3389 - This port is used for RDP access to VM-based roles, only if enabled &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#0000ff"&gt;Layer Three: Data and Programmatic Security&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;All internal access through use of keys only. Without the proper key, code or data will not transfer. Storage Accounts have individual keys, so in this manner different security layers may be applied not only programmatically but at the account layer. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/6840.Figure6_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure6" border="0" alt="Figure6" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/4370.Figure6_5F00_thumb.png" width="703" height="290" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 6 - Windows Azure communications between components&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Calls to Windows Azure are made using standard SOAP, XML or REST-based protocols. The communications channel can be encrypted between the client and Windows Azure or allow it to remain unencrypted based on security needs. &lt;/p&gt;  &lt;p&gt;SQL Azure uses the standard SQL Server Tabular Data Stream (TDS) protocol, but only allows encrypted communications.&lt;/p&gt;  &lt;p&gt;Data is unencrypted within Windows Azure Blob or Table Storage - but is only accessible via the key for a storage account. &lt;a href="http://blogs.msdn.com/b/plankytronixx/archive/2010/10/23/crypto-primer-understanding-encryption-public-private-key-signatures-and-certificates.aspx" target="_blank"&gt;Data can be encrypted client-side and stored in Windows Azure in an encrypted fashion&lt;/a&gt;. Microsoft does not inspect internal data for validity or encryption enforcement.&amp;#160; The key is that the data is client-side encrypted and decrypted.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/8203.Figure7_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure7" border="0" alt="Figure7" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/4466.Figure7_5F00_thumb.png" width="702" height="307" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 7 - Example data at rest encryption scenario &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Alternatively, a hybrid solution can store sensitive data locally and non-sensitive data in Azure Storage. The data can be coalesced at the client level such that the data is never transferred over any channel not owned or controlled by the organization.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Federating Security:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the case of a single security boundary for Windows Azure, multiple security options are available. Users can be anonymously authorized, such as in the case of a public website for advertisement or informational purposes. &lt;/p&gt;  &lt;p&gt;Another option is to create an Internet Information Services (IIS) Internal Security Store. This is not a best-practice (although still possible) approach since the Fabric services within Windows Azure may recycle an instance and the session may sever between a given role and a client. Architecting stateless applications is a preferred approach.&lt;/p&gt;  &lt;p&gt;Using Claims-Based Authentication is a better solution. In this approach, the Principal is authenticated through a trusted party, such as Active Directory, OpenID, OpenAuthentication, or LiveID. Many web-properties use these methods, such as Microsoft, Google, Yahoo and Facebook to name a few. After authenticating with one of these services, the client is issued Claims using the WS-Federation (WS-Fed) or Security Assertion Markup Language (SAML)&amp;#160; that are passed to Windows Azure. At no time does Windows Azure store, transfer or interrogate the Principal’s security token. Claims can be anything from a group or role membership to location or any other settable attribute. Assets are then secured allowing only the Claim, without regard to the user’s location or access method. In this fashion a single security paradigm covers the Securables, with the Principals being controlled in any number of other mechanisms. This allows single-sign-on and/or federated security access from multiple providers. &lt;/p&gt;  &lt;p&gt;The simplest mechanism for building this environment is the Access Control Services (ACS) feature found in the Windows Azure Application Fabric component. It is a federated authorization management service that simplifies user access authorization across organizations and ID providers and performs claims transformation to map identities with access levels.&lt;/p&gt;  &lt;p&gt;ACS can:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Create and manage scopes such as URLs &lt;/li&gt;    &lt;li&gt;Create and manage claim types &lt;/li&gt;    &lt;li&gt;Create and manage signing and encryption keys &lt;/li&gt;    &lt;li&gt;Create and manage rules within an application scope &lt;/li&gt;    &lt;li&gt;Chain claims rules &lt;/li&gt;    &lt;li&gt;Manage permissions on scopes or perform delegation &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/2728.Figure8_5F00_2.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="Figure8" border="0" alt="Figure8" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/5852.Figure8_5F00_thumb.png" width="693" height="410" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#008000"&gt;Figure 8 - Federated Security Example &lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Full information on the Access Control Service is available at this link:&amp;#160; &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide.aspx?wa=wsignin1.0"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;http://social.technet.microsoft.com/wiki/contents/articles/windows-identity-foundation-wif-and-azure-appfabric-access-control-service-acs-survival-guide.aspx?wa=wsignin1.0&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Since the Web and Worker Roles within Windows Azure are designed to be stateless, Microsoft created a Certification Store within the Management area to hold Certificates that can be called from within code. An example of using the Certification Store is here: &lt;a href="http://blogs.msdn.com/b/jnak/archive/2010/01/29/installing-certificates-in-windows-azure-vms.aspx"&gt;http://blogs.msdn.com/b/jnak/archive/2010/01/29/installing-certificates-in-windows-azure-vms.aspx&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Additional Resources:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="color:#1f497d;font-size:10pt;"&gt;&lt;font face="Calibri"&gt;Official, authoritative security resource list: &lt;a href="http://msdn.microsoft.com/en-us/library/ff934690.aspx"&gt;&lt;font face="Arial"&gt;&lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff934690.aspxTechnical"&gt;http://msdn.microsoft.com/en-us/library/ff934690.aspx&lt;/a&gt;&lt;/a&gt;         &lt;br /&gt;&lt;/a&gt;&lt;/font&gt;&lt;span style="color:#1f497d;font-size:10pt;"&gt;&lt;font face="Calibri"&gt;Technical&lt;/font&gt; Overview of the Security Features in the Windows Azure Platform: &lt;/span&gt;&lt;a href="http://www.microsoft.com/online/legal/?langid=en-us&amp;amp;docid=11"&gt;&lt;u&gt;&lt;font color="#0000ff" face="Calibri"&gt;http://www.microsoft.com/online/legal/?langid=en-us&amp;amp;docid=11&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;.        &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="color:#1f497d;font-size:10pt;"&gt;&lt;font face="Calibri"&gt;Windows Azure Security Overview: &lt;/font&gt;&lt;a href="http://www.globalfoundationservices.com/security/documents/WindowsAzureSecurityOverview1_0Aug2010.pdf"&gt;&lt;u&gt;&lt;font color="#0000ff" face="Calibri"&gt;http://www.globalfoundationservices.com/security/documents/WindowsAzureSecurityOverview1_0Aug2010.pdf&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#1f497d;font-size:10pt;"&gt;&lt;font face="Calibri"&gt;Windows Azure Privacy: &lt;/font&gt;&lt;a href="http://www.microsoft.com/online/legal/?langid=en-us&amp;amp;docid=11"&gt;&lt;u&gt;&lt;font color="#0000ff" face="Calibri"&gt;http://www.microsoft.com/online/legal/?langid=en-us&amp;amp;docid=11&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/span&gt;&lt;span style="color:#1f497d;font-size:10pt;"&gt;&lt;font face="Calibri"&gt;Securing Microsoft Cloud Infrastructure: &lt;/font&gt;&lt;a href="http://www.globalfoundationservices.com/security/documents/SecuringtheMSCloudMay09.pdf"&gt;&lt;u&gt;&lt;font color="#0000ff" face="Calibri"&gt;http://www.globalfoundationservices.com/security/documents/SecuringtheMSCloudMay09.pdf&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;.        &lt;br /&gt;&lt;/font&gt;&lt;/span&gt;A list of other security resources is here: &lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2010/12/07/windows-azure-learning-plan-security.aspx"&gt;http://blogs.msdn.com/b/buckwoody/archive/2010/12/07/windows-azure-learning-plan-security.aspx&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;font color="#0000ff" size="1"&gt;&lt;em&gt;Image Attribution: David Pallmann: &lt;/em&gt;&lt;/font&gt;&lt;a href="http://davidpallmann.blogspot.com/2011/07/windows-azure-design-patterns-part-1.html"&gt;&lt;font color="#0000ff" size="1"&gt;&lt;em&gt;http://davidpallmann.blogspot.com/2011/07/windows-azure-design-patterns-part-1.html&lt;/em&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>SQL Azure Use Case: Shared Storage Application</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/04/26/sql-azure-use-case-shared-storage-application.aspx</link><pubDate>Tue, 26 Apr 2011 13:33:50 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:35207</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;span style="font-size:small;"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt; &lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Description:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;On-premise data will be a part of computing for quite some time – perhaps permanently. Bandwidth requirements, security, or even financial considerations for large data sets often dictate that relational (on non-relational) systems will be maintained locally in many organizations, especially in enterprise computing. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;But distributed data systems are useful in many situations. Organizations may wish to store a portion of data off-site, either for sharing the data with other applications (including web-based applications) or as a supplement to a High-Availability and Disaster Recovery (HADR) strategy.&lt;/span&gt;&lt;/p&gt; &lt;span style="font-size:small;"&gt;   &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Implementation:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;SQL Azure can be used to add an additional option to an HADR strategy by copying off portions (or all) of an on-premise database system.&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/3386.sql_2D00_aHADR_5F00_2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="sql-aHADR" border="0" alt="sql-aHADR" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/4265.sql_2D00_aHADR_5F00_thumb.png" width="298" height="181" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;In this arrangement, on-premise systems remain as they are. Data is replicated using many technologies, such as SQL Server Integration Services (SSIS), scripts, or Microsoft’s Sync Framework to a SQL Azure database. This data can be kept “cold”, meaning that a manual process is required to bring the data back, or as a “warm” standby using connection string management in the application.&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;Recently we architected a solution where a company kept a rolling two-week window of data replicated to SQL Azure using the &lt;a href="http://msdn.microsoft.com/en-us/sync/default.aspx" target="_blank"&gt;Sync Framework&lt;/a&gt;. The application, a compiled EXE running on user’s systems, had a “switch connections” button, that allowed the users to take a laptop to another location, select that option, and continue working from anywhere they had Internet connectivity. This required forethought and planning, and did not replace their primary HADR systems, but it did allow them to continue operations in the case of a severe outage at multiple sites. Since they are an emergency services provider, this gave them the highest redundancy.&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;Another option is to amalgamate data from disparate sources. &lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6320.sql_2D00_aHyb_5F00_2.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="sql-aHyb" border="0" alt="sql-aHyb" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2625.sql_2D00_aHyb_5F00_thumb.png" width="342" height="134" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;In this arrangement, two or more data services (one of which is SQL Azure) are accessed by a single program. The program queries each system independently, and using LINQ a single query can work across all of the data, assuming there is some sort of natural or artificial “key” that can join the data sets together. The user programs simply view this single data set as a single data source, unaware of the underlying data sets. This allows great flexibility and agility in the downstream program. The upstream data sources can change as long as the elements are kept consistent.&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style="font-size:small;"&gt;There are performance and security implications to amalgamated data systems, but if architected carefully they provide multiple benefits. A few of of these are that other systems can access the individual data sources, reporting is simplified and standardized, and multiple copies of data are eliminated.&lt;/span&gt;&lt;/p&gt;   &lt;span style="font-size:small;"&gt;     &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Resources:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style="font-size:small;"&gt;You can read more about the Sync Framework and SQL Azure here: &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/sync-framework-sql-server-to-sql-azure-synchronization.aspx"&gt;http://social.technet.microsoft.com/wiki/contents/articles/sync-framework-sql-server-to-sql-azure-synchronization.aspx&lt;/a&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;      &lt;p&gt;&lt;span style="font-size:small;"&gt;If you are new to LINQ, you can find more resources on it here: &lt;a href="http://msdn.microsoft.com/en-us/library/bb308959.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb308959.aspx&lt;/a&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;   &lt;/span&gt;&lt;/span&gt;</description></item></channel></rss>