

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 從 CloudFormation 登錄檔使用第三方公有擴充功能
<a name="registry-public"></a>

若要在範本中使用第三方公有擴充功能，您必須先為要在其中使用它的帳戶和區域*啟用*該擴充功能。啟用擴充功能以便用於啟用該擴充功能之帳戶和區域中的堆疊操作。

啟用第三方公有擴充功能時，CloudFormation 會在帳戶的擴充功能登錄檔中為已啟用之擴充功能建立項目，作為私有擴充功能。這使您可以設定該擴充功能包含的所有組態屬性。組態屬性會定義如何為指定 AWS 帳戶 和 區域設定延伸模組。

除了設定組態屬性外，您還可以透過下列方式自訂擴充功能：
+ 指定 CloudFormation 用來啟動擴充功能的執行角色，以及設定擴充功能的記錄。
+ 指定新的次要或修補程式版本可用時是否自動更新擴充功能。
+ 指定要使用的別名，而不是第三方公有擴充功能名稱。這有助於避免第三方擴充功能之間的命名衝突。

**Topics**
+ [為公有擴充功能存取設定具有 IAM 許可和信任政策的執行角色](#registry-public-enable-execution-role)
+ [自動使用擴充功能的新版本](#registry-public-enable-auto)
+ [使用別名來稱呼擴充功能](#registry-public-enable-alias)
+ [使用公有擴充功能的常用 AWS CLI 命令](#registry-commonly-used-commands-public-extensions)
+ [在您的帳戶中啟用第三方公有擴充功能](registry-public-activate-extension.md)
+ [在您的帳戶中更新公有第三方擴充功能](registry-public-update-extension-console.md)
+ [停用帳戶中的第三方公有擴充功能](registry-public-deactivate-extension.md)

## 為公有擴充功能存取設定具有 IAM 許可和信任政策的執行角色
<a name="registry-public-enable-execution-role"></a>

當您從 CloudFormation 登錄檔啟用公有擴充功能時，您可以提供執行角色，讓 CloudFormation 擁有在 AWS 帳戶 和 區域中叫用該擴充功能的必要許可。

在擴充功能結構描述的處理常式區段中定義執行角色的必要許可。您必須建立一個 IAM 政策，授予該擴充功能所需的特定許可，並將其附加至執行角色。

除了許可政策外，執行角色還必須具備信任政策，允許 CloudFormation 擔任該角色。遵循《IAM 使用者指南**》中的[使用自訂信任政策建立角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-custom.html)的指引，建立具有自訂信任政策的角色。

### 信任關係
<a name="registry-public-enable-execution-role-trust-policy"></a>

以下顯示您可使用的範例信任政策。

您可以選擇性地限制跨服務混淆代理人預防的許可範圍，方法是使用一或多個全域條件內容索引鍵搭配 `Condition` 欄位。如需詳細資訊，請參閱[預防跨服務混淆代理人](cross-service-confused-deputy-prevention.md)。
+ 將 `aws:SourceAccount` 值設定為您的帳戶 ID。
+ 將 `aws:SourceArn` 值設定為擴充功能的 ARN。

**範例信任政策 1**  
以下為資源類型擴充功能的範例 IAM 角色信任政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "resources.cloudformation.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/Organization-Service-Resource"
                }
            }
        }
    ]
}
```

------

**範例信任政策 2**  
以下為勾點擴充功能的範例 IAM 角色信任政策。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": [
                    "resources.cloudformation.amazonaws.com",
                    "hooks.cloudformation.amazonaws.com"
                ]
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook"
                }
            }
        }
    ]
}
```

------

## 自動使用擴充功能的新版本
<a name="registry-public-enable-auto"></a>

啟用擴充功能時，您也可以指定要使用最新次要版本的擴充功能類型。發佈者在已啟用的擴充功能上發佈新版本時，擴充功能類型就會更新次要版本。

例如，下次您使用包含該擴充功能的範本執行堆疊操作 (例如建立或更新堆疊) 時，CloudFormation 會使用新的次要版本。

自動或手動更新為新的擴充功能版本，不會影響堆疊中已佈建的任何擴充功能執行個體。

CloudFormation 會將擴充功能的主要版本更新視為可能包含重大變更，因此需要您手動更新為擴充功能的新主要版本。

依預設， 發佈的延伸 AWS 項目會針對可用的所有帳戶和區域啟用，並一律使用每個 中可用的最新版本 AWS 區域。

**重要**  
由於您可以控制擴充功能是否以及何時更新為帳戶中的最新版本，最終可能會在不同帳戶和區域部署相同擴充功能的不同版本。  
在這些帳戶和區域中使用包含該擴充功能的相同範本時，這可能會產生未預期的結果。

## 使用別名來稱呼擴充功能
<a name="registry-public-enable-alias"></a>

您無法在指定 AWS 帳戶 和區域中使用指定名稱啟用一個以上的擴充功能。由於不同的發佈者可能會提供具有相同擴充功能名稱的公有擴充功能，CloudFormation 讓您可以為啟用的任何第三方公有擴充功能指定別名。

如果您為擴充功能指定別名，CloudFormation 會將別名視為此帳戶和區域內的擴充功能類型名稱。您必須使用別名來參考範本、API 呼叫和 CloudFormation 主控台中的擴充功能。

在指定帳戶和區域中的擴充功能別名必須是唯一的。您可以使用不同類型名稱別名，在同一帳戶和區域中多次啟用相同的公有資源。

**重要**  
雖然擴充功能別名只需要在指定帳戶和區域中為唯一，但我們強烈建議使用者*不要*為跨帳戶和區域的不同第三方公有擴充功能指派相同的別名。使用包含跨多個帳戶或區域之擴充功能別名的範本時，這樣做可能會產生未預期的結果。

## 使用公有擴充功能的常用 AWS CLI 命令
<a name="registry-commonly-used-commands-public-extensions"></a>

使用公有擴充功能的常用命令包括：
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html)：在您的帳戶中啟用公有第三方模組或資源類型。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-configuration.html)：用於指定您帳戶中某個擴充功能的組態資料，以及停用和啟用勾點。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html)：列出您帳戶中的擴充功能。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html)：傳回特定擴充功能或特定擴充功能版本的詳細資訊，包括目前的組態資料。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-default-version.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-default-version.html)：指定哪個版本的擴充功能是預設版本。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html)：在您帳戶中停用先前啟用的公有第三方模組或資源類型。