|
1 | 1 | { |
2 | 2 | "Provider": "aws", |
3 | 3 | "CheckID": "servicecatalog_portfolio_shared_within_organization_only", |
4 | | - "CheckTitle": "Service Catalog portfolios should be shared within an AWS organization only", |
| 4 | + "CheckTitle": "Service Catalog portfolio is shared only within the AWS Organization", |
5 | 5 | "CheckType": [ |
6 | | - "Software and Configuration Checks/AWS Security Best Practices" |
| 6 | + "Software and Configuration Checks/AWS Security Best Practices", |
| 7 | + "TTPs/Initial Access/Unauthorized Access" |
7 | 8 | ], |
8 | 9 | "ServiceName": "servicecatalog", |
9 | 10 | "SubServiceName": "", |
10 | | - "ResourceIdTemplate": "arn:aws:servicecatalog:{region}:{account-id}:portfolio/{portfolio-id}", |
| 11 | + "ResourceIdTemplate": "", |
11 | 12 | "Severity": "high", |
12 | | - "ResourceType": "AwsServiceCatalogPortfolio", |
13 | | - "Description": "This control checks whether AWS Service Catalog shares portfolios within an organization when the integration with AWS Organizations is enabled. The control fails if portfolios aren't shared within an organization.", |
14 | | - "Risk": "Sharing Service Catalog portfolios outside of an organization may result in access granted to unintended AWS accounts, potentially exposing sensitive resources.", |
15 | | - "RelatedUrl": "https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing.html", |
| 13 | + "ResourceType": "Other", |
| 14 | + "Description": "**AWS Service Catalog portfolios** are assessed to confirm sharing occurs via **AWS Organizations** integration, not direct `ACCOUNT` shares. It reviews shared portfolios and identifies those targeted to individual accounts instead of organizational scopes.", |
| 15 | + "Risk": "Sharing with individual accounts enables recipients to import and launch products outside centralized guardrails, inheriting launch roles. This can cause unauthorized provisioning, data exposure, and configuration drift-impacting confidentiality, integrity, and availability through misused privileges and uncontrolled costs.", |
| 16 | + "RelatedUrl": "", |
| 17 | + "AdditionalURLs": [ |
| 18 | + "https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing.html" |
| 19 | + ], |
16 | 20 | "Remediation": { |
17 | 21 | "Code": { |
18 | 22 | "CLI": "aws servicecatalog create-portfolio-share --portfolio-id <portfolio-id> --organization-ids <org-id>", |
19 | | - "NativeIaC": "", |
20 | | - "Other": "https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing.html", |
21 | | - "Terraform": "" |
| 23 | + "NativeIaC": "```yaml\n# CloudFormation: Share Service Catalog portfolio only within the AWS Organization\nResources:\n <example_resource_name>:\n Type: AWS::ServiceCatalog::PortfolioShare\n Properties:\n PortfolioId: <example_resource_id>\n OrganizationNode: # CRITICAL: share within AWS Organizations\n Type: ORGANIZATION # Shares the portfolio with the entire org\n Value: <example_resource_id> # e.g., o-xxxxxxxxxx\n```", |
| 24 | + "Other": "1. In the AWS Console, go to Service Catalog > Portfolios and open the target portfolio\n2. Open the Shares/Sharing tab\n3. Remove every share of Type \"Account\" (stop sharing with each account)\n4. Click Share, choose \"AWS Organizations\", set Type to \"Organization\", enter your Org ID (o-xxxxxxxxxx), and share\n5. Verify no remaining shares of Type \"Account\" exist", |
| 25 | + "Terraform": "```hcl\n# Share Service Catalog portfolio only within the AWS Organization\nresource \"aws_servicecatalog_portfolio_share\" \"<example_resource_name>\" {\n portfolio_id = \"<example_resource_id>\"\n\n organization_node { # CRITICAL: share within AWS Organizations\n type = \"ORGANIZATION\" # Shares the portfolio with the entire org\n value = \"<example_resource_id>\" # e.g., o-xxxxxxxxxx\n }\n}\n```" |
22 | 26 | }, |
23 | 27 | "Recommendation": { |
24 | | - "Text": "Configure AWS Service Catalog to share portfolios only within your AWS Organization for more secure access management.", |
25 | | - "Url": "https://docs.aws.amazon.com/servicecatalog/latest/adminguide/catalogs_portfolios_sharing.html" |
| 28 | + "Text": "Prefer **organizational sharing** for portfolios and avoid `ACCOUNT` targets. Enforce **least privilege** on portfolio access and launch roles, and review shares regularly. Apply **separation of duties** and **defense in depth** so only governed accounts consume products and blast radius remains constrained.", |
| 29 | + "Url": "https://hub.prowler.com/check/servicecatalog_portfolio_shared_within_organization_only" |
26 | 30 | } |
27 | 31 | }, |
28 | 32 | "Categories": [ |
|
0 commit comments