星期日, 15 6 月, 2025
No Result
View All Result
AI TAIWAN 台灣人工智慧中心
  • Home
  • AI 綜合新聞
  • AI 自動化與 AI Agents
  • AI 智慧產業
  • 機器學習與應用
  • 自然語言處理
  • 神經連結和腦機接口
  • 機器人與自動化
  • 道德與法規
  • 安全
AI TAIWAN 台灣人工智慧中心
  • Home
  • AI 綜合新聞
  • AI 自動化與 AI Agents
  • AI 智慧產業
  • 機器學習與應用
  • 自然語言處理
  • 神經連結和腦機接口
  • 機器人與自動化
  • 道德與法規
  • 安全
No Result
View All Result
AI TAIWAN 台灣人工智慧中心
No Result
View All Result
Your Ad
Home 安全

如何限制 Amazon S3 儲存桶存取權限至特定 IAM 角色

2025-02-15
in 安全
0 0
0
如何限制 Amazon S3 儲存桶存取權限至特定 IAM 角色
Share on FacebookShare on Twitter
Your Ad


2025年2月14日:這篇文章更新了建議,使用 aws:PrincipalArn 條件鍵來限制 S3 存儲桶的訪問權限給 IAM 角色,而不是使用 aws:userid 條件鍵。

2021年4月2日:在“授予跨帳戶存儲桶訪問權限給特定 IAM 角色”部分,我們更新了第二個政策以修正錯誤。

2016年7月11日:這篇文章首次發佈。

客戶常常詢問如何限制 Amazon 簡單存儲服務 (Amazon S3) 存儲桶的訪問權限,僅限於特定的 AWS 身份和訪問管理 (IAM) 用戶或角色。一個常見的方法是使用 Principal 元素列出需要訪問存儲桶的用戶或角色。然而,Principal 元素需要用戶 ARN、角色 ARN 或假設角色 ARN 的精確值。它不支持使用萬用字元 (*) 來包含所有角色會話,也不允許使用策略變數。

在這篇博客文章中,我們展示了如何使用 Conditions 元素來限制 S3 存儲桶的訪問權限給帳戶內的特定 IAM 角色或用戶。即使同一帳戶中的其他用戶擁有 Admin 策略或 s3:* 的策略,如果他們沒有在 Conditions 元素中明確列出,他們將被拒絕訪問。您可以使用這種方法,例如,限制對具有敏感內容或額外安全要求的存儲桶的訪問。

解決方案概述

這篇文章中的解決方案使用存儲桶策略來限制對 S3 存儲桶的訪問,即使實體通過附加的基於身份的策略擁有對 S3 的完整 API 訪問權限。下圖說明了如何在與您的 IAM 用戶或 IAM 角色相同的帳戶中訪問 S3 存儲桶。我們建議您使用 IAM 角色,僅在不支持聯邦用戶的用例中使用 IAM 用戶。

圖1:說明如何在與您的 IAM 用戶或 IAM 角色相同的帳戶中訪問 S3 存儲桶的圖示

圖1中的工作流程如下:

IAM 用戶的策略和 IAM 角色的基於身份的策略授予對 “s3:*” 的訪問權限。
與存儲桶 B 關聯的 S3 存儲桶策略限制訪問僅限於 IAM 角色。這意味著只有 IAM 角色能夠訪問其內容。
IAM 用戶和 IAM 角色都可以訪問帳戶中的其他 S3 存儲桶(例如,存儲桶 A)。IAM 角色能夠訪問這兩個存儲桶,但用戶只能訪問沒有附加存儲桶策略的 S3 存儲桶。即使角色和用戶都有完整的 “s3:*” 許可權,存儲桶策略會否定對於未假設角色的任何人的存儲桶訪問權限。

跨帳戶方法的主要區別在於,每個存儲桶必須附加一個存儲桶策略,以允許來自其他帳戶的 IAM 角色訪問。下圖說明了這在跨帳戶部署場景中的工作方式。

圖2:說明如何在與您的 IAM 角色不同的帳戶中訪問 S3 存儲桶的圖示

圖2:說明如何在與您的 IAM 角色不同的帳戶中訪問 S3 存儲桶的圖示

圖2中的工作流程如下:

IAM 角色的基於身份的策略和存儲桶帳戶中的 IAM 用戶的策略都授予對 “s3:*” 的訪問權限。
存儲桶策略 B 拒絕所有 IAM 用戶和角色的訪問,除了指定的角色,並且策略定義了角色可以對存儲桶執行的操作。
存儲桶策略 A 允許來自其他帳戶的 IAM 角色訪問。
IAM 用戶和 IAM 角色都可以訪問存儲桶 A,因為 IAM 用戶在同一帳戶中,並且存儲桶策略 A 中有對角色的明確允許。角色可以訪問這兩個存儲桶,因為存儲桶策略 B 中的拒絕僅針對 IAM 角色以外的主體。

使用 aws:PrincipalArn 條件

您可以使用不同類型的條件鍵來比較發出請求的主體的詳細信息與您在策略中指定的主體屬性。我們建議您使用 aws:PrincipalArn 鍵。aws:PrincipalArn 鍵將發出請求的主體的 Amazon 資源名稱 (ARN) 與您在策略中指定的 ARN 進行比較。

您也可以使用 aws:userid 策略變數在其明確的拒絕聲明中唯一識別用戶或角色。使用 aws:userid 查找值時會增加複雜性,因為您必須使用有效憑證執行 API 調用。當使用 IAM 角色時,此活動具有額外的複雜性,因為您需要獲取 AssumedRoleUser 信息,這不僅包括唯一的角色 ID,還包括假設角色時提供的角色會話名稱。例如,AssumedRoleUser 的 aws:userid 將如下所示:

aws:userid – AROADBQP57FF2AEXAMPLE:role-session-name

當您有大量用戶和角色需要包含在策略中時,管理和跟踪這些 ID 會變得不方便。

為了減輕這些挑戰,我們建議您使用 aws:PrincipalArn 條件鍵。對於 IAM 角色,請求上下文返回角色的 ARN,而不是假設角色的用戶的 ARN。AWS 建議您在策略中指定資源的 ARN,而不是唯一 ID,並且定期執行 IAM 策略審核。讓我們看看如何在 IAM 策略中使用條件鍵。

授予同一帳戶的特定角色存儲桶訪問權限

當從同一帳戶中訪問存儲桶時,在大多數情況下不需要使用存儲桶策略,因為策略定義的訪問權限已經由用戶的直接 IAM 策略授予。S3 存儲桶策略通常用於跨帳戶訪問,但您也可以使用它們來通過明確的拒絕來限制訪問。拒絕將適用於所有主體,無論他們是在與存儲桶相同的帳戶中還是在不同的帳戶中。

在這種情況下,您使用 IAM 用戶或角色 ARN 與 aws:PrincipalArn 條件鍵在 StringNotEquals 或 StringNotLike 條件中使用萬用字元字符串。此外,您使用 aws:PrincipalARN 鍵將發出請求的主體的 ARN 與您在策略中指定的 ARN 進行比較。使用條件邏輯元素允許使用萬用字元字符串,以允許任何角色會話名稱被接受。

一旦您擁有要允許訪問的角色的 ARN,您需要阻止來自與存儲桶相同帳戶的其他用戶的訪問。阻止未使用 IAM 角色憑證的用戶訪問存儲桶及其對象的示例策略如下所示。

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3:::amzn-s3-demo-bucket“,
“arn:aws:s3:::amzn-s3-demo-bucket/*”
],
“Condition”: {
“StringNotEquals”: {
“aws:PrincipalArn”: [
“arn:aws:iam::111122223333:role/<ROLE-NAME>“
]
}
}
}
]
}

對於 IAM 用戶,使用如下所示的相同策略。

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Deny”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3:::amzn-s3-demo-bucket“,
“arn:aws:s3:::amzn-s3-demo-bucket/*”
],
“Condition”: {
“StringNotEquals”: {
“aws:PrincipalARN”: [
“arn:aws:iam::111122223333:role/<ROLE-NAME>”,
“arn:aws:iam::111122223333:user/<USER-NAME>“
]
}
}
}
]
}

授予跨帳戶存儲桶訪問權限給特定 IAM 角色

當授予跨帳戶存儲桶訪問權限給 IAM 用戶或角色時,您必須定義 IAM 用戶或角色被允許使用授予的訪問權限做什麼。了解更多關於允許 IAM 實體通過 CLI/API 和控制台訪問存儲桶所需的權限,請參閱撰寫 IAM 策略:如何授予訪問 Amazon S3 存儲桶的權限。根據這篇博客文章中的信息,示例存儲桶策略如下所示。

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::111122223333:role/<ROLE-NAME>“
},
“Action”: “s3:ListBucket”,
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket“
},
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::111122223333:role/<ROLE-NAME>“
},
“Action”: [
“s3:GetObject”,
“s3:PutObject”,
“s3:DeleteObject”
],
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket/*”
},
{
“Effect”: “Deny”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3:::amzn-s3-demo-bucket“,
“arn:aws:s3:::amzn-s3-demo-bucket/*”
],
“Condition”: {
“StringNotEquals”: {
“aws:PrincipalARN”: [
“arn:aws:iam::111122223333:role/<ROLE-NAME>“
]
}
}
}
]
}

要授予其他帳戶中的 IAM 用戶訪問權限,您需要將 IAM 用戶的 ARN 添加到 aws:PrincipalArn 條件中,如本博客文章前面部分所述。除了 aws:PrincipalArn 條件,您還需要將 IAM 用戶的完整 ARN 添加到這些策略的 Principal 元素中。示例策略如下所示。

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: [
{
“AWS”: [
“arn:aws:iam::444455556666:role/<ROLE-NAME>”,
“arn:aws:iam::444455556666:user/<USER-NAME>“
]
}
],
“Action”: “s3:ListBucket”,
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket“
},
{
“Effect”: “Allow”,
“Principal”: [
{
“AWS”: [
“arn:aws:iam::444455556666:role/<ROLE-NAME>”,
“arn:aws:iam::444455556666:user/<USER-NAME>“
]
}
],
“Action”: [
“s3:GetObject”,
“s3:PutObject”,
“s3:DeleteObject”
],
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket/*”
},
{
“Effect”: “Deny”,
“Principal”: “*”,
“Action”: “s3:*”,
“Resource”: [
“arn:aws:s3:::amzn-s3-demo-bucket“,
“arn:aws:s3:::amzn-s3-demo-bucket/*”
],
“Condition”: {
“StringNotEquals”: {
“aws:PrincipalARN”: [
“arn:aws:iam::444455556666:role/<ROLE-NAME>”,
“arn:aws:iam::444455556666:user/<USER-NAME>“
]
}
}
}
]
}

除了在存儲桶策略中包含角色權限外,您還需要在 IAM 用戶或角色的用戶策略中定義這些權限。這些權限被添加到客戶管理的策略中,並附加到 IAM 控制台中的角色或用戶,示例策略文件如下所示。

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: “s3:ListAllMyBuckets”,
“Resource”: “*”
},
{
“Effect”: “Allow”,
“Action”: “s3:ListBucket”,
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket“
},
{
“Effect”: “Allow”,
“Action”: [
“s3:GetObject”,
“s3:PutObject”,
“s3:DeleteObject”
],
“Resource”: “arn:aws:s3:::amzn-s3-demo-bucket/*”
}
]
}

通過遵循這篇文章中的指導,您可以在同一帳戶和跨帳戶場景中限制 S3 存儲桶的訪問權限給特定的 IAM 角色或用戶,即使用戶擁有 Admin 策略或 “s3:*” 的策略。在許多應用中,這種邏輯的要求會因用例而異。我們建議在可能的情況下採用最小權限原則,並僅授予執行必要任務所需的最低權限。

如果您對這篇文章有反饋,請在下方的評論區提交評論。如果您對這篇文章有疑問,請在 AWS 身份和訪問管理 re:Post 上開啟一個新線程或聯繫 AWS 支援。

Chris Craig
這篇博客文章的原作者已不在 AWS。2016年,當這篇文章首次發佈時,我們沒有包含作者簡介。

Laura Verghote
Laura Verghote
Laura 是一位為歐洲、中東和非洲 (EMEA) 地區公共部門客戶服務的高級解決方案架構師。她與客戶合作設計和構建 AWS 雲中的解決方案,彌合複雜的業務需求與技術解決方案之間的差距。她加入 AWS 時是一名技術培訓師,擁有廣泛的經驗,為 EMEA 的開發人員、管理員、架構師和合作夥伴提供培訓內容。

Ashwin Phadke
Ashwin Phadke
Ashwin 是一位高級解決方案架構師,與大型企業和獨立軟體供應商 (ISV) 客戶合作,構建高可用性、可擴展和安全的應用,並幫助他們成功導航雲端旅程。他對信息安全充滿熱情,喜歡為客戶的安全挑戰提供創意解決方案。



新聞來源

本文由 AI 台灣 運用 AI 技術編撰,內容僅供參考,請自行核實相關資訊。
歡迎加入我們的 AI TAIWAN 台灣人工智慧中心 FB 社團,
隨時掌握最新 AI 動態與實用資訊!

Tags: AmazonIAM儲存桶存取權限至特定如何限制角色
Previous Post

Salesforce AI 研究推出獎勵引導的推測解碼 (RSD):一個新穎框架,可將大型語言模型 (LLMs) 的推理效率提高至 4.4 倍更少的 FLOPs

Next Post

如何 Apptronik 加速人形機器人競賽

Related Posts

2024年下半年IRAP報告現已在AWS Artifact上提供給澳大利亞客戶
安全

2024年下半年IRAP報告現已在AWS Artifact上提供給澳大利亞客戶

2025-03-19
Android 與 iPhone 之間的端到端加密訊息即將推出
安全

Android 與 iPhone 之間的端到端加密訊息即將推出

2025-03-15
加密攻擊新時代開始升溫
安全

加密攻擊新時代開始升溫

2025-03-14
安全雲端創新始於 re:Inforce 2025
安全

安全雲端創新始於 re:Inforce 2025

2025-03-14
使用 Amazon Verified Permissions 在容器化工作負載中管理授權
安全

使用 Amazon Verified Permissions 在容器化工作負載中管理授權

2025-03-14
「人們感到害怕」:CISA 在面對特朗普的清洗時的內幕
安全

「人們感到害怕」:CISA 在面對特朗普的清洗時的內幕

2025-03-13
Next Post
如何 Apptronik 加速人形機器人競賽

如何 Apptronik 加速人形機器人競賽

我如何成為一名機器學習工程師(無計算機科學學位,無訓練營)

我如何成為一名機器學習工程師(無計算機科學學位,無訓練營)

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

Archives

  • 2025 年 6 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2023 年 10 月
  • 2023 年 9 月
  • 2023 年 8 月
  • 2023 年 7 月
  • 2023 年 5 月
  • 2023 年 3 月
  • 2023 年 1 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 1 月
  • 2021 年 11 月
  • 2021 年 8 月
  • 2021 年 5 月
  • 2021 年 3 月
  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2019 年 7 月
  • 2018 年 11 月

Categories

  • AI 智慧產業
  • AI 綜合新聞
  • AI 自動化與 AI Agents
  • 安全
  • 機器人與自動化
  • 機器學習與應用
  • 神經連結和腦機接口
  • 自然語言處理
  • 道德與法規
Your Ad
  • 關於我們
  • 廣告合作
  • 免責聲明
  • 隱私權政策
  • DMCA
  • Cookie 隱私權政策
  • 條款與條件
  • 聯絡我們
AI TAIWAN

版權 © 2024 AI TAIWAN.
AI TAIWAN 對外部網站的內容不負任何責任。

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In
No Result
View All Result
  • Home
  • AI 綜合新聞
  • AI 自動化與 AI Agents
  • AI 智慧產業
  • 機器學習與應用
  • 自然語言處理
  • 神經連結和腦機接口
  • 機器人與自動化
  • 道德與法規
  • 安全

版權 © 2024 AI TAIWAN.
AI TAIWAN 對外部網站的內容不負任何責任。