diff --git a/prowler/providers/aws/services/codeartifact/codeartifact_packages_external_public_publishing_disabled/codeartifact_packages_external_public_publishing_disabled.py b/prowler/providers/aws/services/codeartifact/codeartifact_packages_external_public_publishing_disabled/codeartifact_packages_external_public_publishing_disabled.py index aa7f3d6b277..6377730a4bc 100644 --- a/prowler/providers/aws/services/codeartifact/codeartifact_packages_external_public_publishing_disabled/codeartifact_packages_external_public_publishing_disabled.py +++ b/prowler/providers/aws/services/codeartifact/codeartifact_packages_external_public_publishing_disabled/codeartifact_packages_external_public_publishing_disabled.py @@ -15,7 +15,7 @@ def execute(self): for package in repository.packages: report = Check_Report_AWS(self.metadata()) report.region = repository.region - report.resource_id = package.name + report.resource_id = f"{repository.arn}/{package.namespace + ':' if package.namespace else ''}{package.name}" report.resource_arn = repository.arn report.resource_tags = repository.tags diff --git a/prowler/providers/aws/services/codeartifact/codeartifact_service.py b/prowler/providers/aws/services/codeartifact/codeartifact_service.py index 8581e3f10ca..948efe55a60 100644 --- a/prowler/providers/aws/services/codeartifact/codeartifact_service.py +++ b/prowler/providers/aws/services/codeartifact/codeartifact_service.py @@ -63,7 +63,7 @@ def __list_packages__(self, regional_client): list_packages_parameters = { "domain": self.repositories[repository].domain_name, "domainOwner": self.repositories[repository].domain_owner, - "repository": repository, + "repository": self.repositories[repository].name, } packages = [] for page in list_packages_paginator.paginate( @@ -83,18 +83,33 @@ def __list_packages__(self, regional_client): ] ) # Get Latest Package Version - latest_version_information = ( - regional_client.list_package_versions( - domain=self.repositories[repository].domain_name, - domainOwner=self.repositories[ - repository - ].domain_owner, - repository=repository, - format=package_format, - package=package_name, - sortBy="PUBLISHED_TIME", + if package_namespace: + latest_version_information = ( + regional_client.list_package_versions( + domain=self.repositories[repository].domain_name, + domainOwner=self.repositories[ + repository + ].domain_owner, + repository=self.repositories[repository].name, + format=package_format, + namespace=package_namespace, + package=package_name, + sortBy="PUBLISHED_TIME", + ) + ) + else: + latest_version_information = ( + regional_client.list_package_versions( + domain=self.repositories[repository].domain_name, + domainOwner=self.repositories[ + repository + ].domain_owner, + repository=self.repositories[repository].name, + format=package_format, + package=package_name, + sortBy="PUBLISHED_TIME", + ) ) - ) latest_version = "" latest_origin_type = "UNKNOWN" latest_status = "Published" @@ -133,6 +148,8 @@ def __list_packages__(self, regional_client): ) # Save all the packages information self.repositories[repository].packages = packages + if self.repositories[repository].name == "cfn": + print(packages) except ClientError as error: if error.response["Error"]["Code"] == "ResourceNotFoundException":