如何使用 IAM 角色從跨帳戶 Amazon EC2 執行個體發佈 Amazon SNS 主題?
2 分的閱讀內容
0
我想從另一個 AWS 帳戶中的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體發佈 Amazon Simple Notification Service (Amazon SNS) 主題。我想將 AWS Identity and Access Management (IAM) 角色用於使用公共子網路的 EC2 執行個體。
解決方法
**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
設定含有執行個體的帳戶
請完成以下步驟:
- 建立 IAM 政策,並授予發佈到 SNS 主題的權限。政策範例:
**注意:**將 us-east-1 替換為您的 AWS 區域,並將 123456789012 替換為您的帳戶 ID。{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "sns:Publish", "Resource": "arn:aws:sns:us-east-1:123456789012:cross-account-ec2-sns" } ] } - 建立 IAM 角色,供執行個體使用,並使用類似 cross-acc-ec2-sns-publish-role 的名稱。接著,將政策附加至您的 IAM 角色。
- 在可存取網際網路的公共子網路中啟動執行個體。
將 IAM 角色附加至您的執行個體
請完成以下步驟:
- 開啟 Amazon EC2 console (Amazon EC2 主控台)。
- 在導覽窗格中,選擇 Instances (執行個體)。
- 選擇您的執行個體,例如 cross-acc-ec2-sns-publish-role,然後選擇 Actions (動作)。
- 選取 Security (安全性),然後選擇 Modify IAM role (修改 IAM 角色)。
- 選取您建立的 IAM 角色,然後選擇 Save (儲存)。
**注意:**若要疑難排解執行個體的網際網路連線問題,請參閱為什麼我的 Amazon EC2 執行個體無法透過網際網路閘道存取網際網路?
設定含有 SNS 主題的帳戶
執行以下步驟來建立 SNS 主題,並新增權限以允許 Amazon EC2 IAM 角色執行 Publish 動作:
- 建立 SNS 主題,並使用類似 cross-account-ec2-sns 的名稱。
- 將端點訂閱至您的主題,然後確認訂閱
- 開啟 Amazon SNS console (Amazon SNS 主控台)。
- 在導覽窗格中,選擇 Topics (主題),然後選擇您要發佈到的 SNS 主題。
- 選擇 Access policy (存取政策) 索引標籤。
- 在 Details (詳細資訊) 下,選擇 Edit (編輯)。
- 展開 Access policy (存取政策) 區段,然後輸入以下 SNS 存取政策:
**注意:**將 us-east-1 替換為您的區域,將 123456789012 替換為您的帳戶 ID,並將 111122223333 替換為 IAM 使用者 ID。{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:Publish", "SNS:Receive" ], "Resource": "arn:aws:sns:us-east-1: 123456789012:cross-account-ec2-sns", "Condition": { "StringEquals": { "AWS:SourceOwner": "123456789012" } } }, { "Sid": "grant-65864586-publish-and-listsubscriptionsbytopic", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam:: 111122223333:role/cross-acc-ec2-sns-role" }, "Action": [ "sns:Publish", "sns:ListSubscriptionsByTopic" ], "Resource": "arn:aws:sns:us-east-1:123456789012:cross-account-ec2-sns" } ] } - 選擇 Save changes (儲存變更)。
從您的執行個體發佈通知並測試組態
請完成以下步驟:
- 使用擁有執行個體的帳戶開啟 Amazon EC2 console (Amazon EC2 主控台)。
- 連線至您的執行個體。如需 Windows 執行個體,請參閱使用 RDP 連線至您的 Windows 執行個體。如需 Linux 執行個體,請參閱使用 SSH 連線至您的 Linux 執行個體。
- 執行以下 publish AWS CLI 命令來執行測試查詢:
**注意:**將 us-east-1 替換為您的區域,並將 123456789012 替換為您的帳戶 ID。aws sns publish --topic-arn "arn:aws:sns:us-east-1:123456789012:cross-account-ec2-sns" --message "test" --region us-east-1
- 語言
- 中文 (繁體)

AWS 官方已更新 1 年前
沒有評論
相關內容
- 已提問 2 年前
- 已提問 3 年前
- 已提問 3 年前
- 已提問 1 年前