You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(client-service-catalog): This release 1. adds support for Principal Name Sharing with Service Catalog portfolio sharing. 2. Introduces repo sourced products which are created and managed with existing SC APIs. These products are synced to external repos and auto create new product versions based on changes in the repo.
@@ -814,7 +830,18 @@ export class ServiceCatalog extends ServiceCatalogClient {
814
830
* <p>
815
831
* <code>AWSOrganizationsAccess</code> must be enabled in order to create a portfolio share to an organization node.</p>
816
832
* <p>You can't share a shared resource, including portfolios that contain a shared product.</p>
817
-
* <p>If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the <code> UpdatePortfolioShare</code> API instead.</p>
833
+
* <p>If the portfolio share with the specified account or organization node already exists, this action will have no effect
834
+
* and will not return an error. To update an existing share, you must use the <code> UpdatePortfolioShare</code> API instead. </p>
835
+
*
836
+
* <note>
837
+
* <p>When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is
838
+
* then shared with other accounts. For a user in a recipient account who is <i>not</i> an Service Catalog Admin,
839
+
* but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal
840
+
* name association for the portfolio. Although this user may not know which principal names are associated through
841
+
* Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then
842
+
* Service Catalog recommends using <code>PrincipalType</code> as <code>IAM</code>. With this configuration,
843
+
* the <code>PrincipalARN</code> must already exist in the recipient account before it can be associated. </p>
844
+
* </note>
818
845
*/
819
846
publiccreatePortfolioShare(
820
847
args: CreatePortfolioShareCommandInput,
@@ -1906,6 +1933,13 @@ export class ServiceCatalog extends ServiceCatalogClient {
1906
1933
/**
1907
1934
* <p>Disassociates a previously associated principal ARN from a specified
1908
1935
* portfolio.</p>
1936
+
* <p>The <code>PrincipalType</code> and <code>PrincipalARN</code> must match the
1937
+
* <code>AssociatePrincipalWithPortfolio</code> call request details. For example,
1938
+
* to disassociate an association created with a <code>PrincipalARN</code> of <code>PrincipalType</code>
1939
+
* IAM you must use the <code>PrincipalType</code> IAM when calling <code>DisassociatePrincipalFromPortfolio</code>. </p>
1940
+
* <p>For portfolios that have been shared with principal name sharing enabled: after disassociating a principal,
1941
+
* share recipient accounts will no longer be able to provision products in this portfolio using a role matching the name
* <p>Import of the resource requires that the CloudFormation stack template matches the
2224
-
* associated Amazon Web Services Service Catalog product provisioning artifact. </p>
2258
+
* associated Service Catalog product provisioning artifact. </p>
2225
2259
*
2226
2260
* <p>The user or role that performs this operation must have the <code>cloudformation:GetTemplate</code>
2227
2261
* and <code>cloudformation:DescribeStacks</code> IAM policy permissions. </p>
@@ -2520,7 +2554,7 @@ export class ServiceCatalog extends ServiceCatalogClient {
2520
2554
}
2521
2555
2522
2556
/**
2523
-
* <p>Lists all principal ARNs associated with the specified portfolio.</p>
2557
+
* <p>Lists all <code>PrincipalARN</code>s and corresponding <code>PrincipalType</code>s associated with the specified portfolio.</p>
2524
2558
*/
2525
2559
publiclistPrincipalsForPortfolio(
2526
2560
args: ListPrincipalsForPortfolioCommandInput,
@@ -3156,15 +3190,26 @@ export class ServiceCatalog extends ServiceCatalogClient {
3156
3190
}
3157
3191
3158
3192
/**
3159
-
* <p>Updates the specified portfolio share. You can use this API to enable or disable TagOptions sharing for an existing portfolio share. </p>
3193
+
* <p>Updates the specified portfolio share. You can use this API to enable or disable <code>TagOptions</code> sharing
3194
+
* or Principal sharing for an existing portfolio share. </p>
3160
3195
*
3161
-
* <p>The portfolio share cannot be updated if the <code>CreatePortfolioShare</code> operation is <code>IN_PROGRESS</code>, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.</p>
3196
+
* <p>The portfolio share cannot be updated if the <code>CreatePortfolioShare</code> operation is <code>IN_PROGRESS</code>, as the share is not available to recipient entities. In this case, you must wait for the portfolio share to be COMPLETED.</p>
3162
3197
*
3163
3198
* <p>You must provide the <code>accountId</code> or organization node in the input, but not both.</p>
3164
3199
*
3165
3200
* <p>If the portfolio is shared to both an external account and an organization node, and both shares need to be updated, you must invoke <code>UpdatePortfolioShare</code> separately for each share type. </p>
3166
3201
*
3167
3202
* <p>This API cannot be used for removing the portfolio share. You must use <code>DeletePortfolioShare</code> API for that action. </p>
3203
+
*
3204
+
* <note>
3205
+
* <p>When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is
3206
+
* then shared with other accounts. For a user in a recipient account who is <i>not</i> an Service Catalog Admin,
3207
+
* but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal
3208
+
* name association for the portfolio. Although this user may not know which principal names are associated through
3209
+
* Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then
3210
+
* Service Catalog recommends using <code>PrincipalType</code> as <code>IAM</code>. With this configuration,
3211
+
* the <code>PrincipalARN</code> must already exist in the recipient account before it can be associated. </p>
* <code>AWSOrganizationsAccess</code> must be enabled in order to create a portfolio share to an organization node.</p>
39
39
* <p>You can't share a shared resource, including portfolios that contain a shared product.</p>
40
-
* <p>If the portfolio share with the specified account or organization node already exists, this action will have no effect and will not return an error. To update an existing share, you must use the <code> UpdatePortfolioShare</code> API instead.</p>
40
+
* <p>If the portfolio share with the specified account or organization node already exists, this action will have no effect
41
+
* and will not return an error. To update an existing share, you must use the <code> UpdatePortfolioShare</code> API instead. </p>
42
+
*
43
+
* <note>
44
+
* <p>When you associate a principal with portfolio, a potential privilege escalation path may occur when that portfolio is
45
+
* then shared with other accounts. For a user in a recipient account who is <i>not</i> an Service Catalog Admin,
46
+
* but still has the ability to create Principals (Users/Groups/Roles), that user could create a role that matches a principal
47
+
* name association for the portfolio. Although this user may not know which principal names are associated through
48
+
* Service Catalog, they may be able to guess the user. If this potential escalation path is a concern, then
49
+
* Service Catalog recommends using <code>PrincipalType</code> as <code>IAM</code>. With this configuration,
50
+
* the <code>PrincipalARN</code> must already exist in the recipient account before it can be associated. </p>
51
+
* </note>
41
52
* @example
42
53
* Use a bare-bones client and the command you need to make an API call.
0 commit comments