本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對 MemoryDB 使用服務連結角色
MemoryDB 使用 AWS Identity and Access Management (IAM) 服務連結角色 。服務連結角色是直接連結至 AWS 服務的唯一IAM角色類型,例如 MemoryDB 。MemoryDB 服務連結角色是由 MemoryDB 預先定義。此角色包含服務需要的所有許可,以代您來呼叫其他的 AWS 服務。
服務連結角色可讓您更輕鬆地設定 MemoryDB,因為您不需要手動新增必要的許可。角色已存在於 AWS 您的帳戶中,但會連結至 MemoryDB 使用案例,並具有預先定義的許可。只有 MemoryDB 可以擔任這些角色,只有這些角色可以使用預先定義的許可政策。您必須先刪除角色的相關資源,才能刪除角色。這可保護您的 MemoryDB 資源,因為您不會不小心移除存取資源的必要許可。
如需支援服務連結角色的其他 服務的資訊,請參閱服務連結角色欄中AWS 使用的服務IAM,並尋找具有是 的服務。選擇具有連結的是,以檢視該服務的服務連結角色文件。
內容
MemoryDB 的服務連結角色許可
MemoryDB 使用名為 的服務連結角色 AWSServiceRoleForMemoryDB – 此政策允許 MemoryDB 視需要代表您管理 AWS 資源,以管理您的叢集。
AWSServiceRoleForMemoryDB 服務連結角色許可政策允許 MemoryDB 對指定的資源完成下列動作:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateTags" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:CreateAction": "CreateNetworkInterface" }, "ForAllValues:StringEquals": { "aws:TagKeys": [ "AmazonMemoryDBManaged" ] } } }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:*:*:network-interface/*", "arn:aws:ec2:*:*:subnet/*", "arn:aws:ec2:*:*:security-group/*" ] }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:network-interface/*", "Condition": { "StringEquals": { "ec2:ResourceTag/AmazonMemoryDBManaged": "true" } } }, { "Effect": "Allow", "Action": [ "ec2:DeleteNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "arn:aws:ec2:*:*:security-group/*" }, { "Effect": "Allow", "Action": [ "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": "*", "Condition": { "StringEquals": { "cloudwatch:namespace": "AWS/MemoryDB" } } } ] }
如需詳細資訊,請參閱AWS 受管政策:MemoryDBServiceRolePolicy。
允許IAM實體建立 AWSServiceRoleForMemoryDB 服務連結角色
將下列政策陳述式新增至該IAM實體的許可:
{ "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "iam:PutRolePolicy" ], "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*", "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}} }
允許IAM實體刪除 AWSServiceRoleForMemoryDB 服務連結角色
將下列政策陳述式新增至該IAM實體的許可:
{ "Effect": "Allow", "Action": [ "iam:DeleteServiceLinkedRole", "iam:GetServiceLinkedRoleDeletionStatus" ], "Resource": "arn:aws:iam::*:role/aws-service-role/memorydb.amazonaws.com/AWSServiceRoleForMemoryDB*", "Condition": {"StringLike": {"iam:AWS ServiceName": "memorydb.amazonaws.com"}} }
或者,您可以使用 AWS 受管政策來提供 MemoryDB 的完整存取權。
建立服務連結角色 (IAM)
您可以使用IAM主控台、 CLI或 建立服務連結角色API。
建立服務連結角色 (IAM 主控台)
您可以使用IAM主控台來建立服務連結角色。
建立服務連結角色 (主控台)
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在IAM主控台的左側導覽窗格中,選擇角色 。然後選擇 Create new role (建立新角色)。
-
在 Select type of trusted entity (選擇可信任的實體類型) 下,選擇 AWS Service (AWS 服務)。
-
在 或選取要檢視其使用案例 的服務下,選擇 MemoryDB。
選擇下一步:許可。
在 Policy name (政策名稱),請注意
MemoryDBServiceRolePolicy
是此角色的必要項目。選擇 Next: Add Tags (下一步:新增標籤)。請注意,服務連結的角色不支援標籤。選擇 Next:Review (下一步:檢閱)。
-
(選擇性) 針對 Role description (角色描述),編輯新服務連結角色的描述。
-
檢閱角色,然後選擇 Create role (建立角色)。
建立服務連結角色 (IAM CLI)
您可以從 使用 IAM操作 AWS Command Line Interface 來建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。
建立服務連結角色 (CLI)
使用以下操作:
$
aws iam create-service-linked-role --aws-service-name
memorydb.amazonaws.com
建立服務連結角色 (IAM API)
您可以使用 IAMAPI來建立服務連結角色。此角色可包含服務擔任該角色所需的信任政策與內嵌政策。
建立服務連結角色 (API)
使用 CreateServiceLinkedRole API 呼叫。在請求中指定 memorydb.amazonaws.com
的服務名稱。
編輯 MemoryDB 的服務連結角色描述
MemoryDB 不允許您編輯 AWSServiceRoleForMemoryDB 服務連結角色。因為有各種實體可能會參考服務連結角色,所以您無法在建立角色之後變更角色名稱。不過,您可以使用 編輯角色的描述IAM。
編輯服務連結角色描述 (IAM 主控台)
您可以使用 IAM 主控台來編輯服務連結角色描述。
編輯服務連結角色的說明 (主控台)
-
在IAM主控台的左側導覽窗格中,選擇角色 。
-
選擇要修改之角色的名稱。
-
在 Role description (角色說明) 的最右邊,選擇 Edit (編輯)。
-
在方塊中輸入新的描述,然後選擇 Save (儲存)。
編輯服務連結角色描述 (IAM CLI)
您可以從 使用 IAM操作 AWS Command Line Interface 來編輯服務連結角色描述。
變更服務連結角色的描述 (CLI)
-
(選用) 若要檢視角色的目前描述,請將 AWS CLI 用於IAM操作
get-role
。$
aws iam get-role --role-name AWSServiceRoleForMemoryDB
使用角色名稱,而非 ARN,以參考具有 CLI操作的角色。例如,如果角色具有下列 ARN:
arn:aws:iam::123456789012:role/myrole
,請將角色稱為myrole
。 -
若要更新服務連結角色的描述,請將 AWS CLI 用於IAM操作
update-role-description
。若為 Linux、macOS 或 Unix:
$
aws iam update-role-description \ --role-name AWSServiceRoleForMemoryDB \ --description "
new description
"針對 Windows:
$
aws iam update-role-description ^ --role-name AWSServiceRoleForMemoryDB ^ --description "
new description
"
編輯服務連結角色描述 (IAM API)
您可以使用 IAM API 編輯服務連結角色描述。
若要變更服務連結角色的描述 (API)
-
(選用) 若要檢視角色的目前描述,請使用 IAMAPI操作 GetRole.
https://iam.amazonaws.com/ ?Action=GetRole &RoleName=
AWSServiceRoleForMemoryDB
&Version=2010-05-08 &AUTHPARAMS -
若要更新角色的描述,請使用 IAMAPI操作 UpdateRoleDescription.
https://iam.amazonaws.com/ ?Action=UpdateRoleDescription &RoleName=
AWSServiceRoleForMemoryDB
&Version=2010-05-08 &Description="New description
"
刪除 MemoryDB 的服務連結角色
若您不再使用需要服務連結角色的功能或服務,我們建議您刪除該角色。如此一來,您就沒有未主動監控或維護的未使用實體。然而,務必清除您的服務連結角色,之後才能將其刪除。
MemoryDB 不會為您刪除服務連結角色。
清除服務連結角色
在您使用 IAM 刪除服務連結角色之前,請先確認角色沒有與其相關聯的資源 (叢集)。
檢查服務連結角色在IAM主控台中是否具有作用中工作階段
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在IAM主控台的左側導覽窗格中,選擇角色 。然後選擇 AWSServiceRoleForMemoryDB 角色的名稱 (而非核取方塊)。
-
在所選角色的 Summary (摘要) 頁面中,選擇 Access Advisor (存取 Advisor) 分頁。
-
在 Access Advisor (存取 Advisor) 分頁中,檢閱服務連結角色的近期活動。
刪除需要 AWSServiceRoleForMemoryDB (主控台) 的 MemoryDB 資源
-
若要刪除叢集,請參閱下列指示:
刪除服務連結角色 (IAM 主控台)
您可以使用 IAM 主控台來刪除服務連結角色。
刪除服務連結角色 (主控台)
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在IAM主控台的左側導覽窗格中,選擇角色 。然後,選擇您要刪除的角色名稱旁的核取方塊,而非名稱或資料列本身。
-
在頁面頂端的 Role (角色) 動作中選擇 Delete (刪除) 角色。
-
在確認頁面中,檢閱服務上次存取的資料,以顯示每個所選角色上次存取 AWS 服務的時間。這可協助您確認角色目前是否作用中。如果您想要繼續進行,請選擇 Yes, Delete (是,刪除) 來提交服務連結角色以進行刪除。
-
觀看IAM主控台通知,以監控服務連結角色刪除的進度。由於IAM服務連結角色刪除是非同步的,因此在您提交角色以供刪除之後,刪除任務可能會成功或失敗。如果任務失敗,您可以從通知中選擇 View details (檢視詳細資訊) 或 View Resources (檢視資源),以了解刪除失敗的原因。
刪除服務連結角色 (IAM CLI)
您可以從 使用 IAM 操作 AWS Command Line Interface 來刪除服務連結角色。
若要刪除服務連結角色 (CLI)
-
如果您不知道想要刪除的服務連結角色名稱,請輸入以下命令。此命令會列出您帳戶中的角色及其 Amazon Resource Names (ARNs)。
$
aws iam get-role --role-name
role-name
使用角色名稱,而非 ARN,以參考具有 CLI操作的角色。例如,如果角色具有 ARN
arn:aws:iam::123456789012:role/myrole
,您會將角色稱為myrole
。 -
因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取
deletion-task-id
,以檢查刪除任務的狀態。輸入下列內容,提交服務連結角色刪除請求。$
aws iam delete-service-linked-role --role-name
role-name
-
輸入下列內容來檢查刪除任務的狀態。
$
aws iam get-service-linked-role-deletion-status --deletion-task-id
deletion-task-id
刪除任務的狀態可以是
NOT_STARTED
、IN_PROGRESS
、SUCCEEDED
或FAILED
。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。
刪除服務連結角色 (IAM API)
您可以使用 IAMAPI刪除服務連結角色。
若要刪除服務連結角色 (API)
-
若要提交服務連結卷的刪除請求,請呼叫 DeleteServiceLinkedRole。 在請求中,指定角色名稱。
因為無法刪除正在使用或具有相關聯資源的服務連結角色,所以您必須提交刪除要求。如果不符合這些條件,則可以拒絕該請求。您必須從回應中擷取
DeletionTaskId
,以檢查刪除任務的狀態。 -
若要檢查刪除的狀態,請呼叫 GetServiceLinkedRoleDeletionStatus。 在 請求中,指定
DeletionTaskId
。刪除任務的狀態可以是
NOT_STARTED
、IN_PROGRESS
、SUCCEEDED
或FAILED
。如果刪除失敗,則呼叫會傳回失敗原因,以進行疑難排解。