

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

# 設定原生備份與還原
<a name="SQLServer.Procedural.Importing.Native.Enabling"></a>

若要設定原生備份與還原，您需要設定三個元件：

1. 用來儲存備份檔案的 Amazon S3 儲存貯體。

   您須有 S3 儲存貯體用於備份檔案，然後上傳您要遷移到 RDS 的備份。如果您已經有 Amazon S3 儲存貯體，則可直接使用。如果沒有，您可以[建立儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CreatingaBucket.html)。或者，當您使用 `SQLSERVER_BACKUP_RESTORE` 新增 AWS 管理主控台選項時，可以選擇替您建立新的儲存貯體。

   如需有關使用 S3 的詳細資訊，請參閱 [Amazon Simple Storage Service 使用者指南](https://docs.aws.amazon.com/AmazonS3/latest/userguide/)。

1. 存取儲存貯體的 AWS Identity and Access Management (IAM) 角色。

   如果您已經有 IAM 角色，則可直接使用。當您使用 AWS 管理主控台新增 `SQLSERVER_BACKUP_RESTORE` 選項時，可以選擇替您建立新的 IAM 角色。或者，您也可以手動建立新的。

   如果您想要手動建立新的 IAM 角色，請採取下一節所討論的方法。如果您想要將信任關係和許可政策連接到現有 IAM 角色，請執行相同的動作。

1. 在資料庫執行個體的選項群組中新增的 `SQLSERVER_BACKUP_RESTORE` 選項。

   若要在資料庫執行個體上啟用原生備份與還原，請將 `SQLSERVER_BACKUP_RESTORE` 選項新增至資料庫執行個體上的選項群組。如需詳細資訊和指示，請參閱[SQL Server 對原生備份與還原的支援](Appendix.SQLServer.Options.BackupRestore.md)。

## 手動建立原生備份與還原的 IAM 角色
<a name="SQLServer.Procedural.Importing.Native.Enabling.IAM"></a>

如果您要手動建立新的 IAM 角色，以用於原生備份和還原，您可以這麼做。在此情況下，您建立角色將 Amazon RDS 服務的許可委派給 Amazon S3 儲存貯體。當您建立 IAM 角色時，您會連接信任關係和許可政策。信任關係可讓 RDS 承擔此角色。許可政策定義此角色可執行的動作。如需有關建立角色的詳細資訊，請參閱[建立角色以委派許可給 AWS 服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html)。

對於原生備份與還原功能，請使用類似本節範例的信任關係和許可政策。在下列範例中，我們使用服務原則名稱 `rds.amazonaws.com` 做為所有服務帳戶的別名。在其他範例中，我們指定 Amazon Resource Name (ARN)，以識別我們在信任政策中授予存取的另一個帳戶、使用者或角色。

建議您在資源型信任關係中使用 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 和 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 全域條件內容金鑰，將服務的許可限定於特定資來源。這是防止[混淆代理人問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)最有效的方式。

您可以同時使用全域條件內容索引鍵和包含帳號 ID 的 `aws:SourceArn` 值。在此情況下，當在相同陳述式中使用 `aws:SourceAccount` 值和 `aws:SourceArn` 裡的帳户時，兩者必須使用同樣的帳户 ID。
+ 如果您想要跨服務存取單一資源，請使用 `aws:SourceArn`。
+ 如果您想要允許該帳戶中的任何資源與跨服務使用相關聯，請使用 `aws:SourceAccount`。

在信任關係中，請務必使用 `aws:SourceArn` 全域條件內容索引鍵，其中包含存取角色的資源之完整 ARN。針對原生備份與還原，請確認同時包括資料庫選項群組和資料庫執行個體，如以下範例所示。

**Example 與原生備份與還原全域條件內容索引鍵的信任關係**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceArn": [
                        "arn:aws:rds:Region:0123456789:db:db_instance_identifier",
                        "arn:aws:rds:Region:0123456789:og:option_group_name"
                    ],
                    "aws:SourceAccount": "0123456789"
                }
            }
        }
    ]
}
```

下列範例使用 ARN 來指定資源。如需有關使用 ARN 的詳細資訊，請參閱 [Amazon Resource Name (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)。

**Example 原生備份與還原的許可政策 (無加密支援)**    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:ListBucket",
                "s3:GetBucketLocation"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
        },
        {
        "Effect": "Allow",
        "Action":
            [
                "s3:GetObjectAttributes",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
            ],
        "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
        }
    ]
}
```

**Example 原生備份與還原的許可政策 (有加密支援)**  
如果您要將備份檔案加密，請在許可政策中包含加密金鑰。如需加密金鑰的詳細資訊，請參閱 *AWS Key Management Service 開發人員指南*中的[入門](https://docs.aws.amazon.com/kms/latest/developerguide/getting-started.html)。  
您必須使用對稱加密 KMS 金鑰，為您的備份加密。Amazon RDS 不支援非對稱 KMS 金鑰。如需詳細資訊，請參閱《*AWS Key Management Service 開發人員指南*》中的[建立對稱加密 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)。  
IAM 角色也必須是 KMS 金鑰的金鑰使用者和金鑰管理員，也就是說，這必須在金鑰政策中指定。如需詳細資訊，請參閱《*AWS Key Management Service 開發人員指南*》中的[建立對稱加密 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)。  
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessToKey",
      "Effect": "Allow",
      "Action": [
        "kms:DescribeKey",
        "kms:GenerateDataKey",
        "kms:Encrypt",
        "kms:Decrypt"
      ],
      "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
    },
    {
      "Sid": "AllowAccessToS3",
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket"
    },
    {
      "Sid": "GetS3Info",
      "Effect": "Allow",
      "Action": [
        "s3:GetObjectAttributes",
        "s3:GetObject",
        "s3:PutObject",
        "s3:ListMultipartUploadParts",
        "s3:AbortMultipartUpload"
      ],
      "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
    }
  ]
}
```

**Example 在沒有加密支援的情況下，使用存取點進行原生備份和還原的許可政策**  
使用 S3 存取點所需的動作與 S3 儲存貯體相同。資源路徑已更新以符合 S3 存取點 ARN 模式。  
存取點必須設定為使用**網路原始伺服器：網際網路**，因為 RDS 不會發佈私有 VPCs。來自 RDS 執行個體的 S3 流量不會經過公有網際網路，因為它會經過私有 VPCs。  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetBucketLocation"
                ],
            "Resource": [
            "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap",
            "arn:aws:s3:::underlying-bucket"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObjectAttributes",
                "s3:GetObject",
                "s3:PutObject",
                "s3:ListMultipartUploadParts",
                "s3:AbortMultipartUpload"
                ],
                "Resource": [
                "arn:aws:s3:us-east-1:111122223333:accesspoint/amzn-s3-demo-ap/*",
                    "arn:aws:s3:::underlying-bucket/*"
                    ]
                }
            ]   
}
```

**Example 使用無加密支援的目錄儲存貯體存取點進行原生備份和還原的許可政策**  
目錄儲存貯體使用與一般用途儲存貯體不同的[工作階段型授權機制](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-express-authenticating-authorizing.html)，因此原生備份還原的唯一必要許可是儲存貯體層級的「s3express：CreateSession」許可。若要設定物件層級存取，您必須將[存取點用於目錄儲存貯](https://docs.aws.amazon.com//AmazonS3/latest/userguide/access-points-directory-buckets-policies.html)體。  
存取點必須設定為使用**網路原始伺服器：網際網路**，因為 RDS 不會發佈私有 VPCs。來自 RDS 執行個體的 S3 流量不會經過公有網際網路，因為它會經過私有 VPCs。  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement":
    [
        {
        "Effect": "Allow",
        "Action": "s3express:CreateSession",
        "Resource": 
            [
                "arn:aws:s3express:us-east-1:111122223333:accesspoint/amzn-s3-demo-accesspoint--use1-az6--xa-s3",
                "arn:aws:s3express:us-east-1:111122223333:bucket/amzn-s3-demo-bucket--use1-az6--x-s3"
            ]
        }
    ]
}
```