<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AWS Archives | Cloudar</title>
	<atom:link href="https://cloudar.be/tag/aws/feed/" rel="self" type="application/rss+xml" />
	<link>https://cloudar.be/tag/aws/</link>
	<description>100% Focus On AWS // 100% Customer Obsession</description>
	<lastBuildDate>Mon, 26 Jan 2026 09:50:59 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>The Hidden Cost of Convenience</title>
		<link>https://cloudar.be/awsblog/the-hidden-cost-of-convenience/</link>
		
		<dc:creator><![CDATA[Tom De Blende]]></dc:creator>
		<pubDate>Fri, 17 Oct 2025 11:23:39 +0000</pubDate>
				<category><![CDATA[MSP]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Managed Services]]></category>
		<guid isPermaLink="false">https://cloudar.be/?p=22650</guid>

					<description><![CDATA[<p>When choosing an AWS Managed Service Provider (MSP), most organizations focus on immediate benefits: faster deployment, expert guidance, and managed operations. But there&#8217;s a critical question that often gets overlooked until it&#8217;s too late: What happens when you want to leave? In the AWS ecosystem, MSPs take vastly different approaches when building customer-specific landing zones [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/the-hidden-cost-of-convenience/">The Hidden Cost of Convenience</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>When choosing an AWS Managed Service Provider (MSP), most organizations focus on immediate benefits: faster deployment, expert guidance, and managed operations. But there&#8217;s a critical question that often gets overlooked until it&#8217;s too late: <strong>What happens when you want to leave?</strong></p>
<p>In the AWS ecosystem, MSPs take vastly different approaches when building customer-specific landing zones and cloud management platforms. Some approaches preserve your freedom and flexibility. Others quietly build the walls of a gilded cage.</p>
<h1><strong>The Two Paths: Open Standards vs. Proprietary Platforms</strong></h1>
<h2><em><strong>The Open Approach: AWS Landing Zone Accelerator (LZA)</strong></em></h2>
<p>AWS Landing Zone Accelerator represents the gold standard for customer independence. As an open-source solution built on AWS CDK and CloudFormation, we deploy LZA to provide several critical advantages:</p>
<ul>
<li><strong>Complete transparency</strong>: All infrastructure is defined as code that you can read, understand, and modify</li>
<li><strong>No licensing fees</strong>: Open-source with no proprietary components</li>
<li><strong>AWS-maintained</strong>: Continuously updated by AWS to keep up to date with new services and features</li>
<li><strong>Industry standard configuration:</strong> With multiple documented sample configurations, you do not need to start from scratch.</li>
<li><strong>Full customer ownership</strong>: Deployed directly into your environment with complete access to the Infrastructure as Code</li>
<li><strong>Exit-ready from day one</strong>: If you ever want to manage it yourself or switch MSPs, you own your landing zone configuration</li>
</ul>
<p>At Cloudar, we&#8217;ve built an entire landing zone practice around LZA precisely because we believe customers should never feel trapped. Your AWS foundation should be an asset you own, not a chain that binds you to any single provider.</p>
<h2><em><strong>The Proprietary Approach: Custom Orchestration Platforms</strong></em></h2>
<p>In contrast, many MSPs have developed proprietary cloud management platforms that create significant lock-in. These are often marketed as &#8220;revolutionary&#8221; or &#8220;next-generation&#8221; platforms that promise to make cloud management easier with &#8220;just a few simple clicks&#8221; or web-based portals that abstract away complexity.</p>
<p>The convenience is real. The long-term cost is hidden.</p>
<p>Here&#8217;s what proprietary platforms typically involve:</p>
<ul>
<li><strong>Black box deployment</strong>: Resources are created through proprietary tooling that abstracts away the underlying infrastructure</li>
<li><strong>Dependency on custom APIs</strong>: Your operations become dependent on the MSP&#8217;s platform rather than native AWS tools</li>
<li><strong>Limited portability</strong>: Moving to another MSP or bringing management in-house requires re-platforming</li>
<li><strong>Knowledge gap</strong>: Your team never develops deep expertise in AWS native tools because they&#8217;re shielded by the abstraction layer</li>
<li><strong>Commercial leverage</strong>: The MSP knows that switching costs are high, affecting pricing negotiations and service quality over time</li>
</ul>
<h1><strong>The Lock-in Mechanisms You Need to Watch For</strong></h1>
<ol>
<li><strong> Custom Landing Zones Without Source Code Access</strong></li>
</ol>
<p>Some MSPs deploy your resources using &#8220;their&#8221; landing zone—a pre-configured multi-account setup built with proprietary Infrastructure as Code that remains their intellectual property. When you want to leave, you inherit an AWS environment you don&#8217;t fully understand, configured by tools you can&#8217;t access.</p>
<p><strong>The Cloudar difference</strong>: We can deploy LZA directly into your AWS accounts. Every CloudFormation stack, every configuration file, every security baseline—you have access to it all.</p>
<ol start="2">
<li><strong> Web-Based Orchestrators That Become Operational Chokepoints</strong></li>
</ol>
<p>Fancy web portals that let you &#8220;deploy with one click&#8221; sound appealing. Until you realize that every operational change must flow through the MSP&#8217;s platform. Want to modify a VPC? You&#8217;re dependent on their UI. Need to adjust security groups? Better hope their platform supports your use case.</p>
<p>These orchestrators create <strong>operational lock-in</strong>: You can&#8217;t effectively operate your AWS environment without the MSP&#8217;s tooling. You&#8217;ve traded AWS complexity for MSP dependency.</p>
<ol start="3">
<li><strong> &#8220;Simplified&#8221; Interfaces That Hide AWS Reality</strong></li>
</ol>
<p>Abstraction layers that promise to &#8220;make AWS easy&#8221; can create a dangerous gap between what you think you&#8217;re deploying and what&#8217;s actually running in your account. When problems arise—and they always do—you discover that your team doesn&#8217;t understand the actual AWS infrastructure because they&#8217;ve only interacted with it through the MSP&#8217;s simplified interface.</p>
<h1><strong>The Real-World Impact of Lock-in</strong></h1>
<p><strong>Scenario 1: The Price Increase</strong></p>
<p>Your MSP announces a 30% price increase. With an LZA you own and open standards, you have options: negotiate from a position of strength, bring management in-house, or transition to another MSP in months. With a proprietary platform, you&#8217;re looking at risky and arduous re-platforming work—and your MSP knows it.</p>
<p><strong>Scenario 2: The Service Quality Decline</strong></p>
<p>Your MSP gets acquired. The new parent company shifts focus, key engineers leave, and service quality drops. With an open approach, you can transition smoothly. With lock-in, you&#8217;re stuck enduring declining service while planning an expensive migration.</p>
<p><strong>Scenario 3: The Strategic Pivot</strong></p>
<p>Your company wants to build internal cloud expertise and eventually self-manage. With LZA, your team can learn standard AWS tools and practices from day one. When you&#8217;re ready to transition, you already have the skills and the code. With proprietary platforms, your team has learned the MSP&#8217;s tools, not AWS—setting your in-house capability building back by years.</p>
<p><strong>Scenario 4: The Platform Limitation</strong></p>
<p>Your business needs evolve, and you need to implement a complex AWS architecture that isn&#8217;t supported by your MSP&#8217;s platform. You&#8217;re now in the worst position: paying for a platform that constrains you, unable to use native AWS capabilities, and facing the choice between living with limitations or undertaking an expensive re-platforming project.</p>
<h1><strong>How to Evaluate Your Current or Prospective MSP</strong></h1>
<p>Ask these critical questions:</p>
<ol>
<li><strong>&#8220;What landing zone solution do you use?&#8221;</strong>
<ul>
<li>Red flag: &#8220;Our proprietary solution&#8221; or vague answers. Subscription based landing zones (yes they exist!).</li>
<li>Green flag: &#8220;your own AWS Landing Zone Accelerator&#8221; or &#8220;a per-customer AWS Control Tower with Customizations for Control Tower&#8221;</li>
</ul>
</li>
<li><strong>&#8220;What happens to our infrastructure if we terminate the contract?&#8221;</strong>
<ul>
<li>Red flag: Vague answers about &#8220;transition planning&#8221; or &#8220;it depends&#8221;</li>
<li>Green flag: &#8220;You keep everything—we&#8217;ll help with knowledge transfer, and you&#8217;ll have all the code and documentation&#8221;</li>
</ul>
</li>
<li><strong>&#8220;Will our team learn AWS-native tools, or primarily your platform?&#8221;</strong>
<ul>
<li>Red flag: &#8220;Our platform abstracts AWS complexity away&#8221;</li>
<li>Green flag: &#8220;We teach AWS best practices and native tools&#8221;</li>
</ul>
</li>
</ol>
<h1><strong>The Cloudar Philosophy: Your Cloud, Your Terms</strong></h1>
<p>Here&#8217;s what that means in practice:</p>
<p><strong>Full LZA Implementation</strong></p>
<p>Every customer gets its own AWS Landing Zone Accelerator, deployed directly into their accounts with complete source code access to the LZA configuration. Deployments happen in your account, giving you end-to-end visibility on your Landing Zone.</p>
<p><strong>AWS-Native Tooling</strong></p>
<p>We use CloudFormation, CDK, AWS Config, Systems Manager—tools that work with or without us. If you hire another AWS expert or build an in-house team, they&#8217;ll recognize everything immediately.</p>
<p><strong>Comprehensive Documentation</strong></p>
<p>You can read about every configuration option today, in the documentation published by AWS. So while we pride ourselves in sharing our knowledge, you are not dependant on us to explain what is going on</p>
<p>Additionally, we write customer-specific documentation  in our Confluence – from architecture decisions to operational procedures.. If you decide to leave, we can provide you with an export of that information.</p>
<p><strong>Open Book Operations</strong></p>
<p>You have full Read Only access to your AWS environment —we&#8217;re partners, not gatekeepers. Want to check our work? Go ahead.</p>
<p><strong>Standard AWS Best Practices</strong></p>
<p>We follow AWS Well-Architected Framework principles and industry-standard patterns. No &#8220;special sauce&#8221; that only we understand.</p>
<p>We succeed by giving you excellent service so you want to stay, not by making it painful to leave.</p>
<p><strong>The Economics of Freedom</strong></p>
<p>Some argue that proprietary platforms are necessary to provide better service or lower costs. We disagree.</p>
<p><strong>Lower costs come from:</strong></p>
<ul>
<li>Automation that scales across customers (which we use)</li>
<li>Deep AWS expertise (which we have)</li>
<li>Efficient processes (which we&#8217;ve refined over years)</li>
</ul>
<p>Not from locking customers into proprietary platforms.</p>
<p><strong>Better service comes from:</strong></p>
<ul>
<li>Highly skilled engineers (which we continuously train)</li>
<li>Customer focus (which our retention rate proves)</li>
<li></li>
</ul>
<p>Not from proprietary abstraction layers.</p>
<p>We&#8217;ve proven that you can deliver excellent MSP services at competitive prices while keeping customers completely free. In fact, we believe customer freedom makes us <em>better</em>—we can&#8217;t coast on lock-in, so we must continuously earn our customers&#8217; business.</p>
<h1><strong>Making the Right Choice</strong></h1>
<p>Before signing with any MSP, ask yourself:</p>
<ul>
<li><strong>Do I understand what I&#8217;m getting into?</strong> Can you clearly explain how your infrastructure will be deployed and managed?</li>
<li><strong>What&#8217;s my exit strategy if things don&#8217;t work out?</strong> Is it measured in weeks, months, or years?</li>
<li><strong>Am I choosing this approach for the right reasons?</strong> Is convenience masking a lack of control?</li>
<li><strong>Do I retain full ownership?</strong> Of code, configurations, documentation, and knowledge?</li>
</ul>
<p><strong>Red Flags in MSP Sales Processes</strong></p>
<p>Be wary if you encounter:</p>
<ul>
<li><strong>Heavy emphasis on &#8220;simplicity&#8221; with little discussion of the underlying AWS architecture</strong></li>
<li><strong>Vague answers about exit strategies and transition processes</strong></li>
<li><strong>Marketing focused on proprietary platforms as the primary differentiator</strong></li>
<li><strong>Contracts that grant the MSP exclusive rights to infrastructure code</strong></li>
<li><strong>Lack of clarity about what you actually own vs. what you&#8217;re licensing</strong></li>
</ul>
<h1><strong>Conclusion: Freedom as a Feature</strong></h1>
<p>In the rush to cloud transformation, it&#8217;s easy to prioritize speed and convenience. And yes, a well-designed proprietary platform can deploy faster than custom LZA implementation—at least initially.</p>
<p>But cloud strategy isn&#8217;t measured in weeks. It&#8217;s measured in years and decades. The question isn&#8217;t &#8220;who can get me to cloud fastest?&#8221; It&#8217;s &#8220;who can help me build sustainable cloud capabilities that serve my business long-term?&#8221;</p>
<p>The MSP industry has a pattern: some providers build their business model around customer stickiness achieved through proprietary tooling. They create beautiful interfaces and slick demos that abstract away AWS complexity. Then, months or years later, customers realize they&#8217;ve traded AWS vendor lock-in for MSP vendor lock-in—often worse, because at least AWS is standardized.</p>
<p>At Cloudar, we reject this model fundamentally. We believe that <strong>customer freedom isn&#8217;t a bug to work around—it&#8217;s a feature to build for.</strong> We&#8217;re proud to be an AWS Premier MSP Partner that wins business through excellence, not lock-in.</p>
<p>Your cloud infrastructure is too important to be held hostage by convenient abstractions. You deserve an MSP that treats you as a partner who will grow and evolve, not a captive customer who might someday try to escape.</p>
<p>Choose partners who believe you should always have the keys to your own kingdom. Choose partners who succeed by being valuable, not by being necessary.</p>
<p>Choose freedom.</p>
<p>The post <a href="https://cloudar.be/awsblog/the-hidden-cost-of-convenience/">The Hidden Cost of Convenience</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sign in with your eID: Using AWS IAM Roles Anywhere with a SmartCard Reader</title>
		<link>https://cloudar.be/awsblog/sign-in-with-your-eid-using-aws-iam-roles-anywhere-with-a-smartcard-reader/</link>
		
		<dc:creator><![CDATA[Ben Bridts]]></dc:creator>
		<pubDate>Thu, 26 Jun 2025 07:53:14 +0000</pubDate>
				<category><![CDATA[Security & Compliance]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Managed Services]]></category>
		<category><![CDATA[MSP]]></category>
		<guid isPermaLink="false">https://cloudar.be/?p=22584</guid>

					<description><![CDATA[<p>Using temporary credentials to access resources, has long been a best practice and is usually straight-forward if the person or machine that is starting the action is already known in AWS (either by using IAM Identity Center, or because you are running inside the AWS Cloud). However, if you are running on a machine that [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/sign-in-with-your-eid-using-aws-iam-roles-anywhere-with-a-smartcard-reader/">Sign in with your eID: Using AWS IAM Roles Anywhere with a SmartCard Reader</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Using temporary credentials to access resources, <a href="https://docs.aws.amazon.com/wellarchitected/latest/framework/sec_identities_unique.html">has long been a best practice</a> and is usually straight-forward if the person or machine that is starting the action is already known in AWS (either by using IAM Identity Center, or because you are running inside the AWS Cloud). However, if you are running on a machine that exists outside of AWS you will need an extra component like AWS IAM Roles Anywhere to give you temporary credentials.</p>
<p>Interestingly, Roles Anywhere does not completely solve the problem of not needing to create long-lived credentials, instead it moves (and reduces) the problem from credential management (rotation) to certificate management (distribution).</p>
<p>Setting up a Certificate Authority (CA) that can create certificates can be done with AWS Private Certificate Authority, and there are some options out there to manage distribution (usually as part of a bigger Device Management solution), but wouldn&#8217;t it be nice if the government of Belgium would do that for us?</p>
<h1>The Belgian eID</h1>
<p>In Belgium every citizens gets an identity card. The government makes sure that these get distributed and renewed, and since 2005 they contain a chip that holds (among other things) a certificate that can be used for digital authentication. If we can tie this to Roles Anywhere, we don&#8217;t have to worry about certificate management ourselves.</p>
<p>This eID is the size of a bankcard and the chip can be interacted with using off the shelf smart card readers. Most information can be read without any additional authentication &#8211; if you have the correct middleware, but to sign something you need to enter a PIN code.</p>
<h2>The different certificates</h2>
<p>Every eID holds an &#8220;authentication certificate&#8221; that is tied to the owner of the eID and has been signed by the &#8220;Citizens CA&#8221;.  The Citizens CA&#8217;s certificate is in turn signed by the Belgium Root CA . The Root certificate is self-signed. If we trust the Belgium Root CA, we will be able to validate any authentication certificate. More information about this setup can be found at https://repository.eidpki.belgium.be/#/home</p>
<p>The authentication certificate has two pieces of information that are going to be useful to us:</p>
<ul>
<li>The Issuer, showing us that the certificate is indeed issued by the Citizen CA.</li>
<li>The Subject, containing the name and National Number (a number that uniquely points to one person) of the owner.</li>
</ul>
<h1>AWS IAM Roles Anywhere</h1>
<p>Roles Anywhere allows you to use a certificate and its private key to get temporary credentials. You can think of it as an AssumeRole call, but instead of starting from an Access Key, we start from a certificate.</p>
<p>There are a few components we need:</p>
<ul>
<li>Configuration in our AWS Account, to indicate which CA we trust, and which roles can be assumed by different Issuer and/or Subjects. This also includes the creation of IAM Roles.</li>
<li>Software on our computer to interact with the Card Reader so we can prove we have access to the eID and know its PIN.</li>
</ul>
<p>For our use case we are going to trust the Belgium Root CA, and create a Role that can be assumed with any certificate issued by the Citizen CA. We will than limit the permissions of that IAM Role, so it can only write to a unique prefix in S3.</p>
<p>We can do that because every component of the Subject in our certificate gets mapped to a principal tag on the role session. E.g. if the subject is &#8220;C=BE, SN=Doe, GN=John, serialNumber=70010112345, CN=John Doe (Authentication)&#8221;, we have the following principal tags, and we can use principal tags in any policy.</p>
<ul>
<li>x509Subject/C: BE</li>
<li>x509Subject/SN: Doe</li>
<li>x509Subject/GN: John</li>
<li>x509Subject/serialNumber: 70010112345</li>
<li>x509Subject/CN: John Doe (Authentication)</li>
</ul>
<h1>Putting it all together</h1>
<h2>In our AWS Account</h2>
<p>We will create the following resources in our AWS Account:</p>
<ul>
<li>An S3 Bucket</li>
<li>A trust anchor, configured to trust the Belgium Root CA certificate that is publicly available via https://crt.eidpki.belgium.be/eid/brca6.crt.  This way we can use any certificate created by the Root CA of any of its subordinate CAs (like the Citizen CA)</li>
<li>An IAM Role, where we configure the trust policy to only allow usage of the Role if:
<ul>
<li>The principal is the Roles Anywhere service (rolesanywhere.amazonaws.com)</li>
<li>The Issuer is Citizen CA (aws:PrincipalTag/x509Issuer/CN must equal &#8220;Citizen CA&#8221;)</li>
<li>The source is our trust anchor (aws:SourceArn equals the ARN of the Root CA trust anchor)</li>
</ul>
</li>
<li>An IAM Policy on this role that allows PutObject acces to all objects that start with the unique National Number (aws:PrincipalTag/x509Subject/serialNumber)</li>
<li>a (Roles Anywhere) profile that ties the trust anchor to the Role. We could configure more settings here, like a mapping of fields from the certificate or a session policy, but don&#8217;t need to.</li>
</ul>
<p>Of course we do not have to do this by hand, we create a CloudFormation template for this. It can be found in our sample repository: https://github.com/WeAreCloudar/cloudformation-samples/tree/main/templates/roles-anywhere-eid</p>
<h2>On our machine</h2>
<p>On our machine, we will need &#8211; besides the eID and its PIN (at least on macOS, where I tested this):</p>
<ul>
<li>a SmartCard Reader</li>
<li>the Roles Anywhere Credential Helper (<a href="https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html">downloadable from the AWS Website</a>)</li>
<li>The AWS CLI (or any other tool we want to use with our AWS Credentials)</li>
</ul>
<p>We also need a few pieces of information:</p>
<ul>
<li>The ARNs of the trust anchor, profile and role we created</li>
<li>Our own National Number and the name of the bucket (to test our policy)</li>
</ul>
<p>Ideally we&#8217;d be able to configure the credential helper to read any eID we insert, and this is possible if you install the Belgian eID Middleware using the following command.<br />
<code class="" data-line=""><br />
aws_signing_helper credential-process \<br />
</code><code class="" data-line=""> --trust-anchor-arn $trust_anchor_arn \<br />
--profile-arn $profile_arn \<br />
--role-arn $role_arn \<br />
--certificate &quot;pkcs11:model=Belgium%20eID;object=Authentication&quot; \<br />
--pkcs11-lib &#039;/Library/Belgium Identity Card/Pkcs11/beid-pkcs11.bundle/Contents/MacOS/libbeidpkcs11.dylib<br />
</code><br />
However <a href="https://github.com/aws/rolesanywhere-credential-helper/issues/58">because of an issue with the helper, this only works on macOS if you build the helper yourself from source</a>. Since we do not want to do that, we can plug in our eID and find and identifier using &#8220;aws_signing_helper read-certificate-data&#8221;. You should get something like<br />
<code class="" data-line=""><br />
Matching identities<br />
1) bf013dd57aa34f8f9d4e22ab89dd8eb2 &quot;SERIALNUMBER=70010112345,CN=John Doe (Authentication),C=BE,...&quot;<br />
2) 786f7572198a4a8a82ee7ef3f205d7be &quot;SERIALNUMBER=70010112345,CN=John Doe (Signature),C=BE,...&quot;<br />
</code></p>
<p>Copying everything between quotes, allows us to create a new file, selector.json that looks like this:</p>
<p><code class="" data-line=""><br />
[<br />
{<br />
&quot;Key&quot;: &quot;x509Subject&quot;,<br />
&quot;Value&quot;: &quot;SERIALNUMBER=70010112345,CN=John Doe (Authentication),C=BE,...&quot;<br />
}<br />
]<br />
</code><br />
and use that to select our specific certificate:</p>
<p><code class="" data-line="">aws_signing_helper credential-process \<br />
</code><code class="" data-line=""> --trust-anchor-arn $trust_anchor_arn \<br />
--profile-arn $profile_arn \<br />
--role-arn $role_arn \<br />
--cert-selector file://selector.json</code></p>
<p>Our smart card reader will now prompt us for a PIN. If we enter the right one, we get credentials as output:<br />
<code class="" data-line=""><br />
{&quot;Version&quot;:1,&quot;AccessKeyId&quot;:&quot;ASIA...&quot;,&quot;SecretAccessKey&quot;:&quot;COA...&quot;,&quot;SessionToken&quot;:&quot;IQoJ...&quot;,&quot;Expiration&quot;:&quot;2025-03-28T14:16:07Z&quot;}<br />
</code></p>
<p>We can put this command in our ~/.aws/config file, so the AWS CLI will execute it for us, but for testing purposes it&#8217;s slightly easier to use the &#8220;serve&#8221; option.  The AWS Documentation has a longer explanation about how you can use the credential-process: https://docs.aws.amazon.com/rolesanywhere/latest/userguide/credential-helper.html#credential-helper-examples</p>
<h2>Testing with s3</h2>
<p>In one terminal we can run a credential / metadata server that can be used by the AWS CLI:</p>
<p><code class="" data-line="">~$ aws_signing_helper serve -process \<br />
</code><code class="" data-line=""> --trust-anchor-arn $trust_anchor_arn \<br />
--profile-arn $profile_arn \<br />
--role-arn $role_arn \<br />
--cert-selector file://selector.json<br />
</code></p>
<p>This gives us<code class="" data-line=""><br />
2025/03/28 14:28:12 Local server started on port: 9911<br />
2025/03/28 14:28:12 Make it available to the sdk by running:<br />
2025/03/28 14:28:12 export AWS_EC2_METADATA_SERVICE_ENDPOINT=http://127.0.0.1:9911/</code></p>
<p>We can than use a second terminal to run:</p>
<p><code class="" data-line="">AWS_EC2_METADATA_SERVICE_ENDPOINT=http://127.0.0.1:9911/ aws s3 cp example_file s3://$bucket/serialNumber/70010112345/example_file</code></p>
<p>and get our file in s3:</p>
<p><code class="" data-line="">upload: example_file to s3://.../serialNumber/70010112345/example_file</code></p>
<h1>Conclusion</h1>
<p>This experiment shows that being able to use an external device withIAM Roles, is a very powerful feature, because it can remove a lot of tasks related to certificate and credential management. Being able to do this with something I had in my backpocket made it extra cool.</p>
<p>However, the Belgian eID is probably not the best way to go about this in a real scenario:</p>
<ul>
<li>I just gave everyone living in Belgium access to my S3 Bucket. I could use a more scoped-down trust policy, but I would eventually run into limitations of trust-policy size.</li>
<li>I also didn&#8217;t tackle Certificate Revocation Lists (CRL). Every time someone loses their wallet, I would need to invalidate certain certificates &#8211; this also runs into size limitations</li>
<li>I already have a good way to give users access to AWS Accounts, using Identity Center or Cognito.</li>
<li>The pkcs11 support on macOS seems limited, and I would have to install the middleware everywhere,</li>
</ul>
<p>This does not mean that Roles Anywhere is not a good solution for this kind of cases:</p>
<ul>
<li>If you are already putting certificates on machines (e.g using an MDM solution), AWS IAM Roles Anywhere is a great fit</li>
<li>Instead of relying on the Belgian Government you can buy an hardware key like a yubikey and use it as your certificate source. This is as secure as using the eID (only the machine with the key plugged in will be able to request credentials), and you would be limiting it to the exact serial number(s) in your trust policy anyway &#8211; making CRLs mostly moot.</li>
</ul>
<p>The post <a href="https://cloudar.be/awsblog/sign-in-with-your-eid-using-aws-iam-roles-anywhere-with-a-smartcard-reader/">Sign in with your eID: Using AWS IAM Roles Anywhere with a SmartCard Reader</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Why AWS NLB stickiness is not always sticky</title>
		<link>https://cloudar.be/awsblog/why-aws-nlb-stickiness-is-not-always-sticky/</link>
		
		<dc:creator><![CDATA[Rutger Beyen]]></dc:creator>
		<pubDate>Tue, 05 Oct 2021 14:32:48 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[NLB]]></category>
		<category><![CDATA[stickiness]]></category>
		<guid isPermaLink="false">https://www.cloudar.be/?p=19684</guid>

					<description><![CDATA[<p>Why AWS NLB stickiness is not always sticky We were recently working on an AWS setup which involved a Network LoadBalancer (NLB) with a TCP listener and a requirement for sticky sessions. As we were seeing some strange behavior which we couldn&#8217;t immediately explain and which might be linked to the session stickiness we decided [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/why-aws-nlb-stickiness-is-not-always-sticky/">Why AWS NLB stickiness is not always sticky</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Why AWS NLB stickiness is not always sticky</h1>
<p>We were recently working on an AWS setup which involved a Network LoadBalancer (NLB) with a TCP listener and a requirement for sticky sessions. As we were seeing some strange behavior which we couldn&#8217;t immediately explain and which might be linked to the session stickiness we decided to make a small test setup.</p>
<h2>The problem</h2>
<p>Unlike an ALB where session stickiness is accomplished with cookies, the NLB uses a built-in 5-tuple hash table in order to maintain stickiness across backend servers. We access the NLB through its DNS name, which actually returns the IPs of the two NLB endpoints in a round-robin fashion with a TTL of 60 seconds.</p>
<p>We were looking for an answer on the following question: if our end-user would resolve the DNS and pick the IP of the first NLB endpoint to start the connection, the session will be routed towards one of the backend servers. But after 60 seconds the client could potentially re-issue the DNS query and start its connection with the other NLB endpoint. How will the stickiness and cross-zone loadbalancing behave? Will our end-user connection be routed to the initial server again, even if that means crossing AZ boundaries?</p>
<h2>The situation</h2>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-19685" src="https://cloudar.be/wp-content/uploads/2021/10/nlb1-650x433.png" alt="" width="642" height="428" srcset="https://cloudar.be/wp-content/uploads/2021/10/nlb1-650x433.png 650w, https://cloudar.be/wp-content/uploads/2021/10/nlb1-325x217.png 325w" sizes="(max-width: 642px) 100vw, 642px" /></p>
<p>We started with a classical setup comprising of an NLB with an endpoint in each AZ and a Targetgroup having one instance as target in each AZ.</p>
<h3>Scenario #1</h3>
<ul>
<li>Cross-Zone loadbalancing: Disabled</li>
<li>TargetGroup Stickiness: Disabled</li>
</ul>
<p>How does it behave?</p>
<ol>
<li>Client connects to the IP of the first NLB node: the connection is redirected to the server in AZ 1.</li>
<li>Client connects to the IP of the second NLB node: the connection is redirect to the server in AZ 2.</li>
</ol>
<p>Since there is only one healthy target per AZ and cross-zone loadbalancing is not enabled, this situation results in &#8216;AZ-stickiness&#8217;: the traffic remains in the AZ in which it arrived. The setup relies on DNS to distribute client connections evenly across both NLB endpoints, but there is nothing to guarantee that a specific user connection is always directed to the same NLB endpoint, let alone to the same backend server.</p>
<h3>Scenario #2</h3>
<ul>
<li>Cross-Zone loadbalancing: Enabled</li>
<li>TargetGroup Stickiness: Disabled</li>
</ul>
<p>Allowing cross-zone loadbalancing and not requiring any stickness. This should give us complete randomness, shouldn&#8217;t it?</p>
<p>And so it does. We&#8217;re now completely randomized and hit every backend server, irrespective of our NLB endpoint &#8216;point of entry&#8217;. Works as expected.</p>
<h3><img decoding="async" class="alignnone size-medium wp-image-19686" src="https://cloudar.be/wp-content/uploads/2021/10/nlb2-650x433.png" alt="" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2021/10/nlb2-650x433.png 650w, https://cloudar.be/wp-content/uploads/2021/10/nlb2-325x217.png 325w" sizes="(max-width: 650px) 100vw, 650px" /></h3>
<h3>Scenario #3</h3>
<ul>
<li>Cross-Zone loadbalancing: Disabled</li>
<li>TargetGroup Stickiness: Enabled</li>
</ul>
<p>We&#8217;ve enabled stickiness on the targetgroup now, and disabled the cross-zone loadbalancing again. Let&#8217;s hope our client connection is now sticky to a specific backend server.</p>
<ol>
<li>Client connects to the IP of the first NLB node: the connection is redirected to the server in AZ 1.</li>
<li>Client connects to the IP of the second NLB node: the connection is redirect to the server in AZ 2.</li>
</ol>
<p>Ok wait, we&#8217;ve asked our TargetGroup to be sticky, but still our connection is balanced over both backend servers? What&#8217;s going on?</p>
<p><img decoding="async" class="alignnone size-medium wp-image-19687" src="https://cloudar.be/wp-content/uploads/2021/10/nlb4-650x433.png" alt="" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2021/10/nlb4-650x433.png 650w, https://cloudar.be/wp-content/uploads/2021/10/nlb4-325x217.png 325w" sizes="(max-width: 650px) 100vw, 650px" /></p>
<p>The fact that our NLB is not allowing cross-zone loadbalancing seems to prevent the connection from reaching the same backend every time. The connection enters via NLB endpoint 1 but stickiness has decided that the connection should go to server in AZ 2? Stickiness fails, the disabled cross-zone loadbalancing wins&#8230;</p>
<p>With only one healthy backend per AZ this behaves the same as not enabling stickiness at all. We&#8217;re pretty sure that with more than one backend per AZ the stickiness is maintained&#8230;within that AZ only. Interesting!</p>
<h3>Scenario #4</h3>
<ul>
<li>Cross-Zone loadbalancing: Enabled</li>
<li>TargetGroup Stickiness: Enabled</li>
</ul>
<p>Let&#8217;s solve this. We&#8217;ve enabled both cross-zone loadbalancing and targetgroup stickiness. We should hit the same backend server every time now.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-19688" src="https://cloudar.be/wp-content/uploads/2021/10/nlb3-650x433.png" alt="" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2021/10/nlb3-650x433.png 650w, https://cloudar.be/wp-content/uploads/2021/10/nlb3-325x217.png 325w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<p>And so it does. Only now we reach true stickiness and hit the same backend server every time, no matter how hard we try by entering via the loadbalancer node in the other AZ.</p>
<h2>The conclusion</h2>
<p>If you don&#8217;t allow cross-zone loadbalancing, then stickiness is only active within AZ boundaries. As DNS round-robin could direct a client to a different point of entry after the TTL has expired, strict stickiness is not guaranteed.</p>
<p>So if you really need stickiness to a specific backend target, you need to allow cross-zone loadbalancing (and live with the extra cost of inter-AZ traffic). Only now do the different loadbalancer nodes share the hash table of &#8220;client-to-target&#8221; stickiness.</p>
<p>&nbsp;</p>
<p>Kinda logic, though&#8230;</p>
<p>&nbsp;</p>
<p>PS: NLB idle timeout for TCP connections is 350 seconds. Once the timeout is reached or the session is terminated, the NLB will forget the stickiness and incoming packets will be considered as a new flow and could be loadbalanced to a new target.</p>
<p>The post <a href="https://cloudar.be/awsblog/why-aws-nlb-stickiness-is-not-always-sticky/">Why AWS NLB stickiness is not always sticky</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>10 random things you probably didn&#8217;t know about Cloudar</title>
		<link>https://cloudar.be/awsblog/10-random-things-you-might-not-have-known-about-cloudar/</link>
		
		<dc:creator><![CDATA[Bart Van Hecke]]></dc:creator>
		<pubDate>Thu, 20 Aug 2020 09:57:41 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://www.cloudar.be/?p=18041</guid>

					<description><![CDATA[<p>The post <a href="https://cloudar.be/awsblog/10-random-things-you-might-not-have-known-about-cloudar/">10 random things you probably didn&#8217;t know about Cloudar</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><section id="ut-section-69f2cf0a874d7" data-vc-full-width="true" data-vc-full-width-init="false" data-cursor-skin="global" class="vc_section ut-vc-160 vc_section-has-no-fill ut-section-69f2cf0a874e7"><div id="ut-row-69f2cf0acf2c6" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0acf2db" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae3985" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae3bd4 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae3bd4" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>1. The Summerbreeze Metal Festival</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>In August 2013, Senne Vaeyens en Bart Van Hecke attended the Summerbreeze festival in Dinkelsbühl, Germany. Being long-time friends and already active in the wonderful world of Information Technology for several years, they discussed the possibility of starting a company together. After a long night of heavy music and lots of beers, the foundation of Cloudar was laid…</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae43a4" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae4a51" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae4a5d" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae4f71" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae4fe5 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae4fe5" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>2. Cloudar started as a Cloud Broker</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>Cloudar was started as a Cloud Broker company, acting as a trusted advisor for customers and providing a single point of contact regardless of the cloud technology the customers were using. After evaluating this setup for a few months, Senne &amp; Bart noticed that real focus was missing. They decided that it would be better to become great at only one thing than to be mediocre at several. As Amazon Web Services (AWS) was already the preferred platform for several projects, it was decided that Cloudar would only focus on AWS and become a trustworthy AWS partner.</p>
<p>&nbsp;</p>
<p><em><strong>Fun fact</strong>: The name Cloudar originates from the combination of the word &#8220;Cloud&#8221; and &#8220;Radar&#8221;; When the company started as a cloud broker, we would be the &#8216;radar&#8217; for our customers to find the best cloud provider that would suit their needs. Nowadays Cloudar stands for &#8220;Cloud Architects&#8221;, but the radar remained in the company logo&#8230;</em></p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae532d" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae5864" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae586e" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae5cef" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae5d55 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae5d55" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>3. Cloudar joined the Cronos Group in October 2014</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>To maintain focus on AWS, it became clear that we needed to surround ourselves with experts in other areas of the IT spectrum. As the Cronos Group is an incubator that exists of multiple independent companies with specific expertise, the choice of joining this group was a no-brainer.</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae60b5" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae659d" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae65a6" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae6a66" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae6ace { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae6ace" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>4. First hire in January 2015</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>In January 2015, Ben Bridts joined the company and is up to present day the go-to AWS expert of the company. Ben has in-depth AWS knowledge, helps defining Cloudar’s technical strategy and is an official AWS Ambassador (<a href="https://www.ambassador-lounge.com/ambassadors/ben-bridts/">https://www.ambassador-lounge.com/ambassadors/ben-bridts/</a>). Hook him up if you have questions about AWS (@benbridts)</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae6df3" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae72b8" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae72c0" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae7757" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae77c2 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae77c2" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>5. In April 2015, Cloudar joins Xplore Group</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>The Cronos Group is divided into several clusters; some clusters specialize in ‘traditional IT services’, while others have a focus in entirely other areas. Xplore Group is one of these clusters and has a clear focus on E-commerce, Data Science, Cloud Native Development, IoT, Machine Learning, …</p>
<p>As Cloudar prefers to talk with the business directly, while maintaining a good relationship with developers as well, the Xplore Group cluster seemed a good fit.</p>
<p>Together with multiple Xplore Group companies, Cloudar is now able to execute large enterprise projects with a scope that extends the expertise of AWS.</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae7af1" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae7fe1" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae7fe9" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae846c" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae84e3 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae84e3" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>6. Some numbers (August 2020)</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<ul>
<li>Current headcount: 32 (and growing)</li>
<li>Customer base: &gt;100</li>
<li>Monthly AWS Spent: &gt; $1M</li>
<li>Total of AWS Certifications: &gt;100</li>
<li>AWS programs &amp; competencies:</li>
</ul>
<p style="padding-left: 40px;">&#8211; Premier Consulting Partner</p>
<p style="padding-left: 40px;">&#8211; Solution Provider</p>
<p style="padding-left: 40px;">&#8211; Public Sector Partner</p>
<p style="padding-left: 40px;">&#8211; Well-Architected Partner</p>
<p style="padding-left: 40px;">&#8211; Immersion Day Partner</p>
<p style="padding-left: 40px;">&#8211; Managed Service Provider Partner</p>
<p style="padding-left: 40px;">&#8211; Migration Competency</p>
<p style="padding-left: 40px;">&#8211; DevOps Competency</p>
<p style="padding-left: 40px;">&#8211; Government Competency</p>
<p style="padding-left: 40px;">&#8211; Lambda Service Delivery</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae88a3" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae8e14" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae8e1e" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae9286" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0ae92f4 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0ae92f4" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>7. Partnerships</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>It goes without saying that great things can only be achieved if you surround yourself with the right partners…</p>
<p>While AWS remains our focus, you need partners to be able to deliver the full picture to your customers. Some solid partnerships we established throughout the years are:</p>
<ul>
<li>CloudCheckr: Mainly used for cost optimization and providing best practices to our customers</li>
<li>VMware: to help us supporting VMC on AWS</li>
<li>Trend Micro: For compliance reasons and securing AWS environments</li>
<li>N2WS: for backup and disaster recovery purposes</li>
<li>Site 24&#215;7: for monitoring &amp; alerting</li>
<li>The Cronos Group &amp; Xplore Group: for delivering expertise in areas other than AWS</li>
</ul>

		</div>
	</div>

<div id="vc-sep-69f2cf0ae96b8" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0ae9b89" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0ae9b92" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0ae9ff0" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0aea05d { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0aea05d" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>8. Why would you engage us?</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>When you decide to work with us, you’ll be working with a team of AWS Certified Professionals that have the highest level of demonstrated expertise and skills using the AWS Cloud:</p>
<ul>
<li>We can do the heavy lifting for you</li>
<li>We’ll make sure you only pay what you need</li>
<li>We can lower the cost of your ‘migration bubble’</li>
<li>We can assist in accelerating your projects, so you’ll be able to reach your deadlines</li>
<li>We can educate your staff</li>
<li>We can take care of your AWS environment 24/7</li>
</ul>

		</div>
	</div>

<div id="vc-sep-69f2cf0aea398" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0aea8df" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0aea8e9" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0aead56" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0aeadc5 { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0aeadc5" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>9. CSF</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>We apply the “Common Sense Framework” (CSF) on a daily basis.</p>
<p>Although we are ISO/IEC 27001 certified for Information Security to comply with the highest security standards and combine several IT methodologies (ITIL, Agile, DevOps, Prince 2,…), the most important framework we use is CSF. CSF is and always will be the backbone of Cloudar. Every person, situation, customer or project is different, so we need to be able to adapt quickly and apply common sense wherever we can. Common sense enables us to be very flexible and allows us to anticipate very fast in every situation.</p>
<p>CSF is here to stay!</p>
<p>&nbsp;</p>
<p><strong><span style="color: #808080;"><em>Note: In the Flemish part of Belgium, CSF is also known as &#8220;Gezond Boerenverstand&#8221;</em></span></strong></p>

		</div>
	</div>

<div id="vc-sep-69f2cf0aeb0f7" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0aeb628" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0aeb632" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0aebab2" class="vc_column-inner " ><div class="wpb_wrapper"><style type="text/css">#ut_title_divider_69f2cf0aebb1d { letter-spacing: 0em; }</style><h3 id="ut_title_divider_69f2cf0aebb1d" class="bklyn-title-divider  bklyn-divider-style-4 bklyn-title-divider-left bklyn-title-divider-tablet-left bklyn-title-divider-mobile-left"  ><span>10. The future</span></h3>
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>Well, that’s a tricky one…</p>
<p>In this ever-changing world, who knows what the future might bring? It has been our goal from day one to become one of the leading AWS partners in the EMEA region, and I think we can say that we did a good job so far.</p>
<p>For the following years, we’ll keep on growing as a company, expand our customer base and explore new areas, just as we always did before. Now is not the time to lay back and think the journey is finished. In fact, I believe our journey has only begun; with so much opportunities in front of us, it&#8217;s time to ramp things up a gear!</p>
<p>To quote Mario Andretti; “If everything seems under control, you’re not going fast enough…”</p>

		</div>
	</div>

<div id="vc-sep-69f2cf0aebe3a" class="vc_separator wpb_content_element vc_separator_align_center vc_sep_width_100 vc_sep_pos_align_center vc_separator_no_text vc_sep_color_grey  wpb_content_element" ><span class="vc_sep_holder vc_sep_holder_l"><span  class="vc_sep_line"></span></span><span class="vc_sep_holder vc_sep_holder_r"><span  class="vc_sep_line"></span></span>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><a data-id="section-without-id" class="ut-vc-offset-anchor-bottom" name="section-without-id"></a></section><div class="vc_row-full-width vc_clearfix"></div>
</div><p>The post <a href="https://cloudar.be/awsblog/10-random-things-you-might-not-have-known-about-cloudar/">10 random things you probably didn&#8217;t know about Cloudar</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Let&#8217;s trash talk!</title>
		<link>https://cloudar.be/awsblog/lets-trash-talk/</link>
		
		<dc:creator><![CDATA[Michiel Vanderlinden]]></dc:creator>
		<pubDate>Mon, 23 Mar 2020 12:17:59 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[cloudformation]]></category>
		<category><![CDATA[cloudwatch]]></category>
		<category><![CDATA[Lambda]]></category>
		<category><![CDATA[SAM]]></category>
		<category><![CDATA[sns]]></category>
		<guid isPermaLink="false">https://www.cloudar.be/?p=16571</guid>

					<description><![CDATA[<p>Hi all, in this blogpost I will give a brief overview of how I used AWS to remind me to take out the trash. It’s a familiar scene: as you’re waking up or making your morning coffee, you hear the garbage truck roaring away outside when you suddenly realize your garbage bags are still rotting [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/lets-trash-talk/">Let&#8217;s trash talk!</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Hi all, in this blogpost I will give a brief overview of how I used AWS to remind me to take out the trash.</p>
<p>It’s a familiar scene: as you’re waking up or making your morning coffee, you hear the garbage truck roaring away outside when you suddenly realize your garbage bags are still rotting away in the garage. Do you run after the truck like a lunatic, even though it’s too late (of course I’ve never done this, but I’ve heard it’s a thing)? Or do you just let it go and let the garbage fester even longer? Either way, it’s a frustrating start to the day.</p>
<p>Luckily for me I live in the modern and very civilised province of Limburg of Belgium where the local government has made a website available with a downloadable calendar showing all dates the garbage truck comes along: so handy! They even provide the calendar in a number of digital formats, including iCal. I could just import this into my phone and set an alert on it, but where’s the fun in that? After some fiddling around or “reverse engineering” as they call it, I found out that the data for the calendar files was provided by an undocumented but publicly available API.</p>
<p>Being the sucker for coding up and fooling around with APIs that I am (and given my state of utter boredom while under full lockdown in Belgium) I decided to code up a project based on this API that would send me an SMS notification the evening before garbage collection. Because that’s my idea of fun. And that way I would be reminded to take out the trash on time and keep my garage clean.</p>
<p>Want to know this neat trick to save you from rubbish resentment? Read on!</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-16575" src="https://cloudar.be/wp-content/uploads/2020/03/1-650x433.png" alt="reverseengineering" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2020/03/1-650x433.png 650w, https://cloudar.be/wp-content/uploads/2020/03/1-1300x867.png 1300w, https://cloudar.be/wp-content/uploads/2020/03/1-325x217.png 325w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<p>So for this project I partly used the AWS SAM framework and set up a CodePipeline to deploy my code changes instantly on AWS (stay tuned for a future blogpost on this).</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-16578 size-thumbnail" src="https://cloudar.be/wp-content/uploads/2020/03/pipeline-325x217.png" alt="codepipeline" width="325" height="217" srcset="https://cloudar.be/wp-content/uploads/2020/03/pipeline-325x217.png 325w, https://cloudar.be/wp-content/uploads/2020/03/pipeline-650x433.png 650w" sizes="auto, (max-width: 325px) 100vw, 325px" /></p>
<p>First let’s code up the AWS SAM template file containing the necessary resources for this project.</p>
<p>The resources I used are:</p>
<ul>
<li>Type: AWS::Events::Rule<br />
A Cloudwatch event rule to invoke a lambda each evening around 8.</li>
<li>Type: AWS::Lambda::Permission<br />
To give the Cloudwatch event rule permissions to invoke the lambda.</li>
<li>Type: AWS::Logs::LogGroup<br />
A log group for the lambda logs.</li>
<li>Type: AWS::Serverless::Function<br />
The lambda that will run the show.</li>
<li>Type: AWS::IAM::Role<br />
An IAM role for the lambda to have the necessary rights like accessing SNS for the SMS notification.</li>
</ul>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-16579" src="https://cloudar.be/wp-content/uploads/2020/03/template-650x433.png" alt="template" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2020/03/template-650x433.png 650w, https://cloudar.be/wp-content/uploads/2020/03/template-325x217.png 325w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<p>Next we code up the lambda that will call the API and send us an SMS.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-16580" src="https://cloudar.be/wp-content/uploads/2020/03/code-650x433.png" alt="code" width="650" height="433" srcset="https://cloudar.be/wp-content/uploads/2020/03/code-650x433.png 650w, https://cloudar.be/wp-content/uploads/2020/03/code-1300x867.png 1300w, https://cloudar.be/wp-content/uploads/2020/03/code-325x217.png 325w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<p>The API provides event data for each month by just requesting the year and month in the url path like this ‘/2020-03’. So we can easily get the data for the current month and loop through its events, checking whether any are occurring the next morning. If so we receive an SMS notifying us (note that you can provide the number of your girlfriend here, but it’s not recommended as I have found out it isn’t that effective).</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-16581 size-thumbnail" src="https://cloudar.be/wp-content/uploads/2020/03/watch-325x217.jpg" alt="result" width="325" height="217" srcset="https://cloudar.be/wp-content/uploads/2020/03/watch-325x217.jpg 325w, https://cloudar.be/wp-content/uploads/2020/03/watch-650x433.jpg 650w, https://cloudar.be/wp-content/uploads/2020/03/watch-1300x867.jpg 1300w" sizes="auto, (max-width: 325px) 100vw, 325px" /></p>
<p>And that’s all folks!</p>
<p>&nbsp;</p>
<p>I’m aware that this trick is no rocket science, and that this isn’t even a full guide to get to the same result (leave a comment if you want some more details), but I thought it would be fun to share how I resolved one of life’s little problems using AWS.</p>
<p>As I’m moving toward two years of professional experience using the platform, I’m still amazed at how easily you can code some services together and create a working, scalable and highly available project in a matter of minutes or hours.</p>
<p>Hope you liked my trashy tale &#8211; keep your garages clean and your heads in the cloud!</p>
<p>The post <a href="https://cloudar.be/awsblog/lets-trash-talk/">Let&#8217;s trash talk!</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Validate ACM certificates in Cloudformation</title>
		<link>https://cloudar.be/awsblog/validate-acm-certificates-in-cloudformation/</link>
		
		<dc:creator><![CDATA[Michiel Vanderlinden]]></dc:creator>
		<pubDate>Wed, 08 Jan 2020 08:03:21 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[acm]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[automatically validate acm]]></category>
		<category><![CDATA[automation]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[cloudformation]]></category>
		<category><![CDATA[custom resource]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://www.cloudar.be/?p=16482</guid>

					<description><![CDATA[<p>Intro: We will use a custom resource written in Python that will be able to create ACM certificates with DNS validation. The custom resource will also automatically validate this certificate if the validation domain is managed by a Route53 hosted zone. We will also be able to specify an AWS region to create the certificate [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/validate-acm-certificates-in-cloudformation/">Validate ACM certificates in Cloudformation</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Intro:</h3>
<p>We will use a custom resource written in Python that will be able to create ACM certificates with DNS validation. The custom resource will also automatically validate this certificate if the validation domain is managed by a Route53 hosted zone. We will also be able to specify an AWS region to create the certificate in, this region is independent of the Cloudformation stack region which for example makes it possible to deploy a certificate in region us-east-1 (to use with cloudfront) while deploying the stack in region eu-west-1. The resource will also provide the certificate arn as an output parameter so it can be used by other resources in the stack. Lastly when you delete the custom resource it will cleanup all validation records and the certificate itself.</p>
<h3>Requirements:</h3>
<ul>
<li>Python3</li>
<li>Pip</li>
<li>Bash</li>
<li>Zip</li>
<li>An S3 bucket to deploy the custom resource package on</li>
<li>A hosted zone for the validation record</li>
</ul>
<h3>Implementation:</h3>
<p>Let&#8217;s get started by downloading all the required code from our <a href="https://github.com/WeAreCloudar/cloudar_acm_plus">GitHub repository.</a></p>
<h4>Step1: Uploading the custom resource package</h4>
<p>In this step we are going to prepare the custom resource package and upload it to an S3 bucket.</p>
<p>First we go into the custom resource directory.<br />
<code class="" data-line="">cd cloudar-acm-plus-custom-resource</code></p>
<p>Next we execute a script to install all required dependencies.<br />
<code class="" data-line="">sh install_dependencies</code></p>
<p>Now we are ready to create the package.<br />
<code class="" data-line="">sh pack_custom_resource</code></p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-16487 " src="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_package_commands.png" alt="package commands" width="595" height="378" srcset="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_package_commands.png 1120w, https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_package_commands-768x488.png 768w" sizes="auto, (max-width: 595px) 100vw, 595px" /></p>
<p>You will now find the zipfile &#8216;cloudar-acm-plus-custom-resource.zip&#8217; in &#8216;cloudar-acm-plus-custom-resource/packed&#8217;, upload this zip file to your S3 bucket.</p>
<h4>Step2: Creating a Cloudformation template</h4>
<p>Now we can create a Cloudformation template in which we use this custom resource to create an ACM certificate.<br />
You can use the template &#8216;cfn.yaml&#8217; as an example.</p>
<p>First create a Lambda resource as following<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-16492 " src="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_cfn_lambda.png" alt="auto validate lambda" width="520" height="475" srcset="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_cfn_lambda.png 1042w, https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_cfn_lambda-768x702.png 768w, https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_cfn_lambda-788x720.png 788w" sizes="auto, (max-width: 520px) 100vw, 520px" /></p>
<p>Use the name of your bucket for the property &#8216;S3Bucket&#8217; .</p>
<p>Next we create the custom resource.<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-16493 " src="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_cr.png" alt="auto validate cfn cr" width="454" height="287" srcset="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_cr.png 832w, https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_cr-768x486.png 768w" sizes="auto, (max-width: 454px) 100vw, 454px" /></p>
<p>We can set the following properties here:</p>
<ul>
<li>DomainName: (REQUIRED type:String) The domain name for the acm certificate.</li>
<li>AdditionalDomains: (OPTIONAL type:List) Additional domains for the acm certificate</li>
<li>ValidationDomain: (REQUIRED type:string) The domain name for the validation domain of the acm certificate</li>
<li>HostedZoneId: (REQUIRED type:string) The hosted zone id for the validation domain of the acm certificate</li>
<li>CertificateRegion: (REQUIRED type:string) The region to deploy the acm certificate in</li>
<li>IdempotencyToken: (REQUIRED type:string pattern: \w+) The idempotency token for the create call of the acm certificate doc: <a href="https://docs.aws.amazon.com/acm/latest/APIReference/API_RequestCertificate.html#ACM-RequestCertificate-request-IdempotencyToken" rel="nofollow">https://docs.aws.amazon.com/acm/latest/APIReference/API_RequestCertificate.html#ACM-RequestCertificate-request-IdempotencyToken</a></li>
<li>CertificateTags: (OPTIONAL type:list) The tags for the acm certificate</li>
</ul>
<p>In order for the DNS record cleanup and delete certificate functionality to work when you delete the Cloudformation stack it is important to set the following output.<br />
<img loading="lazy" decoding="async" class="alignnone wp-image-16495 " src="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_output.png" alt="auto validate cfn output" width="666" height="98" srcset="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_output.png 1238w, https://cloudar.be/wp-content/uploads/2020/01/auto_validate_cfn_output-768x113.png 768w" sizes="auto, (max-width: 666px) 100vw, 666px" /></p>
<p>As you can see we can access the arn of the certifcate created by the custom resource with the GetAtt function on the resource.<br />
<code class="" data-line="">!GetAtt CreateCertificateCustomResource.certificate_arn</code></p>
<h4>Step3: Deploy the cloudformation</h4>
<p>Finally the only thing left to do is deploy the Cloudformation template.<br />
Once the deploy is started Cloudformation will create the Lambda containing the code from step1 and start a custom resource which will create the certificate and validation records. Once the status of the certificate becomes &#8216;ISSUED&#8217; the custom resource will finish successfully and report the arn of the certificate back to Cloudformation. We can now further use this arn in other resources in the Cloudformation template.<br />
When you delete the Cloudformation stack, the custom resource will cleanup the validation records in the hosted zone and delete the certificate.</p>
<p>CREATE_COMPLETE</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-16496 size-full" src="https://cloudar.be/wp-content/uploads/2020/01/auto_validate_acm_icon.png" alt="auto validate acm icon" width="300" height="259" /></p>
<p>The post <a href="https://cloudar.be/awsblog/validate-acm-certificates-in-cloudformation/">Validate ACM certificates in Cloudformation</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>$ aws help # things you might not know about the AWS CLI</title>
		<link>https://cloudar.be/awsblog/aws-help-things-you-might-not-know-about-the-aws-cli/</link>
		
		<dc:creator><![CDATA[Ben Bridts]]></dc:creator>
		<pubDate>Sat, 16 Nov 2019 15:23:39 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[aws cli]]></category>
		<guid isPermaLink="false">https://www.cloudar.be/?p=16399</guid>

					<description><![CDATA[<p>I recently gave a presentation at The AWS Community Summit in London, where I tried to talk about as many cool features of the AWS CLI as I could in 10 minutes. That recording is now available and you can watch it here (the slides can be found online too). Video isn&#8217;t the best reference [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/aws-help-things-you-might-not-know-about-the-aws-cli/">$ aws help # things you might not know about the AWS CLI</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I recently gave a presentation at <a href="https://www.comsum.co.uk/">The AWS Community Summit in London</a>, where I tried to talk about as many cool features of the AWS CLI as I could in 10 minutes. <a href="https://www.youtube.com/watch?v=1tl-J_lbKso">That recording is now available and you can watch it here</a> (<a href="https://speakerdeck.com/benbridts/aws-help-number-things-you-might-not-know-about-the-aws-cli-5d0a25fb-bf79-4ff7-82f0-31cfcb06607b">the slides can be found online too</a>).</p>
<p>Video isn&#8217;t the best reference material if you want to quickly find one of those tips, so I will add a quick summary of them in this blogpost.</p>
<ul>
<li>By specifying <code class="" data-line="">source_profile</code> in your <code class="" data-line="">.aws/config</code> file, you can tell the AWS CLI to use credentials from one profile to assume the <code class="" data-line="">role_arn</code> you configure in another profile. This also works in a chain of profiles and can include asking for an MFA token.</li>
<li>You don&#8217;t have to get credentials from the <code class="" data-line="">.aws/credentials</code> file, you can tell the CLI to get them from environment variables (this also works if you do not specify anything), instance metadata, or the ECS container role.</li>
<li>There is a <code class="" data-line="">--debug</code> flag, which gives you a lot of output to see everything that&#8217;s happening behind the scenes.</li>
<li>In most cases you do not want that full debug output. <a href="https://docs.aws.amazon.com/cli/latest/reference/history/index.html">Enabling history and using <code class="" data-line="">aws history show</code></a> will give you the most relevant parts in an easy to read format.</li>
<li>The CLI has the annoying habit of resolving all urls you give it. You can disable this with <code class="" data-line="">aws configure set cli_follow_urlparam false</code>.</li>
<li>You can make S3 uploads and downloads go a lot faster by tweaking the <code class="" data-line="">max_concurrent_requests</code>. Or make it not exceed a certain speed with <code class="" data-line="">max_bandwith</code>. <a href="https://docs.aws.amazon.com/cli/latest/topic/s3-config.html#cli-aws-help-s3-config">See here for all options</a>.</li>
<li>The cli supports defining your own aliases. Look in <a href="https://github.com/awslabs/awscli-aliases">this awslabs repository</a> for examples.</li>
<li>Instead of relying on an external tool (that needs to be installed), you can get specific fields from the response by using <code class="" data-line="">--query</code>. Combine this with <code class="" data-line="">--output text</code> to strip json-specific syntax.</li>
<li>You can use completion in different shells.</li>
<li>There are waiters you can use directly from the command line, so you do not have to write your own check-sleep loops in bash.</li>
<li>Other useful cli tools include <a href="https://github.com/aws-cloudformation/cfn-python-lint">cfn-lint</a>, <a href="https://github.com/aws/aws-encryption-sdk-cli/">aws-encryption-sdk</a>, <a href="https://github.com/awslabs/aws-shell">aws-shell</a> and <a href="https://github.com/99designs/aws-vault">aws-vault</a></li>
<li><a href="https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html">There is a version 2 coming</a>.</li>
</ul>
<p>The post <a href="https://cloudar.be/awsblog/aws-help-things-you-might-not-know-about-the-aws-cli/">$ aws help # things you might not know about the AWS CLI</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Discover yourself</title>
		<link>https://cloudar.be/awsblog/discover-yourself/</link>
					<comments>https://cloudar.be/awsblog/discover-yourself/#respond</comments>
		
		<dc:creator><![CDATA[Michiel Vanderlinden]]></dc:creator>
		<pubDate>Fri, 16 Nov 2018 16:27:28 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[AWS Rekognition]]></category>
		<category><![CDATA[Discover pictures]]></category>
		<category><![CDATA[face detection]]></category>
		<category><![CDATA[facial recognition]]></category>
		<category><![CDATA[searching images]]></category>
		<guid isPermaLink="false">https://cloudar.be/?p=9459</guid>

					<description><![CDATA[<p>Do you know the burden? Do you feel the pain? Returning home from a great music festival or a fantastic party, a great time and nothing to remember it by. There must be some pictures. You search the website or Facebook page of the event and there it is, an album full of memories of [&#8230;]</p>
<p>The post <a href="https://cloudar.be/awsblog/discover-yourself/">Discover yourself</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Do you know the burden? Do you feel the pain? Returning home from a great music festival or a fantastic party, a great time and nothing to remember it by. There must be some pictures. You search the website or Facebook page of the event and there it is, an album full of memories of that great time, 1697 of them! The date is November 12 2018 and nobody has time to search for embarrassing pictures of themselves. But there is hope, these days we are not only cursed with the burden of little time but blessed with the gift of technology as well, the gift of cloud computing for everyone, the gift of AWS Rekognition, our lord, our savior.</p>
<p>In this blog we will use AWS Rekognition to search for ourselves in a collection of pictures.</p>
<p>First we need to acquire this collection, I simply used a Chrome extension to download all pictures of a specific Facebook album.</p>
<p>Next, we will create an S3 bucket to store the pictures, because this project reminds me a bit of where’s waldo I will name the bucket ‘awesome-waldo-bucket’.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9463" src="https://cloudar.be/wp-content/uploads/2018/11/createBucket.png" alt="" width="331" height="369" /></p>
<p>Now we will upload all the pictures to this bucket using the command.<br />
<i></i></p>
<pre class="lang:default decode:true ">aws s3 sync . s3://awesome-waldo-bucket</pre>
<p>Enjoy the terminal doing its job, casual snap some screenshots to non-IT friends. It scores well. #hackerMan</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9464" src="https://cloudar.be/wp-content/uploads/2018/11/uploadS3.png" alt="" width="607" height="373" /></p>
<p>While the pictures are uploading we will create the AWS Rekognition collection with the following command.</p>
<pre class="lang:default decode:true ">aws rekognition create-collection –collection-id awesome-waldo-collection</pre>
<p>After we create our collection and the pictures are uploaded we will use a Python script to add faces to the collection. The script will loop all the pictures in the S3 bucket and send them to the Rekognition collection with the ‘index faces’ operation, when a picture is added to the collection AWS will automatically process it and detect the faces, these faces will be stored in a map which we will be able to query later.</p>
<p><a href="https://docs.aws.amazon.com/rekognition/latest/dg/add-faces-to-collection-procedure.html">AWS documentation on this operation.</a></p>
<p>I added a hard-coded counter in this script just to follow progress.</p>
<pre class="lang:python decode:true ">import boto3
from boto.s3.connection import S3Connection

conn = S3Connection()
bucket = conn.get_bucket('awesome-waldo-bucket')
count = 1

for key in bucket.list():
    print("Added " + str(count) + " pictures out of 1697...")
    count = count + 1

    bucket='awesome-waldo-bucket'
    collectionId='awesome-waldo-collection'
    photo=key.name.encode('utf-8')
    client=boto3.client('rekognition')
    response=client.index_faces
    response=client.index_faces(CollectionId=collectionId,
                                Image={'S3Object':{'Bucket':bucket,'Name':photo}},
                                ExternalImageId=photo,
                                QualityFilter="AUTO")</pre>
<p>Next execute the Python script.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9465" src="https://cloudar.be/wp-content/uploads/2018/11/addingPicturesToCollection.png" alt="" width="290" height="81" /></p>
<p>You will find that it takes a very long time to process this number of pictures. For the sake of keeping it simple we did not do any batch processing in this blog but it is possible.</p>
<p><a href="https://aws.amazon.com/blogs/machine-learning/classify-a-large-number-of-images-with-amazon-rekognition-and-aws-batch/">AWS documentation for batch processing.</a></p>
<p>After the images are done processing find a clear and recent picture of yourself, name it ‘me.png’ and upload it to the S3 bucket.</p>
<p>Be sure that it is a clear picture of your face and that you are the only one in it.<br />
For example.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-9466" src="https://cloudar.be/wp-content/uploads/2018/11/me.png" alt="" width="278" height="293" srcset="https://cloudar.be/wp-content/uploads/2018/11/me.png 766w, https://cloudar.be/wp-content/uploads/2018/11/me-683x720.png 683w" sizes="auto, (max-width: 278px) 100vw, 278px" /></p>
<p>Now that we have all elements in place we can use the following command to retrieve faces matching our sample.</p>
<p><span class="lang:default decode:true crayon-inline">aws rekognition search-faces-by-image &#8211;image &#8216;{&#8220;S3Object&#8221;:{&#8220;Bucket&#8221;:&#8221;awesome-waldo-bucket&#8221;,&#8221;Name&#8221;:&#8221;me.png&#8221;}}&#8217; &#8211;face-match-threshold 70 &#8211;collection-id &#8220;awesome-waldo-collection&#8221;</span></p>
<p>You can play with the ‘—face-match-threshold’ to get more or less correct results. The command will return json containing data on the matched faces.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9467" src="https://cloudar.be/wp-content/uploads/2018/11/resultJson.png" alt="" width="474" height="354" /></p>
<p>You can repeat this with different sample pictures of your face to get more results.</p>
<p>And now the moment of truth, as it turns out I was not that popular with the photographers on the festival this year as I’m only in two pictures. Better luck next year!</p>
<p>As you can see, AWS Rekognition is a great service to find yourself in a picture even in a big crowd!</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9468" src="https://cloudar.be/wp-content/uploads/2018/11/result1.jpg" alt="" width="1896" height="1199" srcset="https://cloudar.be/wp-content/uploads/2018/11/result1.jpg 1896w, https://cloudar.be/wp-content/uploads/2018/11/result1-768x486.jpg 768w, https://cloudar.be/wp-content/uploads/2018/11/result1-1536x971.jpg 1536w, https://cloudar.be/wp-content/uploads/2018/11/result1-1139x720.jpg 1139w" sizes="auto, (max-width: 1896px) 100vw, 1896px" /></p>
<p>This picture surprised me the most, even when your face is very blury AWS Rekognition can still find you! What a gift of technology indeed!</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-9469" src="https://cloudar.be/wp-content/uploads/2018/11/result2.jpg" alt="" width="1694" height="1094" srcset="https://cloudar.be/wp-content/uploads/2018/11/result2.jpg 1694w, https://cloudar.be/wp-content/uploads/2018/11/result2-768x496.jpg 768w, https://cloudar.be/wp-content/uploads/2018/11/result2-1536x992.jpg 1536w, https://cloudar.be/wp-content/uploads/2018/11/result2-1115x720.jpg 1115w" sizes="auto, (max-width: 1694px) 100vw, 1694px" /></p>
<p>I hope this blog has given you some insight in the possibilities with AWS Rekognition and wish you the best of luck in finding yourself!</p>
<p>The post <a href="https://cloudar.be/awsblog/discover-yourself/">Discover yourself</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudar.be/awsblog/discover-yourself/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Parse and query CloudTrail logs with AWS Glue,  Amazon Redshift Spectrum and Athena</title>
		<link>https://cloudar.be/awsblog/parse-and-query-cloudtrail-logs-with-aws-glue-amazon-redshift-spectrum-and-athena/</link>
					<comments>https://cloudar.be/awsblog/parse-and-query-cloudtrail-logs-with-aws-glue-amazon-redshift-spectrum-and-athena/#respond</comments>
		
		<dc:creator><![CDATA[Jo Evens]]></dc:creator>
		<pubDate>Mon, 05 Nov 2018 10:22:41 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[Athena]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Redshift]]></category>
		<guid isPermaLink="false">https://cloudar.be/?p=8837</guid>

					<description><![CDATA[<p>The post <a href="https://cloudar.be/awsblog/parse-and-query-cloudtrail-logs-with-aws-glue-amazon-redshift-spectrum-and-athena/">Parse and query CloudTrail logs with AWS Glue,  Amazon Redshift Spectrum and Athena</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div id="ut-row-69f2cf0af1ba1" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0af1baa" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0af2290" class="vc_column-inner " ><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p>Building on the <a href="https://aws.amazon.com/blogs/big-data/aws-cloudtrail-and-amazon-athena-dive-deep-to-analyze-security-compliance-and-operational-activity/">Analyze Security, Compliance, and Operational Activity Using AWS CloudTrail and Amazon Athena</a> blog post on the AWS Big Data blog, this post will demonstrate how to convert CloudTrail log files into parquet format and query those optimized log files with Amazon Redshift Spectrum and Athena.</p>
<p>The people over at <a href="https://github.com/awslabs/athena-glue-service-logs">awslabs</a> did a great job in providing scripts that allow the conversion through AWS Glue ETL jobs. I&#8217;ll be using their scripts throughout this post.</p>
<p>Depending on your use case, either Redshift Spectrum or Athena will come up as the best fit:<br />
If you want  ad-hoq, multi-partitioning and complex data types go with Athena.<br />
If on the other hand you want to integrate wit existing redshift tables, do lots of joins or aggregates go with Redshift Spectrum.</p>
<h1>Setting things up</h1>
<h2>Users, roles and policies</h2>
<p>For the purpose of this demo, I&#8217;ve created a demo-user with following policies attached:</p>
<ol>
<li>AmazonAthenaFullAccess</li>
<li>AmazonRedshiftFullAccess</li>
<li>An inline policy allowing read-only access to the CloudTrail logs on S3 and the scripts bucket.</li>
<li>An inline policy allowing read-write access to the S3 bucket containing the Glue ETL scripts</li>
</ol>
<p>The Glue service role contains:</p>
<ol>
<li>The managed AWSGlueServiceRole</li>
<li>An inline policy giving read-write access to the CloudTrail logs on S3</li>
</ol>
<p>The Redshift service role contains:</p>
<ol>
<li>The managed AWSGlueConsoleFullAccess role</li>
<li>An inline policy giving read access to the cloudtrail logs on S3</li>
</ol>
<p>In order to use Athena and Redshift from SQL editors, please add port 443 and 5439 to your VPC&#8217;s default security group.</p>
<h2>Awslabs scripts</h2>
<p>The readme.md on the github project page explains how to build and deploy the scripts. In this case, I&#8217;ve uploaded the scripts to another bucket, not the bucket containing the CloudTrail logs.</p>
<h1>Glue</h1>
<p>Once the scripts are in place, create the Glue ETL job using the AWS CLI:</p>
<pre class="lang:default decode:true ">aws glue create-job --name CloudTrailLogConvertor \
--description Convert and partition CloudTrail logs \
--role AWSGlueServiceRole-CrawlerS3 \	
--command Name=glueetl,ScriptLocation=s3://&lt;scriptbucket&gt;/sample_cloudtrail_job.py \	 	 
--default-arguments '	 	 
"--extra-py-files":"s3://&lt;scriptbucket&gt;/athena_glue_converter_&lt;latest&gt;.zip",
"--job-bookmark-option":"job-bookmark-enable" 
"--raw_database_name":"cloudtrail_logs", 
"--raw_table_name":"cloudtrail_raw", 
"--converted_database_name":"cloudtrail_logs", 	 
"--converted_table_name":"cloudtrail_optimized",	 	 
"--TempDir":"s3://&lt;scriptbucket&gt;/tmp", 	 
"--s3_converted_target":"s3://&lt;logbucket&gt;/converted/cloudtrail",	 	 
"--s3_source_location":"s3://&lt;logbucket&gt;/&lt;account&gt;/cloudtrail/"	 	 
'</pre>
<p>Now, to actually start the job, you can select it in the AWS Glue console, under ETL &#8211; Jobs, and click Action &#8211; Run Job, or through the CLI:</p>
<pre class="lang:default decode:true ">aws glue start-job-run --job-name CloudtrailLogConvertor</pre>
<p>You can follow up on progress by using:</p>
<pre class="lang:default decode:true ">aws glue get-job-runs --job-name CloudtrailLogConvertor</pre>
<p class="">Until the JobRunState is Succeeded:</p>
<pre class="lang:default decode:true "> "JobRuns": [	 	 
 {	 	 
 "Id": "jr_1cc3f9b8cf88a5abddd4f6957ec53ddfb70839773cc39292d5f8707ca19c7b6c",	
 "Attempt": 0,	 	 
 "JobName": "CloudtrailLogConvertor",	
 "StartedOn": 1541160714.424,	 	 
 "LastModifiedOn": 1541161359.587,	 	 
 "CompletedOn": 1541161359.587,	 	 
 "JobRunState": "SUCCEEDED",	 	 
 "PredecessorRuns": [],	 	 
 "AllocatedCapacity": 10	 	 
 }	 	 
 ]	 	 
}</pre>
<p>&nbsp;</p>
<h1>Athena</h1>
<p>Launch your favorite SQL editor (<a href="https://docs.aws.amazon.com/athena/latest/ug/connect-with-jdbc.html">Additional drivers</a>) ,  or open Athena in the AWS console.<br />
Let&#8217;s see what our table looks like:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-8961" src="https://cloudar.be/wp-content/uploads/2018/11/table.png" alt="" width="904" height="621" srcset="https://cloudar.be/wp-content/uploads/2018/11/table.png 904w, https://cloudar.be/wp-content/uploads/2018/11/table-768x528.png 768w" sizes="auto, (max-width: 904px) 100vw, 904px" /></p>
<p>You&#8217;ll notice 4 columns starting with json_. These contain some more nested JSON data.<br />
For example:<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-8962" src="https://cloudar.be/wp-content/uploads/2018/11/nestedjson.png" alt="" width="1054" height="154" srcset="https://cloudar.be/wp-content/uploads/2018/11/nestedjson.png 1054w, https://cloudar.be/wp-content/uploads/2018/11/nestedjson-768x112.png 768w" sizes="auto, (max-width: 1054px) 100vw, 1054px" /></p>
<p>You can use the <a href="https://docs.aws.amazon.com/athena/latest/ug/extracting-data-from-JSON.html">JSON extract</a> functionality in Athena to dive in deeper:<img loading="lazy" decoding="async" class="alignnone size-full wp-image-8963" src="https://cloudar.be/wp-content/uploads/2018/11/json_extract.png" alt="" width="1068" height="153" srcset="https://cloudar.be/wp-content/uploads/2018/11/json_extract.png 1068w, https://cloudar.be/wp-content/uploads/2018/11/json_extract-768x110.png 768w" sizes="auto, (max-width: 1068px) 100vw, 1068px" /></p>
<p>Something more useful to interpret:<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-9009" src="https://cloudar.be/wp-content/uploads/2018/11/athena_query.png" alt="" width="852" height="391" srcset="https://cloudar.be/wp-content/uploads/2018/11/athena_query.png 852w, https://cloudar.be/wp-content/uploads/2018/11/athena_query-768x352.png 768w" sizes="auto, (max-width: 852px) 100vw, 852px" /></p>
<h1>Redshift Spectrum</h1>
<p>Now that we have our tables and database in the Glue catalog, querying with Redshift Spectrum is easy.<br />
First make sure you have a Redshift cluster running, then create the external schema:</p>
<pre class="lang:default decode:true ">create external schema cloudtrail_logs
from data catalog
database 'cloudtrail_logs'
iam_role 'arn:aws:iam::&lt;accountnumber&gt;:role/demo-redshift';</pre>
<p>Our tables are detected automatically (Thank you Glue).</p>
<p>Creating a session with psql:</p>
<pre class="lang:default decode:true">:~$ psql -h demo-cluster.cpbkebqgnfoo.eu-west-1.redshift.amazonaws.com -p 5439 -U demouser -d dev
Password for user demouser: 
psql (10.5 (Ubuntu 10.5-0ubuntu0.18.04), server 8.0.2)
SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off)
Type "help" for help.

dev=# SELECT COUNT(*) FROM cloudtrail_logs.cloudtrail_optimized;
 count  
--------
 119182
(1 row)

dev=# 
</pre>
<p>And a query making a bit more sense than COUNT(*) :</p>
<pre class="lang:default decode:true ">dev=# SELECT COUNT (*) AS TotalEvents, json_extract_path_text(json_useridentity,'type') AS usertype, eventname
dev-# FROM cloudtrail_logs.cloudtrail_optimized
dev-# WHERE eventtime &gt;= '2017-01-01T00:00:00Z' 
dev-# AND usertype = 'Root'
dev-# GROUP BY eventname,json_useridentity
dev-# ORDER BY TotalEvents DESC
dev-# LIMIT 10;
 totalevents | usertype |         eventname         
-------------+----------+---------------------------
         588 | Root     | DescribeLoadBalancers
         392 | Root     | ListBuckets
         392 | Root     | GetBucketLocation
         336 | Root     | DescribeDBInstances
         168 | Root     | DescribeAutoScalingGroups
          90 | Root     | DescribeAccountLimits
          84 | Root     | GetTrailStatus
          84 | Root     | DescribeTrails
          84 | Root     | DescribeAccountAttributes
          84 | Root     | DescribeDBSecurityGroups
(10 rows)
</pre>
<p>&nbsp;</p>

		</div>
	</div>
</div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0af2b6a" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0af2b75" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0af30c6" class="vc_column-inner " ><div class="wpb_wrapper"></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div>
</div><p>The post <a href="https://cloudar.be/awsblog/parse-and-query-cloudtrail-logs-with-aws-glue-amazon-redshift-spectrum-and-athena/">Parse and query CloudTrail logs with AWS Glue,  Amazon Redshift Spectrum and Athena</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudar.be/awsblog/parse-and-query-cloudtrail-logs-with-aws-glue-amazon-redshift-spectrum-and-athena/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cloudar achieves AWS Premier Consulting Partner status</title>
		<link>https://cloudar.be/awsblog/cloudar-achieves-aws-premier-consulting-partner-status/</link>
					<comments>https://cloudar.be/awsblog/cloudar-achieves-aws-premier-consulting-partner-status/#respond</comments>
		
		<dc:creator><![CDATA[Bart Van Hecke]]></dc:creator>
		<pubDate>Fri, 02 Nov 2018 16:14:05 +0000</pubDate>
				<category><![CDATA[AWS Blog]]></category>
		<category><![CDATA[Amazon Web Services]]></category>
		<category><![CDATA[APN]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[MSP]]></category>
		<category><![CDATA[Partner Network]]></category>
		<category><![CDATA[Premier]]></category>
		<guid isPermaLink="false">https://cloudar.be/?p=8845</guid>

					<description><![CDATA[<p>The post <a href="https://cloudar.be/awsblog/cloudar-achieves-aws-premier-consulting-partner-status/">Cloudar achieves AWS Premier Consulting Partner status</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div id="ut-row-69f2cf0b00788" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0b00792" ><div class="wpb_column vc_column_container vc_col-sm-8" ><div id="ut_inner_column_69f2cf0b00db3" class="vc_column-inner " ><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p><strong>Kontich, Belgium, November 2nd, 2018 – </strong>Cloudar, a Belgian based AWS Consulting Partner, today announced it has achieved Premier Consulting Partner status within the Amazon Web Services (AWS) Partner Network (APN). This is the highest tier available and recognizes partners that have made significant investments in their AWS practice. Premier Partners have a proven experience in designing, deploying and migrating customer solutions on AWS, have a strong team of trained and certified technical professionals and drive a healthy revenue-generating consulting business on AWS.</p>
<p>Cloudar is the first AWS Premier Consulting Partner headquartered in Belgium.<br />
Cloudar has been part of the APN network since 2014 and has had a 100% focus on AWS since day one. This focus on one specific cloud allows Cloudar to excel and to have the best possible relationship with AWS.</p>
<p><strong>Tom De Blende, COO of Cloudar</strong>, commented on this achievement saying, <span style="color: #333333;"><em>“In a traditional hosting business, there usually is a gap between a customer and the engineers of the supplier. Within Cloudar, our Consultancy business strengthens our Managed Services business, and vice versa. Achieving AWS Premier Consulting Partner Status is a valuable recognition for all the hard work our consultants put in day after day.”</em></span></p>
<p>Innovation is in the DNA of Cloudar. Not only in the combination of different business models like reselling, consultancy, staffing ánd managed services but, as part of Cronos Groep, Cloudar is also involved in projects with different competence centers that are experts in their field. This results in a quick adoption of new services, from IoT to Serverless, AI to Big Data, Lex to Polly. This business model has proven to be successful thanks to a very customer-centric approach.</p>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-4" ><div id="ut_inner_column_69f2cf0b011f9" class="vc_column-inner " ><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-8851" src="https://cloudar.be/wp-content/uploads/2018/11/aws-premier-badge.png" alt="" width="404" height="741" srcset="https://cloudar.be/wp-content/uploads/2018/11/aws-premier-badge.png 404w, https://cloudar.be/wp-content/uploads/2018/11/aws-premier-badge-393x720.png 393w" sizes="auto, (max-width: 404px) 100vw, 404px" /></p>

		</div>
	</div>
</div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><div id="ut-row-69f2cf0b0194e" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0b01958" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0b01ebb" class="vc_column-inner " ><div class="wpb_wrapper">
	<div class="wpb_text_column wpb_content_element" >
		<div class="wpb_wrapper">
			<p><em><span style="color: #333333;">“Our AWS Premier Consulting Partners are the very best of all APN Consulting Partners globally and we are excited to welcome Cloudar to this exclusive group,”</span></em> said <strong>Niko Mykkänen, General Manager, Alliances and Channels EMEA at AWS</strong>. <em><span style="color: #333333;">“By investing in their AWS skills Cloudar has been able to prove they have a strong bench of trained and certified consultants that are equipped to help customers through their digital transformation and into the AWS cloud.”</span></em></p>
<p>Cloudar has proven worthy of the new Premier Partner status through many successful customer engagements.<br />
<strong>Geert Vanvaerenbergh, CEO of Amista NV, SAP Rebels // Founder &amp; CEO of Belgium’s national bobsleigh team “the Belgian Bullets”</strong> confirms this result-driven approach: <span style="color: #333333;"><em>“My motto in life is that we should be part of the solution, not part of the problem. Cloudar’s team is the personification of my motto. For one of our biggest customers, Alcopa, we migrated their entire applications suite including a very significant SAP workload which is in my experience not the easiest thing to accomplish. The AWS migration went flawless, was delivered as promised; on budget and on time. This is why I love working with Cloudar on our most crucial customer missions, when failure is not an option.”</em></span></p>
<p>Early 2018, Cloudar achieved the <strong>AWS DevOps Competency</strong> and the <strong>AWS Government Competency</strong>. The AWS DevOps Competency highlights APN Partners who have deep experience working with businesses to help them implement continuous integration and continuous delivery practices or helping them automate infrastructure provisioning and management with configuration management tools on AWS. The AWS Government Competency highlights partners that provide solutions to government customers to deliver mission-critical workloads and applications on AWS.</p>
<p>These recent achievements and close collaboration with AWS served as a stepping stone to obtaining the Premier Partner Partnership. Cloudar is currently actively working on qualifying for the Managed Service Provider Competency, which will be another great milestone.</p>
<p><strong>Bart Van Hecke, Co-Founder and Managing Partner of Cloudar</strong> commented: <span style="color: #333333;"><em>&#8220;We are very proud to be recognised by AWS as a Premier Consulting Partner. In the near future we will continue to invest in this relationship with AWS by obtaining more AWS competencies and Specialties. I cannot emphasize enough the importance of the team-effort that resulted in this achievement. I take pride in the team&#8217;s expertise and professionalism and look forward to continue leading Cloudar into this exciting, ever-changing world of the AWS Cloud.”</em></span></p>

		</div>
	</div>
</div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><section id="ut-section-69f2cf0b0290a" data-vc-full-width="true" data-vc-full-width-init="false" data-cursor-skin="global" class="vc_section ut-vc-160 vc_section-has-no-fill ut-section-69f2cf0b02913"><div id="ut-row-69f2cf0b02ea4" data-vc-full-width="true" data-vc-full-width-init="false" class="vc_row wpb_row vc_row-fluid vc_column-gap-0 ut-row-69f2cf0b02eb0" ><div class="wpb_column vc_column_container vc_col-sm-12" ><div id="ut_inner_column_69f2cf0b033cc" class="vc_column-inner " ><div class="wpb_wrapper"><div class="vc_message_box vc_message_box-standard vc_message_box-rounded vc_color-info vc_do_message" ><div class="vc_message_box-icon"><i class="fas fa-info-circle"></i></div><p><strong>ABOUT CLOUDAR</strong></p>
<p>Cloudar was founded by Senne Vaeyens and Bart Van Hecke in 2014 with a 100% focus on Amazon Web Services.</p>
<p>As DevOps, AWS and infrastructure experts, Cloudar offers rock solid, high available and scalable solutions for any type of business in the AWS Public Cloud.</p>
<p>Being part of Cronos Groep( https://cronos-groep.be/en), Cloudar can offer their customers complete solutions that go beyond AWS expertise. With over 5,000 IT consultants, a 2017 revenue of 560M € and an average yearly growth rate of 15%, Cronos Groep has become one of the most solvent and trusted technology partners in Belgium and Luxemburg.</p>
<p>Cloudar is ISO/IEC 27001 certified for information security. ISO 27001 is the internationally recognized and respected standard that evaluates if a company is following information security best practices. This completely neutral standard applies an exacting, risk-based approach to determine the security of data in an organization, assessing IT structure, processes and people.</p>
<p>Cloudar has delivered dozens of agile, right-sized projects to customers across all industries, creating a well-architected core from which these organizations can operate and grow their journey in the AWS Public Cloud. For more information, please visit <a href="https://cloudar.be">https://www.cloudar.eu</a></p>
</div></div></div></div></div><div class="vc_row-full-width vc_clearfix"></div><a data-id="section-without-id" class="ut-vc-offset-anchor-bottom" name="section-without-id"></a></section><div class="vc_row-full-width vc_clearfix"></div>
</div><p>The post <a href="https://cloudar.be/awsblog/cloudar-achieves-aws-premier-consulting-partner-status/">Cloudar achieves AWS Premier Consulting Partner status</a> appeared first on <a href="https://cloudar.be">Cloudar</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://cloudar.be/awsblog/cloudar-achieves-aws-premier-consulting-partner-status/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
