diff --git a/ee/app/models/license.rb b/ee/app/models/license.rb
index 54d8b36fd5943a246cc78ff45366a7cbc591ef6e..be426d84a801254590bc7d2e0779d3f5f40f6e01 100644
--- a/ee/app/models/license.rb
+++ b/ee/app/models/license.rb
@@ -105,6 +105,7 @@ class License < ApplicationRecord
     group_ip_restriction
     incident_management
     insights
+    licenses_list
     license_management
     pod_logs
     prometheus_alerts
diff --git a/ee/app/policies/ee/project_policy.rb b/ee/app/policies/ee/project_policy.rb
index bdc1c0b939b0505264428a467d12e8d4fdb0958a..9844f41839124f230c293756c5da93601725c120 100644
--- a/ee/app/policies/ee/project_policy.rb
+++ b/ee/app/policies/ee/project_policy.rb
@@ -79,6 +79,11 @@ module ProjectPolicy
         @subject.feature_available?(:dependency_list)
       end
 
+      with_scope :subject
+      condition(:licenses_list_enabled) do
+        @subject.feature_available?(:licenses_list)
+      end
+
       with_scope :subject
       condition(:feature_flags_disabled) do
         !@subject.feature_available?(:feature_flags)
@@ -153,6 +158,8 @@ module ProjectPolicy
 
       rule { dependency_list_enabled & can?(:download_code) }.enable :read_dependencies
 
+      rule { licenses_list_enabled & can?(:read_software_license_policy) }.enable :read_licenses_list
+
       rule { repository_mirrors_enabled & ((mirror_available & can?(:admin_project)) | admin) }.enable :admin_mirror
 
       rule { deploy_board_disabled & ~is_development }.prevent :read_deploy_board
diff --git a/ee/spec/policies/project_policy_spec.rb b/ee/spec/policies/project_policy_spec.rb
index dbfa12f7b76b0e6f3296f9444f794d39d8066f98..08f3c6d9227c185bb8a303829e02388cc604f86f 100644
--- a/ee/spec/policies/project_policy_spec.rb
+++ b/ee/spec/policies/project_policy_spec.rb
@@ -730,6 +730,64 @@
     end
   end
 
+  describe 'read_licenses_list' do
+    context 'when licenses list feature available' do
+      context 'when license management feature available' do
+        before do
+          stub_licensed_features(licenses_list: true, license_management: true)
+        end
+
+        context 'with public project' do
+          let(:current_user) { create(:user) }
+
+          context 'with public access to repository' do
+            it { is_expected.to be_allowed(:read_licenses_list) }
+          end
+        end
+
+        context 'with private project' do
+          let(:project) { create(:project, :private, namespace: owner.namespace) }
+
+          where(role: %w[admin owner maintainer developer reporter guest])
+
+          with_them do
+            let(:current_user) { public_send(role) }
+
+            it { is_expected.to be_allowed(:read_licenses_list) }
+          end
+
+          context 'with not member' do
+            let(:current_user) { create(:user) }
+
+            it { is_expected.to be_disallowed(:read_licenses_list) }
+          end
+
+          context 'with anonymous' do
+            let(:current_user) { nil }
+
+            it { is_expected.to be_disallowed(:read_licenses_list) }
+          end
+        end
+      end
+
+      context 'when license management feature in not available' do
+        let(:current_user) { admin }
+
+        before do
+          stub_licensed_features(licenses_list: true)
+        end
+
+        it { is_expected.to be_disallowed(:read_licenses_list) }
+      end
+    end
+
+    context 'when licenses list feature not available' do
+      let(:current_user) { admin }
+
+      it { is_expected.to be_disallowed(:read_licenses_list) }
+    end
+  end
+
   describe 'create_web_ide_terminal' do
     before do
       stub_licensed_features(web_ide_terminal: true)