Considerations for the security operations center in the cloud: deployment using AWS security services
Welcome back. If you’re joining this series for the first time, we recommend that you read the first blog post in this series, Considerations for security operations in the cloud, for some context on what we will discuss and deploy in this blog post. In the earlier post, we talked through the different operating models (centralized, decentralized, or hybrid) that you can deploy for a Security Operations Center (SOC) function when you operate in the cloud. We covered the advantages of each model and some of the potential drawbacks you might see when you start to scale up operations within the cloud.
<p>This post will focus on the <a href="https://aws.amazon.com/" target="_blank" rel="noopener">Amazon Web Services (AWS)</a> native security service, <a href="https://aws.amazon.com/security-hub/" target="_blank" rel="noopener">AWS Security Hub</a>, that you can use to deploy in different SOC operating models. AWS Security Hub is a cloud security posture management service that SOC teams can use to perform security best practice checks and aggregate alerts. AWS Security Hub accepts findings from multiple sources, whether native to AWS, from the <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-providers.html" target="_blank" rel="noopener">pre-built integrations</a>, or from your own sources converted into the <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-findings-format.html" target="_blank" rel="noopener">AWS Security Finding Format (ASFF)</a>. The data collected in Security Hub facilitates response and remediation actions.</p>
<p>Although the models we describe here use services that are native to AWS, the reference architectures that correspond to each operating model can be applied to a variety of deployments, including multi-cloud and traditional on-premises deployments. The majority of this post will focus on the decentralized and hybrid models—the centralized model is well documented and has reference architectures <a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/architecture.html" target="_blank" rel="noopener">already available for you today</a>.</p>
<p>Each organization is different, and no one operating model will fit everyone. You should choose the model that works best for your organizational landscape, with an understanding that the landscape will change and evolve over time. Using feedback loops and being open to change is important to help you meet the continued needs of your business. Additional factors to consider include, but are not limited to: staff skills, compliance requirements, previous operating model, and budget.</p>
<h2>The centralized model</h2>
<p>The centralized operating model for the SOC is well documented and frequently discussed, both at AWS and in the security community. According to <a href="https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/security-ou.html" target="_blank" rel="noopener">AWS best practices</a>, typically you designate a central <a href="https://docs.aws.amazon.com/whitepapers/latest/organizing-your-aws-environment/security-ou-and-accounts.html#security-tooling-accounts" target="_blank" rel="noopener">security tooling account</a> that is dedicated to operating security services, monitoring AWS accounts, and automating security alerting and response. The security tooling account serves as the administrator account for security services that are managed in an administrator/member structure across your AWS accounts. The key objectives for establishing a security tooling account are the following:</p>
<ul>
<li>Provide a dedicated enclave with controlled access for managing security guardrails, monitoring, and response.</li>
<li>Maintain the appropriate centralized security infrastructure to monitor security operations data and maintain traceability across the security lifecycle.</li>
</ul>
<p>Figure 1 demonstrates the variety of AWS security services that you can deploy in the central security account. For example, Security Hub within the security tooling account can act as the administrator to enable Security Hub in the member accounts, as well as view findings, view insights, and set <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html" target="_blank" rel="noopener">security standards</a> across member accounts, which can help simplify security posture management across your existing and future accounts.</p>
<div id="attachment_28641" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28641" src="https://www.infracom.com.sg/wp-content/uploads/2023/03/img1-1.jpg" alt="Figure 1: Reference architecture for the security tooling account in a centralized model" width="760" class="size-full wp-image-28641">
<p id="caption-attachment-28641" class="wp-caption-text">Figure 1: Reference architecture for the security tooling account in a centralized model</p>
</div>
<p>As mentioned earlier, you can enable Security Hub to administer and enable member accounts. This is achieved by using <a href="https://aws.amazon.com/organizations/" target="_blank" rel="noopener">AWS Organizations</a> and the <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services_list.html" target="_blank" rel="noopener">delegated administrator</a> functionality. In addition, you can use Security Hub <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/finding-aggregation.html" target="_blank" rel="noopener">cross-Region aggregation</a> within the delegated administrator account to aggregate findings, finding updates, insights, control compliance statuses, and security scores from multiple Regions to a single aggregation Region. You can then manage this data from the aggregation Region. Figure 2 shows the reference architecture for this functionality.</p>
<div id="attachment_28642" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28642" src="https://www.infracom.com.sg/wp-content/uploads/2023/03/img2-1.png" alt="Figure 2: Reference architecture for Security Hub in the delegated administrator model" width="760" class="size-full wp-image-28642">
<p id="caption-attachment-28642" class="wp-caption-text">Figure 2: Reference architecture for Security Hub in the delegated administrator model</p>
</div>
<p>The <a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/security-reference-architecture/welcome.html" target="_blank" rel="noopener">AWS Security Reference Architecture (AWS SRA)</a> is a great starting point for establishing the centralized security operations model. The AWS SRA is a holistic set of guidelines for deploying the full complement of AWS security services in a multi-account environment. You can use it to help design, implement, and manage AWS security services so that they align with AWS best practices. The AWS SRA’s <a href="https://github.com/aws-samples/aws-security-reference-architecture-examples/tree/main/aws_sra_examples/solutions/securityhub/securityhub_org" target="_blank" rel="noopener">Security Hub Organization solution</a> provides deployable templates and examples that automate the process of enabling Security Hub by delegating administration to an account and configuring Security Hub for the existing and future AWS Organizations accounts.</p>
<h2>The decentralized and hybrid models</h2>
<p>As mentioned in <a href="https://aws.amazon.com/blogs/security/considerations-for-security-operations-in-the-cloud/" target="_blank" rel="noopener">Considerations for security operations in the cloud</a>, the decentralized and hybrid SOC models provide many benefits for organizations. The flexibility of these operating models allows <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html#organizationalunit" target="_blank" rel="noopener">organizational units (OUs)</a> to control how they deal with security-related incidents while still having organization-wide visibility into security posture. This flexibility is important as organizations start to scale up activities within the cloud.</p>
<p>The reference architecture in Figure 3 shows how the benefits we discussed in our earlier blog post can be architected in the decentralized and hybrid operating models in the AWS Cloud.</p>
<div id="attachment_28643" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28643" src="https://www.infracom.com.sg/wp-content/uploads/2023/03/img3-2.png" alt="Figure 3: Reference architecture for the decentralized and hybrid operating models in AWS" width="760" class="size-full wp-image-28643">
<p id="caption-attachment-28643" class="wp-caption-text">Figure 3: Reference architecture for the decentralized and hybrid operating models in AWS</p>
</div>
<p>The key features of this architecture are as follows:</p>
<ol>
<li>The organization root account is separate, according to <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_best-practices_mgmt-acct.html#best-practices_mgmt-use" target="_blank" rel="noopener">AWS Organizations best practices</a>. By using <a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html" target="_blank" rel="noopener">service control policies (SCPs)</a>, the root account can still achieve a level of governance across the business.</li>
<li>Dedicated accounts have been created for each OU for the Security Hub administration. The model we will use for this deployment is the <a href="https://docs.aws.amazon.com/securityhub/latest/userguide/account-management-manual.html" target="_blank" rel="noopener">invite model</a>. In this reference architecture and as an example, we’re using <a href="https://aws.amazon.com/guardduty/" target="_blank" rel="noopener">Amazon GuardDuty</a> to flow findings into Security Hub. When you use this model, each OU can manage findings for that OU. This gives you flexibility to work from the Security Hub admin with full visibility of the OU and accounts associated with that OU, or to work in each member account and view findings for that account only.</li>
<li>(Optional, for use with the hybrid model) Each OU’s Security Hub member accounts first send events to their Security Hub admin account. The Security Hub admin account will then send events for that OU to the local <a href="https://aws.amazon.com/eventbridge/" target="_blank" rel="noopener">Amazon EventBridge</a> bus. You can then set up rules to forward events to a central EventBridge bus in a dedicated AWS account. In the architecture in Figure 3, this account is named SecAnalytics. This step will follow a similar flow as the one described in <a href="https://aws.amazon.com/blogs/mt/amazon-cloudwatch-with-amazon-eventbridge-cross-account-event-monitoring/" target="_blank" rel="noopener">this AWS Cloud Operations & Migrations blog post</a>.</li>
<li>(Optional, for use with the hybrid model) After the OUs have sent data to the central bus, you can use a capability similar to the one in <a href="https://aws.amazon.com/blogs/architecture/visualize-aws-security-hub-findings-using-analytics-and-business-intelligence-tools/" target="_blank" rel="noopener">this AWS Architecture Blog post</a> to start organizing the findings and gain organization-wide visibility. The solution in the earlier post used <a href="https://aws.amazon.com/quicksight/" target="_blank" rel="noopener">Amazon QuickSight</a> to visualize the data, but you can use another tool or pre-existing data pipeline.</li>
</ol>
<p>Items 3 and 4 labeled with (Optional) are capabilities that enable the hybrid model; these are not required if you only want to enable the decentralized model.</p>
<h2>Considerations for all deployments</h2>
<p>Keep the following considerations in mind for all deployments:</p>
<ul>
<li>Steady state operations should be considered for whichever model you deploy in. For the centralized model, you can use functionality within AWS Organizations to automatically enable Security Hub for accounts within the organization. In the decentralized and hybrid models, you will need to build out this capability or <a href="https://github.com/awslabs/aws-securityhub-multiaccount-scripts" target="_blank" rel="noopener">use a similar capability as described in this repo.</a></li>
<li>Alert fatigue happens when humans work on the same repetitive tasks’ day in and day out. To help reduce this, within the reference architecture and solution overview, we’ve added the capability described in <a href="https://aws.amazon.com/blogs/security/how-to-create-auto-suppression-rules-in-aws-security-hub/" target="_blank" rel="noopener">this Security Blog post</a> to automatically suppress findings based on criteria set by you. For the centralized model, you can add this capability in the delegated admin account for Security Hub. For the decentralized and hybrid models, we recommend that you put the auto-suppression capability in the Security Hub admin account, and then centralize the rules for suppression for that OU at the Security Hub admin level. This will reduce the overhead for deploying suppression rules multiple times and give a single location where rules are placed for that OU.</li>
<li>Context is key. Within the reference architecture and solution overview for decentralized and hybrid deployments, we’ve added the capability described <a href="https://aws.amazon.com/blogs/security/how-to-enrich-aws-security-hub-findings-with-account-metadata/" target="_blank" rel="noopener">in this Security Blog post</a>. This capability will add additional context, such as the account name, the OU associated with the account, security contact information, and account tags. This information is pulled from AWS Organizations to enrich Security Hub findings. This additional context can also be used in the centralized model.</li>
</ul>
<h2>Deploy the decentralized and hybrid models</h2>
<p>In this section, we’ll walk you through the deployment that reflects the reference architecture for the decentralized and hybrid models. Figure 4 shows the solution architecture, including the solution that needs to be deployed in the Security Hub admin account and in the aggregation Region for each business unit within the organization. The solution provides the capability to suppress Security Hub findings, enrich the findings, and propagate findings to central security accounts.</p>
<div id="attachment_28644" class="wp-caption aligncenter">
<img aria-describedby="caption-attachment-28644" src="https://www.infracom.com.sg/wp-content/uploads/2023/03/img4.png" alt="Figure 4: Reference architecture for the decentralized and hybrid deployment" width="760" class="size-full wp-image-28644">
<p id="caption-attachment-28644" class="wp-caption-text">Figure 4: Reference architecture for the decentralized and hybrid deployment</p>
</div>
<p>The solution architecture consists of the following:</p>
<ul>
<li>An EventBridge rule to invoke a Lambda function (Suppression Lambda) as the target to suppress any findings based on specific generator IDs within specific member accounts.<br><blockquote>
<p><strong>Note:</strong> The Security Hub Generator IDs and AWS Account IDs in the EventBridge rule are left as placeholders so that you can fill based on your needs.</p>
</blockquote> </li>
<li>An EventBridge rule to invoke a Lambda function (Enrichment Lambda) as the target to enrich the findings with AWS account and OU related metadata, along with alternate contact information to better prioritize the findings. The API calls to AWS Organizations and AWS account management services are optimized by caching the metadata in an Amazon DynamoDB table with a time-to-live (TTL) value of 24 hours.</li>
<li>An EventBridge rule to post the enriched findings that were not suppressed to a custom EventBridge event bus in the organization-level Security Tooling/SecAnalytics account.</li>
</ul>
<h3>Prerequisites</h3>
<p>The following are the prerequisites for this deployment:</p>
<ul>
<li><a href="https://aws.amazon.com/organizations/" target="_blank" rel="noopener">AWS Organizations</a> is utilized across the business. In this scenario, AWS Organizations will be used to group AWS accounts into OUs, as well as to provide enrichment data for Security Hub findings.</li>
<li>Alternative contacts for AWS accounts have been filled out with the most up-to-date information. <a href="https://aws.amazon.com/blogs/security/update-the-alternate-security-contact-across-your-aws-accounts-for-timely-security-notifications/" target="_blank" rel="noopener">This is a best practice recommendation</a>. This information will be used for enrichment of the Security Hub findings.</li>
<li>Your organization already has a pipeline in place for indexing Security Hub findings and visualizing them.</li>
<li>Security Hub is set up in the invite model. OU-level Security Hub accounts have been invited and accepted to be managed by the OU-level Security Hub admin account.</li>
<li>The grouping of findings across multiple OU-level Security Hub admin accounts uses Amazon EventBridge to forward events to a centralized bus. You should have the event bus set up ready for this deployment.</li>
</ul>
<h3>Deploy the solution</h3>
<p>This solution deployment consists of two parts:</p>
<ol>
<li>Create an IAM role in your Organizations management account that allows BU-level Security Hub admin to access account metadata, as described in the <strong>Create the IAM role</strong> procedure that follows.</li>
<li>Deploy the Enrichment Lambda function, the Suppression Lambda function, and the associated EventBridge event rules within the BU-level Security Hub administrator account.</li>
</ol>
<h4>Create the IAM role</h4>
<p>Follow the instructions in <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html" target="_blank" rel="noopener">Creating a role to delegate permissions to an IAM user</a> to create an IAM role by using the IAM console, <a href="https://aws.amazon.com/cli/" target="_blank" rel="noopener">AWS Command Line Interface (AWS CLI)</a>, or AWS API. Create the role in the AWS Organizations management account with the role name as <code>account-contact-readonly</code>, based on the following trust and permission policy templates. You will need the account ID of your BU-level Security Hub administrator account.</p>
<p>The IAM trust policy allows the Security Hub administrator account to assume the role in your Organizations management account.</p>
<blockquote>
<p><strong>Note:</strong> The following trust policy shows only one BU Security admin account. You will need to add all BU Security admin accounts to the trust policy.</p>
</blockquote>
<p><strong>IAM role trust policy</strong></p>
<div class="hide-language">
<pre class="unlimited-height-code"><code class="lang-text">{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam:::root”
},
“Action”: “sts:AssumeRole”,
“Condition”: {}
}
]
}
<blockquote>
<strong>Note:</strong> Replace <span></span> with the account ID of your decentralized BU-level Security Hub administrator account. After the solution is deployed, you should update the principal in the preceding trust policy to use the new IAM role created for the solution.</p>
</blockquote>
<p><strong>IAM permission policy</strong></p>
<div class="hide-language">
<pre class="unlimited-height-code"><code class="lang-text">{
"Version": "2012-10-17",
"Statement": [
{
"Action": "Account:GetAlternateContact",
"Resource": [
"arn:aws:account::<span></span>:account/o-<em>/</em>"
],
"Effect": "Allow"
},
{
"Action": [
"organizations:DescribeAccount",
"organizations:ListTagsForResource",
"organizations:DescribeOrganizationalUnit",
"organizations:ListParents"
],
"Resource": [
"arn:aws:organizations::<span></span>:account/o-<em>/</em>",
"arn:aws:organizations::<span></span>:ou/o-<em>/ou-</em>"
],
"Effect": "Allow"
}
]
}
The IAM permission policy allows the Security Hub administrator account to look up the alternate contact information for the member accounts.
Make a note of the role Amazon Resource Name (ARN) for the IAM role, which will be similar to this format:
arn:aws:iam:::role/account-contact-readonly
.
You will need this ARN when you deploy the solution in the next procedure.
Use AWS CloudFormation to create the IAM role
Alternatively, you can use the CloudFormation template we provide in our GitHub repository to create the role in the management account. The IAM role ARN is available in the Outputs section of the created CloudFormation stack.
Deploy the solution to your BU-level Security Hub administrator account
After you have the IAM role created, you can deploy the solution either from the AWS Management Console, or from our GitHub repository by using the AWS SAM CLI.
Note: If you’ve designated an aggregation Region within the BU-level Security Hub administrator account, you can deploy this solution only in the aggregation Region. Otherwise, you need to deploy this solution separately in each Region of the BU-level Security Hub administrator account where Security Hub is enabled.
To deploy the solution by using the AWS Management Console
- In your Security Hub administrator account, launch the template by choosing the following Launch Stack button, which creates the stack the in
us-east-1
Region.
Note: If your Security Hub aggregation Region is different than us-east-1 or you want to deploy the solution in a different AWS Region, you can deploy the solution from the GitHub repository described in the next section.
- On the Quick create stack page, for Stack name, enter a unique stack name for this account; for example,
aws-security-hub-decentralized-deployment-stack
.
- For SecurityToolingAccountEventBus, provide the EventBus ARN in the security tooling account to post the Security Hub findings from the BU-level Security Hub administrator account.
- For OrgManagementAccountContactRole, enter the role ARN of the role you created previously in the Create IAM role procedure.
- Choose Create stack.
- After the stack is created, go to the Resources tab and take note of the name of the IAM role that was created.
- Update the principal element of the IAM role trust policy that you previously created in the Organizations management account in the Create the IAM role procedure, replacing the existing value with the role name you noted down.
To deploy the solution from our GitHub repository and AWS SAM CLI
- Install the AWS SAM CLI.
- Download or clone the GitHub repository by using the following commands.
git clone https://github.com/aws-samples/aws-securityhub-decentralized-operations-solution.git
cd aws-securityhub-decentralized-operations-solution - Update the content of the
profile.txt
file with the profile name you want to use for the deployment. - To create a new bucket for deployment artifacts, run
create-bucket.sh
by specifying the Region as argument.$ ./create-bucket.sh us-east-1
- Deploy the solution to the account by running the
deploy.sh
script by specifying the Region as argument.$ ./deploy.sh us-east-1
- After the stack is created, go to the Resources tab and take note of the name of the IAM role that was created.
- Update the principal element of the IAM role trust policy that you previously created in the Organizations management account in the Create the IAM role procedure, replacing it with the role name you noted down.
"AWS": "arn:aws:iam::: role/"
Note: The EventBridge rule to invoke the findings suppression Lambda function uses placeholders for the generator IDs and AWS account IDs. You need to update the EventBridge rule to meet your specific organizational requirements.
Further enhancements and conclusion
Beyond what is described in the decentralized and hybrid models, you can extend the solution to include the following aspects to meet your security operational needs:
- In Considerations for security operations in the cloud, we spoke about the role of ChatOps. AWS Chatbot can enable OUs to set up rules to post notifications directly into chat rooms such as Amazon Chime or Slack. You can define rules to send only certain severity notifications or findings that are important to your OU to the chat room.
- SCPs give organizations a level of control and governance. See this blog post for some best practices for deploying SCPs, as well as example policies that could be beneficial for your organization in any model you operate in.
- We’ve performed testing of the decentralized and hybrid models in the reference architecture within one AWS Region. Although we don’t see any reason why this solution would not work in multiple Regions, if you do operate in multiple Regions you would need to deploy the CloudFormation template in each Region that you operate in. At this stage, you can keep findings within a Region or choose to centralize across multiple Regions by sending to the single central bus in Amazon EventBridge—the flexibility is yours.
- The decentralized and hybrid models can also be extended if you operate in multiple organizations in AWS Organizations or have standalone accounts outside of your organization that you want to monitor. Interesting use cases could be in mergers and acquisitions scenarios, when newly acquired accounts need to be monitored to understand their posture before bringing them fully into the organization.
Throughout this two-part blog series, we’ve explored the role of the Security Operations Center (SOC) function, both traditionally in an on-premises environment and in the cloud. We’ve explored different operating models, from the traditional centralized deployment to the decentralized and hybrid models. We’ve also demonstrated, with reference architectures and deployable solutions, how you can achieve the different operating models in the AWS Cloud by using native AWS services. In the end, you should choose the model that works best for your environment and the security landscape you work in.
If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, contact AWS Support.
Want more AWS Security news? Follow us on Twitter.
<!-- '"` -->
You must be logged in to post a comment.