

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

# 使用 Amazon Neptune 的服務連結角色
<a name="security-iam-service-linked-roles"></a>

Amazon Neptune 使用 AWS Identity and Access Management (IAM)[ 服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色是直接連結至 Neptune 的一種獨特 IAM 角色類型。服務連結角色是由 Neptune 預先定義，並包含該服務代表您呼叫其他 AWS 服務所需的所有許可。

**重要**  
對於某些管理功能，Amazon Neptune 使用與 Amazon RDS 共用的操作技術。這包括*服務連結角色*和管理 API 許可。

服務連結角色可讓您更輕鬆使用 Neptune，因為您不需要手動新增必要許可。Neptune 定義其服務連結角色的許可，除非另有定義，否則僅有 Neptune 可以擔任其角色。定義的許可包括信任政策和許可政策，並且該許可政策不能附加到任何其他 IAM 實體。

您必須先刪除角色的相關資源，才能刪除角色。如此可保護您的 Neptune 資源，避免您不小心移除資源的存取許可。

如需有關支援服務連結角色的其他 服務的資訊，請參閱[AWS 使用 IAM 的服務](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)，並在**服務連結角色**欄中尋找具有**是**的服務。選擇具有連結的**是**，以檢視該服務的服務連結角色文件。

## Neptune 的服務連結角色許可
<a name="service-linked-role-permissions"></a>

Neptune 使用`AWSServiceRoleForRDS`服務連結角色，以允許 Neptune 和 Amazon RDS 代表資料庫執行個體呼叫 AWS 服務。`AWSServiceRoleForRDS` 服務連結角色信任 `rds.amazonaws.com` 服務來擔任該角色。

此角色許可政策允許 Neptune 對指定資源完成下列動作：
+ 在 `ec2` 上的動作：
  + `AssignPrivateIpAddresses`
  + `AuthorizeSecurityGroupIngress`
  + `CreateNetworkInterface`
  + `CreateSecurityGroup`
  + `DeleteNetworkInterface`
  + `DeleteSecurityGroup`
  + `DescribeAvailabilityZones`
  + `DescribeInternetGateways`
  + `DescribeSecurityGroups`
  + `DescribeSubnets`
  + `DescribeVpcAttribute`
  + `DescribeVpcs`
  + `ModifyNetworkInterfaceAttribute`
  + `RevokeSecurityGroupIngress`
  + `UnassignPrivateIpAddresses`
+ 在 `sns` 上的動作：
  + `ListTopic`
  + `Publish`
+ 在 `cloudwatch` 上的動作：
  + `PutMetricData`
  + `GetMetricData`
  + `CreateLogStream`
  + `PullLogEvents`
  + `DescribeLogStreams`
  + `CreateLogGroup`

**注意**  
您必須設定許可，IAM 實體 (如使用者、群組或角色) 才可建立、編輯或刪除服務連結角色。您可能會遇到下列錯誤訊息：  
無法建立資源。請確認您擁有建立服務連結角色的許可。否則請等待，然後再試一次。  
如果您看到此訊息，請確認您已啟用以下許可：  

```
{
    "Action": "iam:CreateServiceLinkedRole",
    "Effect": "Allow",
    "Resource": "arn:aws:iam::*:role/aws-service-role/rds.amazonaws.com/AWSServiceRoleForRDS",
    "Condition": {
        "StringLike": {
            "iam:AWSServiceName":"rds.amazonaws.com"
        }
    }
}
```
 如需詳細資訊，請參閱《*IAM 使用者指南*》中的[服務連結角色許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#service-linked-role-permissions)。

## 建立 Neptune 的服務連結角色
<a name="create-service-linked-role"></a>

您不需要手動建立服務連結角色，當您建立執行個體或叢集時，Neptune 會為您建立服務連結角色。

**重要**  
若要進一步了解，請參閱《IAM 使用者指南》**中的[我的 IAM 帳戶中出現新角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_new-role-appeared)。

若您刪除此服務連結角色，之後需要再次建立，您可以在帳戶中使用相同程序重新建立角色。當您建立執行個體或叢集時，Neptune 會再次為您建立服務連結角色。

## 編輯 Neptune 的服務連結角色
<a name="edit-service-linked-role"></a>

Neptune 不允許您編輯 `AWSServiceRoleForRDS` 服務連結角色。因為有各種實體可能會參考服務連結角色，所以您無法在建立角色之後變更角色名稱。然而，您可使用 IAM 來編輯角色描述。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[編輯服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#edit-service-linked-role)。

## 刪除 Neptune 的服務連結角色
<a name="delete-service-linked-role"></a>

若您不再使用需要服務連結角色的功能或服務，我們建議您刪除該角色。如此一來，您就沒有未主動監控或維護的未使用實體。不過，您必須先刪除您的所有執行個體和叢集，才能刪除關聯的服務連結角色。

### 刪除之前先清除服務連結角色
<a name="delete-service-linked-role-cleanup"></a>

您必須先確認服務連結角色沒有作用中的工作階段，並移除該角色使用的資源，之後才能使用 IAM 將其刪除。

**檢查服務連結角色是否於 IAM 主控台有作用中的工作階段**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 的 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**角色**。然後選擇 `AWSServiceRoleForRDS` 角色的名稱 (而非核取方塊)。

1. 在所選角色的 **Summary (摘要)** 頁面中，選擇 **Access Advisor (存取 Advisor)** 分頁。

1. 在 **Access Advisor (存取 Advisor)** 分頁中，檢閱服務連結角色的近期活動。
**注意**  
如果您不確定 Neptune 是否正在使用 `AWSServiceRoleForRDS` 角色，可嘗試刪除該角色。如果服務正在使用該角色，則刪除會失敗，而您可以檢視正在使用該角色的 區域。如果服務正在使用該角色，您必須先等到工作階段結束，才能刪除該角色。您無法撤銷服務連結角色的工作階段。

如果您想要移除 `AWSServiceRoleForRDS` 角色，則必須先刪除您的*所有*執行個體和叢集。

#### 刪除您的所有執行個體
<a name="delete-service-linked-role-instances"></a>

使用下列其中一個程序來刪除您的每一個執行個體。

**刪除執行個體 (主控台)**

1. 前往 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)，開啟 Amazon RDS 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 在 **Instances (執行個體)** 清單中，選擇您要刪除的執行個體。

1. 選擇 **Instance actions** (執行個體動作)，然後選擇 **Delete** (刪除)。

1. 若出現 **Create final Snapshot? (是否建立最終快照？)** 提示訊息，請選擇 **Yes (是)** 或 **No (否)**。

1. 如果您在前一個步驟中選擇 **Yes (是)**，則對於 **Final snapshot name (最終快照名稱)**，輸入您的最終快照名稱。

1. 選擇 **刪除**。

**刪除執行個體 (AWS CLI)**  
請參閱 *AWS CLI 命令參考*中的 `[delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/neptune/delete-db-instance.html)`。

**刪除執行個體 (API)**  
請參閱 `[DeleteDBInstance](&doc-domaiAPI_DeleteDBInstance.html)`。

#### 刪除您的所有叢集
<a name="delete-service-linked-role-clusters"></a>

使用以下其中一個程序來刪除單一叢集，然後為每個叢集重複此程序。

**刪除叢集 (主控台)**

1. 登入 AWS 管理主控台，並在 [https://console.aws.amazon.com/neptune/home](https://console.aws.amazon.com/neptune/home)：// 開啟 Amazon Neptune 主控台。

1. 在 **Clusters (叢集)** 清單中，選擇您要刪除的叢集。

1. 選擇 **Cluster Actions (叢集動作)**，然後選擇 **Delete (刪除)**。

1. 選擇 **刪除**。

**刪除叢集 (CLI)**  
請參閱 *AWS CLI 命令參考*中的 `[delete-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/neptune/delete-db-cluster.html)`。

**刪除叢集 (API)**  
請參閱 `[DeleteDBCluster](API_DeleteDBCluster.html)`

您可以使用 IAM 主控台、IAM CLI 或 IAM API 刪除 `AWSServiceRoleForRDS` 服務連結角色。如需詳細資訊，請參閱《*IAM 使用者指南*》中的[刪除服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html#delete-service-linked-role)。