

# CloudFormation レジストリによる拡張機能の管理
<a name="registry"></a>

CloudFormation レジストリは、AWS アカウントの CloudFormation テンプレートに統合できる拡張機能を管理するための一元的なハブとして機能します。拡張機能には、AWS およびサードパーティーのパブリッシャーによるリソースタイプ、モジュール、フックの他に、独自のカスタム拡張機能が含まれます。レジストリを使用すると、AWS が提供するリソースを使用するのと同じように、CloudFormation テンプレートの拡張を簡単に検出し、プロビジョニングできます。

このセクションでは、CloudFormation レジストリを使用し、次の内容を含むアカウントのサードパーティ拡張機能を有効化する方法について説明します。
+ パブリック拡張の有効化
+ プライベート拡張機能の登録とアクティブ化

**Topics**
+ [関連ドキュメント](#registry-related-documentation)
+ [CloudFormation レジストリの概念](registry-concepts.md)
+ [CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)
+ [CloudFormation レジストリからサードパーティーのパブリック拡張を使用する](registry-public.md)
+ [共有されているサードパーティーのプライベート拡張機能を使用する](registry-private.md)
+ [アカウントの拡張機能の構成データを編集する](registry-set-configuration.md)
+ [AWS Config でリソースタイプを記録する](registry-config-record.md)

## 関連ドキュメント
<a name="registry-related-documentation"></a>

独自の拡張機能を作成することにご関心がある開発者の方は、次のドキュメントを参照してください。
+ 「CloudFormation コマンドラインインターフェイスのユーザーガイド」の「[CloudFormation CLI を使用してモジュールの開発](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/modules.html)」
+ 「CloudFormation コマンドラインインターフェイスのユーザーガイド」の「[CloudFormation CLI を使用してリソースタイプの作成](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html)」
+ 「*CloudFormation フックユーザーガイド*」の「[Developing custom Hooks using the CloudFormation CLI](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-develop.html)」

さらに、CloudFormation レジストリで使用できる、プロビジョニング可能なすべての AWS リソースタイプは、標準の JSON スキーマで定義された属性およびプロパティとともに AWS クラウドコントロール API で使用することができます。詳細については、「[Cloud Control API ユーザーガイド](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html)」を参照してください。Cloud Control API を使用して AWS リソースに対して CRUDL (作成、読み取り、更新、削除、一覧表示) オペレーションを実行するときは、自分の AWS アカウント 内の AWS リソースに対してのみ実行できます。

# CloudFormation レジストリの概念
<a name="registry-concepts"></a>

このトピックでは、CloudFormation レジストリの理解および使用に役立つ主な概念について説明します。

## 拡張タイプ
<a name="registry-extension-types"></a>

CloudFormation レジストリには次の拡張タイプが用意されています。

**フック**  
フックは、CloudFormation によってスタックまたは特定のリソースが作成、更新、または削除される前に、それらを検査する検証チェックです。さらに、フックは変更セットの作成オペレーション中に呼び出すことができます。特定の要件に対してリソース設定を検証することにより、組織の基準およびベストプラクティスを実施するメカニズムを提供します。フックがフックロジックに準拠していない設定を検出した場合、警告を配信するか、プロビジョニングプロセスに失敗させて非準拠のリソースのデプロイを防止することができます。詳細については、「[CloudFormation Hooks ユーザーガイド](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html)」を参照してください。  
CloudFormation コンソールを使用して Hooks を設定する方法に関するドキュメントについては、「*CloudFormation Hooks User Guide*」にある次のセクションを参照してください。  
+ [AWS Control Tower proactive controls as Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/proactive-controls-hooks.html)
+ [Guardフック](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/guard-hooks.html)
+ [Lambda フック](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/lambda-hooks.html)

**モジュール**  
モジュールは、複数の CloudFormation スタックテンプレート間に含めることができる再利用可能なリソース設定です。複雑な、または頻繁に使用されるリソース設定を再利用可能なコンポーネントにカプセル化することにより、CloudFormation テンプレートの作成およびメンテナンスを簡素化するように設計されています。組織のインフラストラクチャのデプロイ全体で一貫性および標準化が促進されます。

**リソースタイプ:**  
リソースタイプは、CloudFormation でネイティブにサポートされていないサードパーティーリソースまたはカスタムリソースをモデル化および自動化できるようにします。リソースタイプを開発することによって CloudFormation の機能を拡張し、さまざまなサードパーティーのサービスからリソースをプロビジョニングおよび管理できます。

## パブリック拡張
<a name="registry-public-extensions"></a>

*パブリック拡張機能*は、すべての AWS アカウント が使用できるようにレジストリに公開されている CloudFormation の拡張機能です。具体的には次のとおりです。
+ **AWS 拡張機能** – AWS によって公開された拡張機能は誰でも利用でき、デフォルトでアクティブ化されるため、アカウントで使用する前に何らかの操作を行う必要はありません。これらの拡張機能のバージョニングは AWS によって制御されるため、利用可能な最新のバージョンを常に使用できます。
+ **サードパーティ拡張機能** - AWS 以外のパブリッシャーによって一般使用向けに提供されている拡張機能です。サードパーティのパブリック拡張機能を使用するには、まずご自身のアカウントおよびリージョンでアクティブ化する必要があります。

## アクティブ化した拡張機能
<a name="registry-activated-extensions"></a>

特定の AWS アカウント の CloudFormation レジストリには、3 種類のアクティブ化された拡張機能が含まれています。
+ **AWS 拡張機能** – すべての AWS パブリック拡張機能が自動的にアクティブ化されます。
+ **アクティブ化されたサードパーティ** - アカウントおよびリージョンに対してアクティブ化されたサードパーティ拡張機能のローカルコピーです。サードパーティのパブリック拡張機能をアクティブ化すると、CloudFormation はローカルコピーをアカウントのレジストリに作成します。詳細については、「[CloudFormation レジストリからサードパーティーのパブリック拡張を使用する](registry-public.md)」を参照してください。
+ **非公開登録** - パブリック CloudFormation レジストリにリストされていない非公開の拡張機能などです。自分で作成した拡張機能、または組織やその他サードパーティから共有された拡張機能などがこれに該当します。アカウントでこのようなプライベート拡張を使用するには、必ず先に登録しておく必要があります。拡張を登録すると、そのコピーがアカウントの CloudFormation レジストリにアップロードされ、アクティブ化されます。詳細については、「[共有されているサードパーティーのプライベート拡張機能を使用する](registry-private.md)」を参照してください。

アカウントのサードパーティパブリッシャーから非公開で登録された拡張機能と、アクティブ化されたパブリック拡張機能を使用することは、サンドボックス環境でそれらを使用することに似ています。拡張機能はバージョン管理で管理されるため、プロビジョニングの動作は特定のバージョンに関連付けられます。その結果、これらの拡張機能はパブリック拡張機能と同じように機能し、バージョン固有の同じルールに従います。

**注記**  
非公開で登録された拡張機能、およびアクティブ化されたサードパーティのパブリック拡張機能は、作成、読み取り、更新、一覧表示、削除のオペレーション中に実行される、イベントハンドラーを実装している場合があります。CloudFormation スタックでこれらの拡張機能を使用すると、作成されたリソースに対する料金のほかに、アカウントに対して料金が発生する可能性があります。詳細については、「[CloudFormation 料金表](https://aws.amazon.com/cloudformation/pricing/)」を参照してください。

# CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する
<a name="registry-view"></a>

CloudFormation レジストリで使用可能でアクティブ化された拡張を表示するには、AWS マネジメントコンソール または AWS CLI を使用します。

**利用可能でアクティブ化された拡張を表示するには (コンソル)**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

1. ナビゲーションペインの [**Registry (レジストリ)**] で、表示する拡張カテゴリを選択します。
   + **[Public extensions]** (パブリック拡張) は、アカウントで利用可能なパブリック拡張を表示します。

     1. **フィルター**、**拡張タイプ**で、拡張タイプ (**リソースタイプ**、**モジュール**、または**フック**) を選択します。

     1. **フィルター**、**パブリッシャー**では、パブリッシャー (**AWS** または**サードパーティー**) を選択します。
   + **[Activated extensions]** (アクティブ化された拡張) は、アカウントでアクティブ化されたパブリック拡張とプライベート拡張を表示します。

     1. 拡張のタイプを選択してください: **[Resource types]** (リソースタイプ)、**[Modules]** (モジュール)、または **[Hooks]** (フック)。

     1. [**フィルター**] ドロップダウンメニューを使用して、表示する拡張をさらに選択します。
        + **AWS** - AWS によって公開された拡張を一覧表示します。AWS によって発行されている拡張がデフォルトでアクティブ化されています。
        + **[Third-party]** (サードパーティー) - このアカウントでアクティブ化した AWS 以外の発行元からの公開拡張を一覧表示します。
        + **[Registered]** (登録済み) - このアカウントで有効にしたプライベート拡張を一覧表示します。
   + **[Publisher]** (パブリッシャー) - このアカウントを使用して公開したパブリック拡張を表示します。

1. 拡張名を検索または選択して、拡張の詳細を表示します。

**利用可能でアクティブ化された拡張を表示するには (AWS CLI)**  
[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-types.html) コマンドを使用します。

# 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 レジストリからパブリック拡張をアクティブ化すると、AWS アカウント およびリージョンでその拡張を呼び出すために必要なアクセス許可を CloudFormation に付与する実行ロールを提供できます。

実行ロールに必要なアクセス許可は、拡張スキーマのハンドラーセクションで定義されています。拡張に必要な特定のアクセス許可を付与し、実行ロールにアタッチする 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>

使用する信頼ポリシーの例を下記に示します。

1 つ以上のグローバル条件コンテキストキーと `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) は、アカウントで以前に有効化されたパブリックサードパーティーモジュールまたはリソースタイプを無効にします。

# アカウントでサードパーティーのパブリック拡張をアクティブ化する
<a name="registry-public-activate-extension"></a>

次のトピックでは、アカウントでサードパーティーのパブリック拡張機能をアクティブ化する方法を示します。これにより、それがアクティブ化されたアカウントとリージョンで使用できるようになります。

**注記**  
続行する前に、この拡張機能で使用する [IAM ロール](registry-public.md#registry-public-enable-execution-role) が作成されていることを確認してください。

**Topics**
+ [パブリック拡張をアクティブ化する (コンソール)](#registry-public-activate-extension-console)
+ [パブリック拡張を有効にする (AWS CLI)](#registry-public-activate-extension-cli)

## パブリック拡張をアクティブ化する (コンソール)
<a name="registry-public-activate-extension-console"></a>

このセクションの手順に従い、コンソールを使用して次の操作を実行します。
+ サードパーティーのパブリック拡張を有効化する
+ アカウントの追加の拡張機能構成データを指定する

**アカウントで使用するパブリック拡張を有効にするには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

1. ナビゲーションペインの **[レジストリ]** の下で、**[パブリック拡張機能]** を選択します。

1. [**フィルタ**] を使用して拡張タイプを選択し、[**サードパーティー**] を選択します。AWS によって発行されている拡張がデフォルトで有効化されています。

1. 拡張を選択してから、**[有効化]** を選択します。

   拡張の複数のバージョンが使用可能な場合は、[**バージョン**] メニューを使用し、有効にする拡張のバージョンを選択します。デフォルトは最新バージョンです。

1. **[拡張機能の名前]** は、**[デフォルトを使用]** のままにするか、**[デフォルトを上書き]** を選択し、この拡張機能に使用する拡張機能タイプのエイリアスを入力します。エイリアスは、拡張タイプの推奨形式に従う必要があります。詳細については、「[拡張を参照するエイリアスを使用する](registry-public.md#registry-public-enable-alias)」を参照してください。

1. アクティブ化している拡張機能がフックのタイプまたはリソースタイプである場合、**[実行ロールの ARN]** で、この拡張機能を呼び出すときに CloudFormation が引き受ける IAM ロールを指定します。詳細については、「[IAM アクセス許可とパブリック拡張アクセスの信頼ポリシーを使用して実行ロールを設定する](registry-public.md#registry-public-enable-execution-role)」を参照してください。

1. **[ログ記録設定]** で、拡張機能のログ記録設定の情報を指定します。例えば、次のようになります。

   ```
   {
       "logRoleArn": "arn:aws:iam::account:role/rolename",
       "logGroupName": "log-group-name"
   }
   ```

   構成情報のロギングは必須ではありませんが、デバッグの目的で推奨されます。フックでログ記録設定を使用するには、指定された実行ロールと同じ信頼ポリシーを追加して、ログロールがロググループにログを書き込めるようにします。

   `logRoleArn` および `logGroupName` キー名では大文字と小文字は区別されません。

1. **[バージョニング]** の **[自動更新]** で、更新の受信方法を選択します。
   + **[On]** (オン) - 自動的に最新のマイナーバージョンに更新します。メジャーバージョンは手動で更新されます。
   + **[Off]** (オフ) - 自動的に最新バージョンに更新しません。すべてのバージョンは手動で更新されます。

   詳細については、「[拡張の新しいバージョンを自動的に使用する](registry-public.md#registry-public-enable-auto)」を参照してください。

拡張機能に追加の構成が必要な場合は、構成データを今すぐ指定するか、拡張が有効化された後に指定するかを選択できます。

**重要**  
有効化する拡張機能がフックの場合、このステップが必要です。`HookInvocationStatus` プロパティには `ENABLED` を指定する必要があります。このオペレーションにより、フックのスキーマ `properties` セクションで定義されているフックのプロパティが有効になります。詳細については、「*CloudFormation フックのユーザーガイド*」の「[フック設定スキーマ構文リファレンス](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html)」を参照してください。

**構成データを指定するには**

1. [**設定**] で、[**今すぐ設定**] を選択し、[**拡張の有効化**] を選択します。

   CloudFormation は、**[Configure extension]** (拡張の設定) ページを表示します。拡張の現在の構成スキーマを表示するには、**[View configuration schema]** (構成スキーマの表示) が有効になっていることを確認してください。

1. [**Configuration JSON (構成 JSON)**] テキストボックスに、この拡張に指定する構成データを表す JSON 文字列を入力します。指定する JSON は、拡張の構成スキーマに対して検証する必要があります。

1. [**Configure extension (拡張の設定)**] を選択します。

アクティベーション後に拡張機能を設定する場合は、このステップをスキップし、後で構成データを提供できます。

1. [**設定**] で、[**後で設定**] を選択し、[**拡張の有効化**] を選択します。

1. 拡張機能が有効化されたら、有効化された拡張機能ページから拡張機能に移動し、構成データを提供することで、拡張機能を設定できます。

## パブリック拡張を有効にする (AWS CLI)
<a name="registry-public-activate-extension-cli"></a>

このセクションの手順に従い、AWS CLI を使用して次の操作を実行します。
+ サードパーティーのパブリック拡張を有効化する
+ アカウントの追加の拡張機能構成データを指定する

### パブリックフックを有効化する
<a name="registry-public-activate-extension-hooks"></a>

アカウントでフックを有効にすると、AWS アカウント から定義されたアクセス許可を使用するフックを承認します。CloudFormation は、アクセス許可をフックに渡す前に、不要なアクセス許可を削除します。CloudFormation では、アカウントでフックを有効にする前に、お客様またはフックユーザーがフックのアクセス許可を確認し、フックが許可されているアクセス許可を考慮することをお勧めします。

**アカウントで使用するパブリックフックを有効にするには (AWS CLI)**

1. フックの ARN を取得し、保存します。AWS マネジメントコンソール または AWS CLI を使用してフックの ARN を取得できます。詳細については、「[CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)」を参照してください。

   ```
   export HOOK_TYPE_ARN="arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook/"
   ```

1. [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) コマンドを使用して、構成データを指定します。`--configuration` に渡す JSON は、フックの構成スキーマに対して検証する必要があります。すべてのスタックオペレーションでフックを有効にするには、`HookConfiguration` セクションで `HookInvocationStatus` プロパティを `ENABLED` に設定する必要があります。

   ```
   aws cloudformation set-type-configuration \
     --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"HookInvocationStatus": "ENABLED", "FailureMode": "FAIL", "Properties":{}}}}" \
     --type-arn $HOOK_TYPE_ARN --region us-west-2
   ```

   `HookConfiguration` の設定オプションの詳細については、「*CloudFormation フックのユーザーガイド*」の「[フック設定スキーマ構文リファレンス](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html#)」を参照してください。

### パブリックモジュールとリソースタイプを有効にする
<a name="registry-public-activate-extension-type"></a>

**アカウントで使用するパブリック拡張を有効にするには (AWS CLI)**
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/activate-type.html) コマンドを使用して拡張を有効にし、拡張の新しいマイナーバージョンが公開されるたびに拡張を自動更新するかどうかを指定します。

  以下の例では、このアカウントに対して有効にするパブリック拡張のパブリック Amazon リソースネーム (ARN) を指定します。さらに、新しいマイナーバージョンが公開されるたびに CloudFormation が拡張を更新するように指定しています。

  ```
  aws cloudformation activate-type \
    --public-type-arn public_extension_ARN \
    --execution-role-arn arn:aws:iam::123456789012:role/my-execution-role \
    --auto-update true --region us-west-2
  ```

  このコマンドは、有効化された拡張の ARN を返します。

  ```
  {
      "Arn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Resource-Example"
  }
  ```

### パブリック拡張のバージョンを更新する (AWS CLI)
<a name="registry-public-update-extension-type"></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) を使用して拡張を再度有効にします。

`--version-bump` オプションを使用して、拡張を最新の `MAJOR` バージョン、または最新の `MINOR` バージョンに更新するかどうかを指定します。

```
aws cloudformation activate-type --type RESOURCE \
  --type-name Example::Test::1234567890abcdef0 \
  --type-name-alias Example::Test::Alias \
  --version-bump MAJOR --region us-west-2
```

# アカウントでパブリックサードパーティー拡張を更新する
<a name="registry-public-update-extension-console"></a>

サードパーティーのパブリック拡張を有効にすると、アカウントからほとんどの拡張機能の詳細を更新できます。

**アカウントでパブリック拡張を更新するには (コンソール)**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

1. ナビゲーションペインの **[レジストリ]** の下で、**[アクティブ化済みの拡張機能]** を選択します。

1. 更新する拡張機能を見つけ、選択します。詳細については、「[CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)」を参照してください。

1. [**アクション**] メニューから [**編集**] を選択し、次に適切な編集オプションを選択します。
   + 構成スキーマを更新するには、「[アカウントの拡張機能の構成データを編集する](registry-set-configuration.md)」を参照してください。
   + 自動更新を有効または無効にするには:

     1. [**自動更新の編集**] を選択します。

     1. [**オン**] または [**オフ**] を選択した上で、[**保存**] を選択します。詳細については、「[拡張の新しいバージョンを自動的に使用する](registry-public.md#registry-public-enable-auto)」を参照してください。
   + 実行ロールを更新するには、次の手順を実行します。

     1. [**実行ロールの編集**] を選択します。

     1. この拡張を呼び出すときに CloudFormation が使用する IAM ロールの ARN を指定し、次に [**保存**] を選択します。詳細については、「[IAM アクセス許可とパブリック拡張アクセスの信頼ポリシーを使用して実行ロールを設定する](registry-public.md#registry-public-enable-execution-role)」を参照してください。
   + ログ記録設定を更新するには、次の手順を実行します。

     1. [**ログ記録設定の編集**] を選択します。

     1. ログ記録設定の JSON を編集し、次に [**保存**] を選択します。

# アカウントでサードパーティーのパブリック拡張を無効にする
<a name="registry-public-deactivate-extension"></a>

有効にしたサードパーティーのパブリック拡張が不要になった場合は、次の手順を使用してアカウントで無効にします。

**Topics**
+ [アカウントでパブリック拡張を無効にする (コンソール)](#registry-public-deactivate-extension-console)
+ [アカウントでパブリック拡張を無効にする (AWS CLI)](#registry-public-deactivate-extension-cli)
+ [アカウントのフックを無効にする (AWS CLI)](#registry-public-deactivate-extension-cli-hook)

## アカウントでパブリック拡張を無効にする (コンソール)
<a name="registry-public-deactivate-extension-console"></a>

**アカウントでパブリック拡張を無効にするには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

1. ナビゲーションペインの **[レジストリ]** の下で、**[アクティブ化済みの拡張機能]** を選択します。

1. 無効にする拡張機能を見つけ、選択します。詳細については、「[CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)」を参照してください。

1. [**アクション**] メニューから、[**無効化**] を選択します。

1. **[無効化]** を選択します。

## アカウントでパブリック拡張を無効にする (AWS CLI)
<a name="registry-public-deactivate-extension-cli"></a>

次の [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deactivate-type.html) コマンドを使用します。

```
aws cloudformation deactivate-type --type MODULE \
  --type-name Example::Test::Type::MODULE \
  --region us-west-2
```

## アカウントのフックを無効にする (AWS CLI)
<a name="registry-public-deactivate-extension-cli-hook"></a>

フックを無効にすると、フックを削除することなく、AWS アカウント でのフックの実行ができなくなります。

[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) コマンドを使用し、`HookInvocationStatus` を `DISABLED` として指定して、フックを無効にします。

次の例では、無効化されるフックの AWS リージョン と Amazonリソースネーム (ARN) を指定します。

```
aws cloudformation set-type-configuration \
  --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"HookInvocationStatus": "DISABLED", "FailureMode": "FAIL", "Properties":{}}}}" \
  --type-arn "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyTestHook" --region us-west-2
```

詳細については、「*CloudFormation フックユーザーガイド*」の「[Disable and enable CloudFormation Hooks](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-disable-enable.html)」を参照してください。

# 共有されているサードパーティーのプライベート拡張機能を使用する
<a name="registry-private"></a>

共有されているサードパーティーのプライベート拡張機能を使用するには、まずそれらを使用するアカウントとリージョンで、CloudFormation に*登録*する必要があります。拡張を登録すると、そのコピーがアカウントの CloudFormation レジストリにアップロードされ、アクティブ化されます。プライベート拡張を登録すると、その AWS アカウント とリージョンの CloudFormation レジストリに表示され、スタックテンプレートで使用できます。

**Topics**
+ [サードパーティーのプライベート拡張の登録のための IAM アクセス許可](#registry-register-permissions)
+ [プライベート拡張機能を操作するためによく使用される AWS CLI コマンド](#registry-commonly-used-commands-private-extensions)
+ [アカウントにサードパーティーのプライベート拡張機能を登録する](registry-register-private-extension.md)
+ [アカウントからのサードパーティープライベート拡張機能の削除](registry-private-deregister-extension.md)

## サードパーティーのプライベート拡張の登録のための IAM アクセス許可
<a name="registry-register-permissions"></a>

プライベート拡張の登録の一環として、拡張の登録の一環として、拡張のプロジェクトパッケージを含む Amazon S3 バケットを指定します。このパッケージには、登録する拡張に必要なソースファイルが含まれています。拡張を登録するユーザーは、Amazon S3 バケット内のプロジェクトパッケージにアクセスできる必要があります。これを行うには、ユーザーは、拡張パッケージに対する [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html) アクセス許可を持っている必要があります。

これは、AWS CLI の [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html) コマンドを使用している場合でも、CloudFormation CLI の [https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html) コマンドを使用している場合でも当てはまります。

詳細については、「*サービス認可リファレンス*」の「[Actions, resources, and condition keys for Amazon S3](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)」を参照してください。

## プライベート拡張機能を操作するためによく使用される AWS CLI コマンド
<a name="registry-commonly-used-commands-private-extensions"></a>

プライベート拡張機能を操作するために一般的に使用されるコマンドは次のとおりです。
+  [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html) は、プライベート拡張機能をアカウントに登録します。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.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-configuration.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-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/deregister-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html) は、アカウントからプライベート拡張機能または拡張機能バージョンを削除します。

# アカウントにサードパーティーのプライベート拡張機能を登録する
<a name="registry-register-private-extension"></a>

このトピックでは、アカウントで使用できるように、共有されているサードパーティーのプライベート拡張機能を登録するステップについて説明します。

**注記**  
続行する前に、プライベート拡張を登録するために必要な [IAM アクセス許可](registry-private.md#registry-register-permissions) があることを確認してください。

**共有されているプラ​​イベート拡張機能を登録するには (AWS CLI)**

1. アカウントに登録するプライベート拡張のプロジェクトパッケージを含む Amazon S3 バケットを見つけます。

1. [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/register-type.html) コマンドを使用して、アカウントにプライベート拡張機能を登録します。

   例えば、次のコマンドは、指定した AWS アカウント に `My::Resource::Example` リソースタイプを登録します。

   ```
   aws cloudformation register-type --type RESOURCE \
     --type-name My::Resource::Example \
     --schema-handler-package [s3 object path] --region us-west-2
   ```

   `RegisterType` は非同期オペレーションであり、登録リクエストの進行状況を追跡するために使用できる登録トークンを返します。

   ```
   {
       "RegistrationToken": "f5525280-104e-4d35-bef5-8f1fexample"
   }
   ```

   拡張がその機能の一部として AWS API を呼び出す場合は、これらの AWS API を呼び出すために必要なアクセス許可を含む IAM 実行ロールを作成し、アカウントにその実行ロールをプロビジョニングする必要があります。その後、`--execution-role-arn` オプションを使用してこの実行ロールを指定できます。CloudFormation は、その実行ロールを引き受け、リソースタイプに適切な認証情報を提供します。

   ```
   --execution-role-arn arn:aws:iam::123456789012:role/MyIAMRole
   ```

1. (オプション) 登録トークンを [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type-registration.html) コマンドとともに使用して、登録リクエストの進行状況を追跡します。

   CloudFormation が登録リクエストを完了すると、リクエストの進捗ステータスが `COMPLETE` に設定されます。

   次の例では、上記の `describe-type-registration` コマンドによって返された登録トークンを使用して、登録ステータス情報を返します。

   ```
   aws cloudformation describe-type-registration \
     --registration-token f5525280-104e-4d35-bef5-8f1fexample \
     --region us-west-2
   ```

   このコマンドは、以下の出力を返します。

   ```
   {
       "ProgressStatus": "COMPLETE",
       "TypeArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Resource-Example",
       "Description": "Deployment is currently in DEPLOY_STAGE of status COMPLETED; ",
       "TypeVersionArn": "arn:aws:cloudformation:us-west-2:123456789012:type/resource/My-Resource-Example/00000001"
   }
   ```

**重要**  
登録する拡張機能がフックの場合、この次のステップが必要です。`HookInvocationStatus` プロパティには `ENABLED` を指定する必要があります。このオペレーションにより、フックのスキーマ `properties` セクションで定義されているフックのプロパティが有効になります。詳細については、「*CloudFormation フックのユーザーガイド*」の「[フック設定スキーマ構文リファレンス](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html)」を参照してください。

**フックの設定データを指定するには (AWS CLI)**

1. フックの ARN を取得し、保存します。AWS マネジメントコンソール または AWS CLI を使用してフックの ARN を取得できます。詳細については、「[CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)」を参照してください。

   ```
   export HOOK_TYPE_ARN="arn:aws:cloudformation:us-west-2:123456789012:type/hook/Organization-Service-Hook/"
   ```

1. [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) コマンドを使用して、構成データを指定します。`--configuration` に渡す JSON は、フックの構成スキーマに対して検証する必要があります。フックをアクティブ化するには、`HookConfiguration` セクションで `HookInvocationStatus` プロパティを `ENABLED` に設定する必要があります。

   ```
   aws cloudformation set-type-configuration \
     --configuration "{"CloudFormationConfiguration":{"HookConfiguration":{"HookInvocationStatus": "ENABLED", "FailureMode": "FAIL", "Properties":{}}}}" \
     --type-arn $HOOK_TYPE_ARN --region us-west-2
   ```

   詳細については、「*CloudFormation フックのユーザーガイド*」の「[フック設定スキーマ構文リファレンス](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html)」を参照してください。

# アカウントからのサードパーティープライベート拡張機能の削除
<a name="registry-private-deregister-extension"></a>

サードパーティのプライベート拡張または拡張機能バージョンを削除するには、[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html) コマンドを使用します。

特定の拡張機能バージョン、または拡張機能全体を登録解除できます。拡張機能の登録を解除するには、その拡張機能のすべての登録済みバージョンを個別に登録解除する必要があります。拡張機能に登録されたバージョンが 1 つだけの場合、そのバージョンの登録を解除すると、拡張機能自体の登録が解除されます。拡張機能のデフォルトバージョンを登録解除することはできません。ただし、その拡張機能の唯一の登録済みバージョンの場合は別で、その場合、その拡張機能自体も登録解除されます。

**警告**  
プライベート拡張機能の登録は解除できません。このアクションにより、以下のようになります。  
拡張機能をすべての CloudFormation オペレーションで使用できないようにする。
この拡張機能を使用する今後のスタック更新で失敗する可能性がある (モジュールとリソースタイプの場合)。拡張機能は後でプライベートで再登録できますが、CloudFormation が以前のバージョンに依存している場合、これが失敗の原因となる可能性があります。
続行する前に、[[list-stacks]](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/list-stacks.html) コマンドと [[get-template]](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/get-template.html) コマンドを使用して、アクティブなスタックがこの拡張機能を使用していないことを確認します。

## 拡張機能の登録解除コマンドの例
<a name="registry-deregister-type-commands"></a>

このセクションでは、プライベート拡張機能の登録を解除するさまざまな方法を示す例を紹介します。

**タイプ名による登録解除**  
[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/deregister-type.html) コマンドを `--type` および `--type-name` オプションとともに使用して、拡張機能の登録を解除します。

```
aws cloudformation deregister-type \
  --type MODULE \
  --type-name My::S3::SampleBucket::MODULE
```

**タイプ名とバージョンによる登録解除**  
特定のバージョンの拡張機能の登録を解除するには、 コマンドで `--version-id` オプションを指定します。

```
aws cloudformation deregister-type \
  --type MODULE \
  --type-name My::S3::SampleBucket::MODULE \
  --version-id 00000001
```

**ヒント**  
最初に別のバージョンの拡張機能をデフォルトとして設定するには、[set-type-default-version](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/set-type-default-version.html) コマンドを使用します。

**ARN による登録解除**  
`--arn` オプションを使用して拡張機能の ARN を指定し、登録を解除します。

```
aws cloudformation deregister-type \
  --arn arn:aws:cloudformation:us-west-2:123456789012:type/resource/Organization-Service-Resource
```

# アカウントの拡張機能の構成データを編集する
<a name="registry-set-configuration"></a>

このトピックでは、特定のリージョン内のアカウントで拡張機能の構成データを編集するためのガイダンスを提供します。拡張機能には、特定のアカウントとリージョンの拡張のすべてのインスタンスに適用される設定プロパティを含めることができます。これらは、拡張機能の作成者が拡張機能の設定定義で定義します。拡張の構成定義に必要なプロパティがある場合、アカウントとリージョンで拡張を使用する前に、それらのプロパティを指定する必要があります。

拡張機能の開発時に設定定義を定義する方法の詳細については、以下のドキュメントを参照してください。
+ [フック設定スキーマ構文リファレンス](https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hook-configuration-schema.html)
+ [拡張のアカウントレベルの構成を定義する](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration)

**Topics**
+ [動的リファレンスを使用するために必要なアクセス許可](#registry-set-configuration-considerations)
+ [拡張機能の構成データを編集する (コンソール)](#registry-set-configuration-procedure-console)
+ [拡張機能の構成データを編集する (AWS CLI)](#registry-set-configuration-procedure-cli)

## 動的リファレンスを使用するために必要なアクセス許可
<a name="registry-set-configuration-considerations"></a>

構成データに、AWS Systems Manager または AWS Secrets Manager に格納されている値への動的参照が含まれている場合では、タイプをプロビジョニングするために使用されるロール (スタックの作成や更新など) には、その値を取得するための適切なアクセス許可が必要です。具体的には次のとおりです。
+ 構成データに AWS Systems Manager Parameter Store に格納されたパラメータが含まれている場合、タイプをプロビジョニングするために使用されるユーザーまたはロールには、[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) を呼び出すためのアクセス許可が必要です。
+ 構成データに AWS Secrets Manager に格納されたシークレットが含まれている場合、タイプをプロビジョニングするために使用されるユーザーまたはロールには、[https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html) を呼び出すための許可が必要です。

詳細については、「[動的参照を使用して他のサービスに格納されている値を取得する](dynamic-references.md)」を参照してください。

## 拡張機能の構成データを編集する (コンソール)
<a name="registry-set-configuration-procedure-console"></a>

このセクションの手順に従い、コンソールを使用して次の操作を実行します。
+ 拡張機能の現在の構成データを表示する
+ アカウントの拡張機能構成データを更新する

**拡張機能の現在の構成データを表示するには**

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

1. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

1. ナビゲーションペインの **[レジストリ]** の下で、**[アクティブ化済みの拡張機能]** を選択します。

1. 表示する拡張機能を見つけます。詳細については、「[CloudFormation レジストリで使用可能でアクティブ化された拡張を表示する](registry-view.md)」を参照してください。

1. 拡張を選択して、拡張の詳細を表示します。

1. [extension details] (拡張の詳細) ページで、**[Configuration]** (構成) タブを選択します。

1. **[Configuration schema]** (構成スキーマ) タブを展開して、拡張に定義されている構成スキーマを確認します。

1. **[Configuration]** (構成) タブを展開して、この拡張に設定した現在の構成を確認します。

**拡張機能の構成データを更新するには**

1. 拡張の詳細ページで、[**Configuration (構成)**] タブから [**Edit configuration (構成を編集する)**] を選択します。

   または、[**アクション**] から、[**編集**] を選択し、次に [**Edit configuration (構成を編集する)**] を選択します。

   CloudFormation は、**[Configure extension]** (拡張の設定) ページを表示します。拡張の現在の構成定義スキーマを確認するには、**[View configuration schema]** (構成のスキーマの表示) がオンになっていることを確認してください。

1. **[Configuration JSON]** (構成 JSON) テキストボックスに、この拡張に設定する構成スキーマを表す JSON 文字列を入力します。**[Configuration schema]** (構成スキーマ) で定義されたスキーマに対して検証する必要があります

1. [**Configure extension (拡張の設定)**] を選択します。

## 拡張機能の構成データを編集する (AWS CLI)
<a name="registry-set-configuration-procedure-cli"></a>

このセクションの手順に従い、AWS CLI を使用して次の操作を実行します。
+ 拡張機能の現在の構成データを表示する
+ アカウントの拡張機能構成データを更新する

**拡張機能の現在の構成データを表示するには**
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/describe-type.html) コマンドを使用して、拡張機能の詳細情報を返します。出力の `ConfigurationSchema` 要素には、指定されたリージョンの拡張の現在の構成定義が含まれます。

  または、[https://docs.aws.amazon.com/cli/latest/reference/cloudformation/batch-describe-type-configurations.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/batch-describe-type-configurations.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) コマンドを使用して、構成データを指定します。`--configuration` に渡す JSON は、拡張の構成定スキーマに対して検証する必要があります。

  次の例では、**set-type-configuration** コマンドは `--configuration` オプションに対し構成データ *`"{"CredentialKey": "testUserCredential"}"`* を指定します。

  ```
  aws cloudformation set-type-configuration --type RESOURCE \
    --type-name My::Resource::Example \
    --configuration-alias default \
    --configuration "{"CredentialKey": "testUserCredential"}" \
    --region us-west-2
  ```

# AWS Config でリソースタイプを記録する
<a name="registry-config-record"></a>

AWS Config がプライベートリソースタイプを自動的に追跡し、それらのリソースに対する変更を*構成項目*として記録するように指定できます。これにより、構成のベストプラクティスを検証するための AWS Config ルール ルールを作成するだけでなく、これらのプライベートリソースタイプの構成履歴を表示することができます。AWS Config はフック拡張に必要です。

AWS Config でプライベートリソースタイプを自動的に追跡するには:
+ CloudFormation を使用してリソースを管理します。これには、CloudFormation によるすべてのリソースの作成、更新、削除オペレーションの実行が含まれます。
**注記**  
IAM ロールを使用してスタックオペレーションを実行する場合、その IAM ロールには次の AWS Config アクションを呼び出すためのアクセス権限が必要です。  
[PutResourceConfig](https://docs.aws.amazon.com/config/latest/APIReference/API_PutResourceConfig.html)
[DeleteResourceConfig](https://docs.aws.amazon.com/config/latest/APIReference/API_DeleteResourceConfig.html)
+ すべてのリソースタイプを記録するように AWS Config を設定します。詳細については、「*AWS Config デベロッパーガイド*」の「[AWS CLI を使用したサードパーティーのリソースの記録構成](https://docs.aws.amazon.com/config/latest/developerguide/customresources.html)」を参照してください。
**注記**  
AWS Config は、必須と書き込み専用の両方として定義されたプロパティを含むプライベートリソースの記録をサポートしていません。  
設計上、書き込み専用として定義されたリソースプロパティは、AWS Config 構成項目の作成に使用されるスキーマでは返されません。このため、書き込み専用と必須の両方として定義されたプロパティを含めると、必須プロパティが存在しないため、構成項目の作成が失敗します。構成項目の作成に使用されるスキーマを表示するには、[https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html) アクションの `schema` プロパティを確認します。

構成項目の詳細については、「AWS Config デベロッパーガイド」の「[Configuration items](https://docs.aws.amazon.com/config/latest/developerguide/config-concepts.html#config-items)」(構成項目) を参照してください。

## 構成項目に機密のプロパティが記録されないようにする
<a name="registry-config-record-sensitive"></a>

リソースタイプには、パスワード、シークレット、その他の機密データなど、構成項目の一部として記録したくない、機密情報とみなされるプロパティが含まれている場合があります。プロパティが構成項目に記録されないようにするには、そのプロパティをリソースタイプスキーマの `writeOnlyproperties` 一覧に含めます。ユーザーは `writeOnlyproperties` としてリストされているリソースプロパティを指定できますが、`read` または `list` リクエストでは返されなくなります。

詳細については、「*CloudFormation CLI ユーザーガイド*」の「[https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-writeonlyproperties](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html#schema-properties-writeonlyproperties)」を参照してください。