How exactly to encrypt sensitive caller tone of voice input in Amazon Lex
In the telecommunications industry, sensitive authentication and user data are usually received through cellular voice and keypads, and companies have the effect of protecting the info obtained through these stations. The increasing usage of voice-driven interactive tone of voice response (IVR) provides resulted in a have to provide solutions that may protect user data that’s gathered from mobile tone of voice inputs. In this website post, you’ll observe how to safeguard a caller’s sensitive tone of voice data that has been captured through Amazon Lex through the use of information encryption applied through AWS Lambda features. The solution described in this article allows you to protect client data received through tone of voice stations from inadvertent or unfamiliar access. The perfect solution is also contains decryption capabilities, which give a certified administrator or operator the opportunity to decrypt user data from the Lambda console.
<pre> <code> <h2>Remedy overview</h2>
<p>To show the IVR solution described in this article, a caller speaks two sensitive bits of data-credit card quantity and zip code-from an Amazon Connect <a href=”https://docs.aws.amazon.com/connect/current/adminguide/concepts-contact-flows.html” focus on=”_blank” rel=”noopener”>contact flow</the>. The spoken ideals are encrypted and came back to the contact stream to be saved in <a href=”https://docs.aws.amazon.com/connect/most recent/adminguide/what-is-a-contact-attribute.html” focus on=”_blank” rel=”noopener”>contact attributes</the>. The encrypted ciphertext will be retained as a get in touch with attribute for decryption reasons. <a href=”https://docs.aws.amazon.com/AmazonCloudWatch/most recent/logs/WhatIsCloudWatchLogs.html” focus on=”_blank” rel=”noopener”>Amazon CloudWatch Logs</the> is allowed in the get in touch with flow, but just the encrypted values are usually logged in <a href=”https://docs.aws.amazon.com/AmazonCloudWatch/recent/logs/CloudWatchLogsConcepts.html” focus on=”_blank” rel=”noopener”>log streams</the>.</p>
<p>Because of this answer, <a href=”https://docs.aws.amazon.com/lex/best and newest/dg/conversation-logs.html” focus on=”_blank” rel=”noopener”>conversation logs</the> because of this Amazon Lex bot aren’t allowed. An operator with designated <a href=”https://aws.amazon.com/iam/” focus on=”_blank” rel=”noopener”>AWS Identity and Accessibility Management (IAM)</the> permissions can keep track of the logged encrypted entries from CloudWatch Logs. To find out more, find <a href=”https://docs.aws.amazon.com/AmazonCloudWatch/current/logs/Working-with-log-groups-and-streams.html” focus on=”_blank” rel=”noopener”>Dealing with log groupings and log streams</the> in the Amazon CloudWatch Logs User Guidebook.</p>
<h2>Option architecture</h2>
<p>Amount 1 shows the summary of the answer described in this website post.</p>
<div id=”attachment_28202″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28202″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img1-1.png” alt=”Figure 1: Exemplory case of solution architecture” width=”760″ class=”size-full wp-image-28202″>
<p id=”caption-attachment-28202″ course=”wp-caption-text”>Figure 1: Exemplory case of solution architecture</p>
</div>
<p>Physique 1 shows the next high-level measures of the solution, and the real number labels match the following steps.</p>
<ol>
<li>The caller areas an inbound contact.</li>
<li>An Amazon Connect get in touch with circulation leverages a <a href=”https://docs.aws.amazon.com/connect/most recent/adminguide/get-customer-input.html” rel=”noopener” focus on=”_blank”>Obtain customer input</the> block, supported by an Amazon Lex bot, to prompt the caller for numerical information.</li>
<li>The Amazon Lex bot invokes the Lambda function <strong>dev-encryption-core-EncryptFn</strong>.</li>
<li>The Lambda function uses the AWS Encryption SDK to encrypt the caller’s plain text information.</li>
<li>The AWS Encryption SDK obtains encryption keys from <a href=”https://aws.amazon.com/kms/” focus on=”_blank” rel=”noopener”>AWS Key Management Services (AWS KMS)</the>.</li>
<li>The caller’s information is encrypted utilizing the AWS KMS keys obtained from AWS KMS.</li>
<li>The Lambda function appends the encrypted information to the Amazon Lex bot session attributes.</li>
<li>Amazon Lex returns the encrypted information back again to amazon Connect fully.</li>
</ol>
<h2>Summary of a contact movement</h2>
<div id=”attachment_28203″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28203″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img2-1-1024×595.png” alt=”Number 2: Contact stream captures input values making use of Amazon Lex and returns their encrypted ideals” width=”760″ course=”size-large wp-picture-28203″>
<p id=”caption-attachment-28203″ course=”wp-caption-text”>Figure 2: Contact flow captures insight values making use of Amazon Lex and returns their encrypted ideals</p>
</div>
<p>Number 2 shows a synopsis of the contact stream, which includes two main tips:</p>
<ol>
<li>The initial numerical information (in this example, an encrypted charge card number value) is stored in <a href=”https://docs.aws.amazon.com/connect/most recent/adminguide/what-is-a-contact-attribute.html” focus on=”_blank” rel=”noopener”>contact attributes</the>.</li>
<li>The next numerical information (in this example, an encrypted zip code value) is stored connected attributes.</li>
</ol>
<h2>Prerequisites</h2>
<p>This solution uses the next AWS services:</p>
<p>The next have to be installed in your neighborhood machine:</p>
<p>To implement the perfect solution is in this post, you will need the Amazon Connect instance prerequisite set up first.</p>
<h3>To create the Amazon Connect instance (if not one exists)</h3>
<ol>
<li>Create a good <a href=”https://docs.aws.amazon.com/connect/recent/adminguide/amazon-connect-instances.html” focus on=”_blank” rel=”noopener”>Amazon Connect example</the> with a <a href=”https://docs.aws.amazon.com/connect/latest/adminguide/claim-phone-amount.html” focus on=”_blank” rel=”noopener”>claimed phone number</the> and a configured <a href=”https://docs.aws.amazon.com/connect/best and newest/adminguide/configure-agents.html” focus on=”_blank” rel=”noopener”>Amazon Connect consumer</a> associated with a <a href=”https://docs.aws.amazon.com/connect/most recent/adminguide/concepts-routing.html” focus on=”_blank” rel=”noopener”>simple routing profile</the>. To learn more about establishing a contact center, observe <a href=”https://docs.aws.amazon.com/connect/current/adminguide/amazon-connect-contact-centers.html” focus on=”_blank” rel=”noopener”>Setup your contact middle</the> in the Amazon Connect Administrator Tutorial.</li>
<li>Assign the <a href=”https://docs.aws.amazon.com/connect/recent/adminguide/default-security-profiles.html” focus on=”_blank” rel=”noopener”>Admin or even callcentermanager security user profile</the> to an Amazon Connect consumer.</li>
<li>In the created Amazon Connect instance newly, beneath the <strong>Summary</strong> section, discover the accessibility URL with the structure<br><period>https://<period></period>.awsapps.com/connect/login</period>
<ul>
<li>Make take note of the gain access to URL, that you will use to get on the Amazon Connect Dashboard later on.</li>
</ul> </li>
<li>Get on your Amazon Connect example with a Connect consumer which has <a href=”https://docs.aws.amazon.com/connect/best and newest/adminguide/default-security-profiles.html” focus on=”_blank” rel=”noopener”>CallCenterManager or admin permissions</the>.</li>
</ol>
<h2>Solution processes</h2>
<p>This solution includes the next procedures:</p>
<ol>
<li>Clone the download or task the answer zip file.</li>
<li>Create AWS resources necessary for decryption and encryption.</li>
<li>Configure the Amazon Lex bot inside Amazon Connect.</li>
<li>Create the particular contact flow within Amazon Connect.</li>
<li>Validate the perfect solution is.</li>
<li>Decrypt the collected data.</li>
</ol>
<h3>To download or clone the answer </h3>
<ul>
<li>Get on the <a href=”https://github.com/aws-samples/amazon-connect-encryption” focus on=”_blank” rel=”noopener”>GitHub</the> repo.</li>
<li>Clone or even download the perfect solution is files to your neighborhood machine.</li>
</ul>
<p>The downloaded file provides the artifacts necessary for the deployment.</p>
<h3>To generate AWS resources necessary for decryption< and encryption;/h3>
<ol>
<li>From the command line, change directory to the project’s root directory.</li>
<li>Work <period>npm install</period>.</li>
<li>Work <period>npm run construct</period> to transpile TypeScript to JavaScript and bundle code and its own dependencies before deploying to AWS.</li>
<li>Work <period>cdk deploy CoreStack</period>.</li>
</ol>
<h3>To configure the Amazon Lex bot inside your Amazon Connect instance</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/connect/home” focus on=”_blank” rel=”noopener”>Amazon Connect system</the>, select <strong>Get in touch with flows</strong> and scroll to the <strong>Amazon Lex</strong> section.
<div id=”attachment_28204″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28204″ loading=”lazy” src=”https://d2908q01vomqb2.cloudfront.internet/22d200f8670dbdb3e253the90eee5098477c95c23d/2023/01/11/img3.png” alt=”Shape 3: Select Get in touch with flows” width=”351″ height=”735″ class=”size-full wp-image-28204″>
<p id=”caption-attachment-28204″ course=”wp-caption-text”>Figure 3: Select Get in touch with flows</p>
</div> </li>
<li>From the <strong>Bot</strong> menu, go for <strong>protected_LexInput(Traditional)</strong>. Select < then;strong>+Increase Amazon Lex Bot</strong>.
<div id=”attachment_28205″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28205″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img4-1.png” alt=”Body 4: Configure the Amazon Lex bot to Amazon Connect” width=”500″ class=”size-complete wp-image-28205″>
<p id=”caption-attachment-28205″ course=”wp-caption-text”>Figure 4: Configure the Amazon Lex bot to Amazon Connect</p>
</div> </li>
</ol>
<h3>To import contact circulation into Amazon Connect</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/connect/home” focus on=”_blank” rel=”noopener”>Amazon Connect system</the>, select <strong>Review</strong>, and choose < then;strong>Login seeing that administrator</strong>.</li>
<li>From the <strong>Routing</strong> menu on the still left aspect, choose <strong>Get in touch with flows</strong> showing the list of get in touch with flows.</li>
<li>Choose <strong>Create Get in touch with movement</strong>.</li>
<li>Pick the arrow to the proper of the <strong>Save</strong> key and select <strong>Import stream (beta)</strong>. This imports the contact flow that you downloaded in the task < previously;strong>To download or clone the solution</strong>. <p>The contact flow gets the <strong>Amazon Lex bot</strong> configured.</p>
<div id=”attachment_28206″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28206″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img5-1024×271.png” alt=”Figure 5: Select Import stream (beta)” width=”680″ course=”size-large wp-picture-28206″>
<p id=”caption-attachment-28206″ course=”wp-caption-text”>Figure 5: Select Import circulation (beta)</p>
</div> </li>
<li>In top of the right corner of the contact flow, choose <strong>Save</strong>, and choose <strong>Okay</strong> to save lots of the noticeable changes.</li>
<li>Choose <strong>Publish</strong> to help make the contact flow prepared for use through the validation actions.</li>
<li>(Optional) Claim a telephone number (if none can be acquired), utilizing the following steps:
<ol>
<li>In the Connect Dashboard, on the routing menus, choose <strong>Stations</strong>, and select <strong>Phone quantities</strong>.</li>
<li>On the proper side of the web page, choose <strong>Claim a quantity</strong>.</li>
<li>Choose the <strong>DID</strong> <strong>(Direct Inward Dialing)</strong> tab. Utilize the drop-down arrow to select your country/area. When figures are returned, select one.</li>
<li>Jot down the phone amount. You call it in this article later.</li>
</ol> </li>
<li>(Optional) In the <strong>Edit Phone quantity</strong> web page, in the <strong>Explanation</strong> box, a note could be typed by you if desired.</li>
<li>To assign the get in touch with movement to your claimed contact number, for <strong>Contact flow IVR< /;/strong>, pick the drop-down arrow, and select <strong>Secure_Lex_Insight</strong>.</li>
<li>Choose <strong>Save</strong>.
<div id=”attachment_28207″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28207″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img6.png” alt=”Figure 6: In Contact flow / IVR, choose the imported contact stream ” width=”300″ class=”size-complete wp-image-28207″>
<p id=”caption-attachment-28207″ course=”wp-caption-text”>Figure 6: Under Contact stream / IVR, choose the imported contact circulation</p>
</div> </li>
</ol>
<p>To find out more, see <a href=”https://docs.aws.amazon.com/connect/most recent/adminguide/contact-center-phone-number.html” focus on=”_blank” rel=”noopener”>Create phone numbers for the contact center</the> in the Amazon Connect Administrator Information.</p>
<h3>To validate the solution</h3>
<ol>
<li>Dial the check phone number to undergo the voice prompt stream.</li>
<li>When prompted, speak a 16-digit charge card number (you’ve got a optimum of two retries), after that speak a 5-digit zip code (also no more than two retries).</li>
<li>Once you complete your test contact, examine the log streams in Amazon CloudWatch Logs to verify that the digits that you entered are actually encrypted and stored as a contact attribute. Both entered values <period>zipcode</period> and <period>creditcard</period> are stored connected features. Both are encrypted.
<div id=”attachment_28208″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28208″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img7.png” alt=”Amount 7: Sample log displaying encrypted ideals for zipcode and creditcard” width=”720″ course=”size-full wp-picture-28208″>
<p id=”caption-attachment-28208″ course=”wp-caption-text”>Figure 7: Sample log showing encrypted ideals for zipcode and creditcard</p>
</div> </li>
<li>Get on your Amazon Connect Dashboard while the Supervisor. The URL will be provided following the connect example has been produced. In the navigation menus, select <strong>Contact lookup</strong>.
<div id=”attachment_28209″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28209″ loading=”lazy” src=”https://d2908q01vomqb2.cloudfront.internet/22d200f8670dbdb3e253the90eee5098477c95c23d/2023/01/11/img8.png” alt=”Determine 8: Choose Contact research to look for the decision information” width=”312″ elevation=”486″ class=”size-complete wp-image-28209″>
<p id=”caption-attachment-28209″ course=”wp-caption-text”>Figure 8: Choose Contact research to look for the decision information</p>
</div> </li>
<li>Find your inbound ask the <strong>Contact lookup</strong> list. Remember that it can consider around 60 seconds for information to surface in the <strong>Contact research</strong> checklist.</li>
<li>Choose the <strong>Get in touch with ID</strong> for the call.
<div id=”attachment_28210″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28210″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img9-1024×693.png” alt=”Figure 9: The Contact search displaying the contact details for the test call” width=”720″ class=”size-large wp-image-28210″>
<p id=”caption-attachment-28210″ course=”wp-caption-text”>Figure 9: The Contact lookup showing the contact information for your test contact</p>
</div> </li>
<li>Duplicate the encrypted ideals for creditcard and zipcode and help make note of them; you shall use these values within the next procedure.
<div id=”attachment_28211″ course=”wp-caption aligncenter”>
<img aria-describedby=”caption-attachment-28211″ src=”https://d2908q01vomqb2.cloudfront.net/22d200f8670dbdb3electronic253a90eee5098477c95c23d/2023/01/11/img10.png” alt=”Figure 10: Get in touch with attributes stored inside a get in touch with flow are registered within the contact details” width=”720″ class=”size-full wp-image-28211″>
<p id=”caption-attachment-28211″ course=”wp-caption-text”>Figure 10: Contact attributes stored inside a contact flow are usually registered within the contact information</p>
</div> </li>
</ol>
<h3>To decrypt the collected information</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/lambda/home” focus on=”_blank” rel=”noopener”>AWS Lambda system</the>, select <strong>Features</strong>.</li>
<li>Utilize the <strong>Lookup</strong> bar to consider the <strong>dev-encryption-core-DecryptFn</strong> Lambda function, and choose the name connect to open it then.</li>
<li>Under <strong>folder encryption-expert</strong>, open up the <strong>check</strong> folder. Beneath the tab <strong>activities</strong>, locate the file <period>decrypt.json</period>.</li>
<li>Utilize the following steps to make a sample test occasion in the console utilizing the contents from <period>decrypt.json</span>. For additional information, notice <a href=”https://docs.aws.amazon.com/lambda/current/dg/testing-functions.html” focus on=”_blank” rel=”noopener”>Testing Lambda functions within the console</the>.
<ol>
<li>Pick the down arrow on the proper side of <strong>Check.</strong></li>
<li>Choose <strong>Configure check occasion</strong>.</li>
<li>Choose <strong>Create brand-new check event</strong>.</li>
<li>For <strong>Occasion title</strong>, enter <period>decryptTest</period>.</li>
<li>Paste the contents from <period>decrypt.json</span>.
<div course=”hide-language”>
<pre><code class=”lang-text”>
“Details”:
“Parameters”:
“encrypted”: “<period></period>”
</code> </pre>
<pre> <code> <li>Choose <strong>Save</strong>.</li>
<li>Utilize the <strong>encrypted</strong> ideals preserved in the <strong>Validate a remedy</strong> treatment and replace the people inside the created &lt recently;strong>test occasion</strong>.
<div id="attachment_28212" course="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28212" loading="lazy" src="https://d2908q01vomqb2.cloudfront.internet/22d200f8670dbdb3e253the90eee5098477c95c23d/2023/01/11/img11.png" alt="Number 11: Replace the creditcard or zipCode ideals with the people from the Contact Research page" width="475" elevation="606" class="size-complete wp-image-28212" />
<p id="caption-attachment-28212" course="wp-caption-text">Figure 11: Replace the creditcard or even zipCode ideals with the people from the Contact Lookup page</p>
</div> </li>
<li>Choose <strong>Check</strong>. The output from the ideals are demonstrated by the check decrypted by the Lambda perform. That is shown in Shape 12<strong> </strong>beneath the <strong>Execution outcome</strong> tab.
<div id="attachment_28213" course="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28213" loading="lazy" src="https://d2908q01vomqb2.cloudfront.internet/22d200f8670dbdb3e253the90eee5098477c95c23d/2023/01/11/img12.png" alt="Figure 12: Derive from the decryption procedure" width="397" height="279" class="size-full wp-image-28213" />
<p id="caption-attachment-28213" course="wp-caption-text">Figure 12: Derive from the decryption procedure</p>
</div> </li>
<blockquote>
<strong>Take note:</strong> Be sure that only the appropriate certified operator or administrator, program, or AWS service can invoke the decryption Lambda functionality.</p>
</blockquote>
<p>You have finally successfully implemented the answer by decrypting and encrypting the voice input of one’s test call, that you collected through Amazon Lex.</p>
<h2>Cleanup</h2>
<p>In order to avoid incurring future fees, follow these steps to completely clean up the deployed assets that you created when applying this solution.</p>
<h3>To delete the Amazon Connect instance</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/connect/” focus on=”_blank” rel=”noopener”>Amazon Connect system</the>, under <strong>Example alias</strong>, choose the true title of the Amazon Connect example, and select <strong>Delete</strong>.</li>
<li>When prompted, type the real title of the instance, and choose <strong>Delete</strong>.</li>
</ol>
<h3>To delete the Amazon Lex bot</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/lex/” focus on=”_blank” rel=”noopener”>Amazon Lex system</a>, pick the bot that you developed in the <strong>To configure the Amazon Lex bot</strong> method.</li>
<li>Choose <strong>Delete</strong>, and select <strong>Continue</strong>.</li>
</ol>
<h3>To delete the AWS CloudFormation stack</h3>
<ol>
<li>In the <a href=”https://gaming console.aws.amazon.com/cloudformation/” focus on=”_blank” rel=”noopener”>AWS CloudFormation system</the>, on the <strong>Stacks</strong> page, choose the stack you made in the task <strong>To generate AWS resources necessary for encryption and decryption</strong>. </li>
<li>In the stack details pane, choose <strong>Delete</strong>.</li>
<li>Choose <strong>Delete stack</strong> when prompted. This deletes the Amazon S3 bucket, IAM AWS and functions Lambda functions you designed for testing. This can schedule a deletion date on the AWS KMS key also.</li>
</ol>
<h2>Bottom line</h2>
<p>In this article, you discovered how an Amazon Connect contact flow can collect voice inputs from the caller through the use of Amazon Lex, and ways to encrypt these inputs through the use of your personal AWS KMS key. This option can help enhance the security of tone of voice input that is gathered through Amazon Connect. For cost information, start to see the <a href=”https://aws.amazon.com/connect/pricing/” focus on=”_blank” rel=”noopener”>Amazon Connect prices</a> web page.</p>
<p>To learn more, see the post <a href=”https://aws.amazon.com/blogs/contact-center/creating-a-secure-ivr-solution-with-amazon-connect/” target=”_blank” rel=”noopener”>Developing a secure IVR alternative with Amazon Link</the> and this issue <a href=”https://docs.aws.amazon.com/connect/recent/adminguide/encrypt-data.html” focus on=”_blank” rel=”noopener”>Encrypt customer input</the> (making use of OpenSSL) in the Amazon Connect Administrator Manual. As mentioned previously, the increasing usage of voice-driven IVR offers resulted in a have to provide solutions that may protect user information gathered from mobile tone of voice inputs.</p>
<p>Extra resources are the <a href=”http://docs.aws.amazon.com/lambda/latest/dg/welcome.html” focus on=”_blank” rel=”noopener”>AWS Lambda Developer Guideline</the>, the <a href=”https://docs.aws.amazon.com/lex/most recent/dg/import-from-lex.html” focus on=”_blank” rel=”noopener”>Amazon Lex Developer Guidebook</the>, the <a href=”http://docs.aws.amazon.com/connect/latest/adminguide/what-is-amazon-connect.html” focus on=”_blank” rel=”noopener”>Amazon Connect Administrator Tutorial</the>, the <a href=”https://aws.amazon.com/programmer/language/javascript/” focus on=”_blank” rel=”noopener”>AWS Nodejs SDK,</the> and the <a href=”https://aws.amazon.com/sdk-for-python/” focus on=”_blank” rel=”noopener”>AWS SDK for Python (Boto3).</the></p>
<p>If you want help with establishing this solution, you will get the help of AWS Professional Services. It is possible to seek the help of < also;a href=”https://aws.amazon.com/connect/partners/” focus on=”_blank” rel=”noopener”>Amazon Connect companions</a> accessible worldwide.</p>
<p> <br />When you have feedback concerning this post, submit remarks in the<strong> Remarks</strong> area below. Should you have questions concerning this write-up, <a href=”https://gaming console.aws.amazon.com/assistance/home” focus on=”_blank” rel=”noopener noreferrer”>contact AWS Assistance</the>.</p>
<p><strong>Want a lot more AWS Security news? Stick to us on <a name=”Twitter” href=”https://twitter.com/AWSsecurityinfo” focus on=”_blank” rel=”noopener noreferrer”>Twitter</the>.</strong>
<pre> <code> <!-- '"` -->
</code> </pre>