

# Amazon RDS の DB スナップショットを共有する
<a name="USER_ShareSnapshot"></a>

Amazon RDS を使用すると、次の方法で手動 DB スナップショットを共有できます。
+ 手動 DB スナップショットを共有すると、暗号化されているかいないかに関係なく、権限のある AWS アカウント がスナップショットをコピーできるようになります。
+ 暗号化されていない手動 DB スナップショットを共有すると、権限のある AWS アカウント が、DB インスタンスをコピーしてそこから復元するのではなく、スナップショットから DB インスタンスを直接復元できるようになります。ただし、共有され暗号化された DB スナップショットから、DB インスタンスを復元することはできません。代わりに、DB スナップショットのコピーを作成し、そのコピーから DB インスタンスを復元できます。

**注記**  
自動 DB スナップショットを共有するには、自動 DB スナップショットをコピーしてそのコピーを共有することで、手動スナップショットを作成します。このプロセスは、AWS Backup で生成されたリソースにも適用されます。

スナップショットのコピーの詳細については、「[Amazon RDS の DB スナップショットのコピー](USER_CopySnapshot.md)」を参照してください。DB スナップショットから DB インスタンスを復元する方法については、「[DB インスタンスへの復元](USER_RestoreFromSnapshot.md)」を参照してください。

手動スナップショットを最大 20 のその他の AWS アカウント と共有することができます。

手動スナップショットを他の AWS アカウントと共有する場合には、以下の制限が適用されます。
+ AWS Command Line Interface (AWS CLI) または Amazon RDS API を使用して共有スナップショットから DB インスタンスを復元する際、スナップショット識別子として共有スナップショットの Amazon リソースネーム (ARN) を指定する必要があります。
+ 固定オプションまたは永続オプションを持つオプショングループを使用する DB スナップショットを共有することはできません。`Timezone` または `OLS` オプション (あるいはその両方) を持つ Oracle DB インスタンスを除きます。

  *固定オプション*はオプショングループから削除できません。永続オプションを含むオプショングループは、そのオプショングループが DB インスタンスに割り当てられると、DB インスタンスから削除できなくなります。

  次の表は、固定オプションおよび永続オプションと、それらに関連する DB エンジンをリストしています。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/USER_ShareSnapshot.html)

  Oracle DB インスタンスの場合、`Timezone` または `OLS` オプション (あるいはその両方) を持つ共有 DB スナップショットをコピーできます。そのためには、DB スナップショットをコピーするときにこれらのオプションを含むターゲットオプショングループを指定します。OLS オプションは、Oracle バージョン 12.2 以降を実行している Oracle DB インスタンスに対してのみ恒久的かつ永続的です。これらのオプションの詳細については、「[Oracle のタイムゾーン](Appendix.Oracle.Options.Timezone.md)」および「[Oracle Label Security](Oracle.Options.OLS.md)」を参照してください。
+ マルチ AZ DB クラスターのスナップショットは共有できません。

公開スナップショットの共有、暗号化されたスナップショットの共有、スナップショットの共有の停止については、以下のトピックを参照してください。

**トピック**
+ [Amazon RDS の公開スナップショットの共有](USER_ShareSnapshot.Public.md)
+ [Amazon RDS の暗号化されたスナップショットの共有](share-encrypted-snapshot.md)
+ [Amazon RDS のスナップショット共有の停止](share-snapshot-stop.md)

## スナップショットの共有
<a name="USER_ShareSnapshot.Sharing"></a>

AWS マネジメントコンソール、AWS CLI、または RDS API を使用して、DB スナップショットを共有できます。

### コンソール
<a name="USER_ShareSnapshot.Console"></a>

Amazon RDS コンソールを使用して、手動 DB スナップショットを最大 20 の AWS アカウント と共有することができます。また、コンソールを使用して、手動 スナップショットの 1 つ以上のアカウントとの共有を停止することもできます。

**Amazon RDS コンソールを使用して、手動 DB スナップショットを共有するには**

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

1. ナビゲーションペインで、[**Snapshots**] を選択します。

1. 共有する手動スナップショットを選択します。

1. **[Actions]** (アクション) で、**[Share snapshot]** (スナップショットの共有) を選択します。

1. [**DB snapshot visibility**] で次のいずれかのオプションを選択します。
   + ソースが暗号化されていない場合、**[パブリック]** を選択して、すべての AWS アカウントが DB インスタンスをマニュアル DB スナップショットから復元できるようにするか、**[プライベート]** を選択して、指定した AWS アカウントだけが、DB インスタンスをマニュアル DB スナップショットから復元できるようにします。
**警告**  
**[DB スナップショットの可視性]** を **[パブリック]** に設定した場合、すべての AWS アカウントが手動 DB スナップショットから DB インスタンスを復元し、データにアクセスできるようになります。プライベート情報を含む手動 DB スナップショットは、[**Public**] として共有しないでください。  
詳細については、「[Amazon RDS の公開スナップショットの共有](USER_ShareSnapshot.Public.md)」を参照してください。
   + 出典 DB クラスターが暗号化されている場合、暗号化されているスナップショットはパブリックとして共有できないため、[**DB snapshot visibility**] が [**Private**] に設定されます。
**注記**  
デフォルトの AWS KMS key で暗号化されたスナップショットは共有できません。この問題を回避する方法については、「[Amazon RDS の暗号化されたスナップショットの共有](share-encrypted-snapshot.md)」を参照してください。

1. **[AWS アカウント ID]** では、手動スナップショットからの DB インスタンスの復元を許可するアカウントの AWS アカウント 識別子を入力してから、**[追加]** を選択します。この操作を繰り返して、AWS アカウント 識別子を最大 20 AWS アカウント まで含めます。

   許可されたアカウントのリストに AWS アカウント 識別子を誤って追加した場合には、正しくない AWS アカウント 識別子の右側にある **[削除]** を選択すれば、削除することができます。  
![手動 DB スナップショットの復元を AWS アカウント に許可する](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/images/ShareSnapshot_add.png)

1. 手動スナップショットの復元を許可するすべての AWS アカウント の識別子を追加した後、**[保存]** を選択して、変更を保存します。

### AWS CLI
<a name="USER_ShareSnapshot.CLI"></a>

DB スナップショットを共有するには、`aws rds modify-db-snapshot-attribute` コマンドを使用します。`--values-to-add` のパラメータを使用して、手動スナップショットの復元が許可されている AWS アカウント のための ID リストを追加します。

**Example スナップショットを 1 つのアカウントで共有する**  
次の例では、AWS アカウント 識別子 `123456789012` が `db7-snapshot` という名前の DB スナップショットを復元できるようにします。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-snapshot-attribute \
--db-snapshot-identifier db7-snapshot \
--attribute-name restore \
--values-to-add 123456789012
```
Windows の場合:  

```
aws rds modify-db-snapshot-attribute ^
--db-snapshot-identifier db7-snapshot ^
--attribute-name restore ^
--values-to-add 123456789012
```

**Example 複数のアカウントでスナップショットを共有する**  
次の例では、2 つの AWS アカウント 識別子 `111122223333` および `444455556666` が `manual-snapshot1` という名前の DB スナップショットを復元できるようにします。  
Linux、macOS、Unix の場合:  

```
aws rds modify-db-snapshot-attribute \
--db-snapshot-identifier manual-snapshot1 \
--attribute-name restore \
--values-to-add {"111122223333","444455556666"}
```
Windows の場合:  

```
aws rds modify-db-snapshot-attribute ^
--db-snapshot-identifier manual-snapshot1 ^
--attribute-name restore ^
--values-to-add "[\"111122223333\",\"444455556666\"]"
```
Windows コマンドプロンプトを使用する場合、JSON コードでは、二重引用符 (") の前にバックスラッシュ (\\) を付けてエスケープする必要があります。

スナップショットの復元が有効になっている AWS アカウント を一覧表示するには、[https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-snapshot-attributes.html) AWS CLI コマンドを使用します。

### RDS API
<a name="USER_ShareSnapshot.API"></a>

Amazon RDS API を使用することで、手動 DB スナップショットを他の AWS アカウント と共有することもできます。そのためには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBSnapshotAttribute.html) オペレーションを呼び出します。`AttributeName` に `restore` を指定し、`ValuesToAdd` パラメータを使用して、手動 スナップショットの復元が許可されている AWS アカウント の ID のリストを追加します。

手動スナップショットをパブリックにして、すべての AWS アカウント による復元を可能にするには、値 `all` を使用します。ただし、すべての AWS アカウント には利用させたくないプライベート情報を含む手動スナップショットについては、値 `all` を追加しないように注意してください。また、暗号化されているスナップショットでは `all` を指定しないでください。そのようなスナップショットをパブリックにすることはできないためです。

スナップショットの復元が許可されているすべての AWS アカウント を一覧表示するには、[https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBSnapshotAttributes.html) API 操作を使用します。