瞭解 AWS IAM 權限並實際應用在不同場景

Jin-avatar-img
發佈於雲端
更新 發佈閱讀 10 分鐘

基於資源的存取權限

用途:有時,您希望組織中的所有委託人都能存取某個資源(例如 S3 儲存桶中的物件)。例如,每個 AWS 帳戶中執行的平台級程式碼都需要一個唯讀設定檔來配置該帳戶,或者組織中每個 AWS 帳戶都需要向其發布訊息的中央帳戶中存在一個 SNS 主題。

運行此命令來建立模板policy1.json

cat << EOF > policy1.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "<Allow OR Deny>",
"Principal": "<PRINCIPAL>",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯 S3 儲存桶策略,以允許任何主體s3:GetObject對儲存桶中的任何物件執行操作MY-BUCKET,只要該主體屬於您的組織。

在基於資源的策略元素中使用通配符,Principal允許與 S3 儲存桶位於相同帳戶中的委託人存取 S3 儲存桶中的所有物件。即使同一帳戶中的委託人沒有允許存取該s3:GetObject操作的基於身分的策略,也是如此。

服務控制策略保護平台資源

用途:中央平台團隊通常會在配置新帳戶時部署一組標準的 AWS 資源。這些資源通常與安全性相關,或控制平台的其他操作方面,除非由具有特權的 IAM 主體修改或刪除,否則不應對其進行修改或刪除。

運行此命令來建立模板policy2.json

cat << EOF > policy2.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯文件中的服務控制策略,以拒絕對帶有鍵為team且值為 的標籤的資源執行所有操作。只有同樣帶有鍵為且值為 的admin標籤的主體才能對帶有標籤的資源執行任何操作。teamadmin

  • 標記要保護的資源:
    • 鑰匙:team
    • 價值:admin
  • 標記豁免的主體:
    • 鑰匙:team
    • 價值:admin
  • 資源:所有資源
  • 動作:所有動作


限制可使用基於身分的策略啟動的 EC2 執行個體類型

用途: 您可能希望允許或拒絕啟動某些類型的 EC2 執行個體。例如,您可能希望拒絕委託人未經批准啟動大型、昂貴的實例,或在非生產環境中強制使用小型、較便宜的實例。

運行此命令來建立模板policy3.json

cat << EOF > policy3.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "<Allow OR Deny>",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯檔案中基於身分的策略,以允許使用該操作啟動 EC2 執行個體ec2:RunInstances(只要該執行個體的類型為 )t3.small。該策略不應允許啟動任何其他實例類型。

請記住在進行更改後和運行評估命令之前保存您的策略。

  • 允許的實例類型:t3.small
  • 行動:ec2:RunInstances


防止不受信任的主體將 AWS 服務用作混淆的代理人

用途:困惑的代理問題 這是一種安全性問題,即無權執行操作的實體可以強制具有更高權限的實體執行該操作。在此特定場景中,具有較高權限的實體是 AWS 服務。混淆代理控制功能可協助您防止其他不屬於您的 AWS 帳戶中的人員使用 AWS 服務讀取或寫入您的 AWS 資源。

運行此命令來建立模板policy4.json

cat << EOF > policy4.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "<PRINCIPAL>",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯文件中的 SNS 主題策略,以允許 SNS 主題接收來自 S3 儲存桶的通知。您應該允許 AWS 服務主體s3.amazonaws.com向您的 SNS 主題發布訊息。您應該阻止其他 AWS 帳戶將該s3.amazonaws.com服務用作混淆代理並向您的主題發布訊息。

  • 服務:s3.amazonaws.com
  • 行動:sns:Publish
  • 地區:us-east-1
  • 主題名稱:MyTopic
  • SNS 主題所在的帳戶:111111111111
  • 您想要接收通知的帳號:111111111111
  • 您想要從中接收通知的 S3 儲存桶:MY-BUCKET


確保 Lambda 函數必須附加到具有服務控制策略的 VPC

用途: 一般來說,當您在 VPC 中部署 Lambda 函數時,函數出口流量來自您自己的網路位址空間,並且您可以使用VPC 流日誌實現網路可見性 。 VPC 附加的 Lambda 函數將能夠使用無法從公共網際網路存取的資源,例如關聯式資料庫或 Redis 執行個體。

運行此命令來建立模板policy5.json

cat << EOF > policy5.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯檔案中的服務控制策略,以便僅當 Lambda 函數部署在 VPC 中時才允許CreateFunction或要求。UpdateFunctionConfiguration

  • 行動:lambda:CreateFunction, lambda:UpdateFunctionConfiguration
  • 資源:所有資源

允許主體存取名稱與其標籤相符的儲存桶

用途: 經常需要根據附加到特定主體的標籤來授予對 S3 儲存桶的存取權限。這些標籤可能是來自身分提供者的屬性,也可能直接附加到您的 IAM 角色。

運行此命令來建立模板policy6.json

cat << EOF > policy6.json 
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "<Allow OR Deny>",
"Action": "<ACTION(S)>",
"Resource": "<RESOURCE(S)>",
"Condition": "<CONDITION(S)>"
}
]
}
EOF

開啟並編輯文件中的基於身分的策略,以允許主體在具有與附加到儲存桶的部門標籤相同的部門標籤時存取 S3 儲存桶。

請記住在進行更改後和運行評估命令之前保存您的策略。

  • 標記需要存取部門所擁有的儲存桶的主體:
    • 鑰匙:department
    • 價值:sales
  • 行動:s3:GetObject
  • 資源:the bucket name should start with mycorp- followed by department name



































留言
avatar-img
留言分享你的想法!
avatar-img
操作一下
6會員
47內容數
Hello I am Jin,我是一位喜歡探索新趨勢和學習新事物的PM。 在『操作一下』這裡,我會和你分享人生面向的各種操作,在閱讀、訓練、趨勢上,相信你也能找到屬於自己最自信的操作方針,並從中感受熱情!
操作一下的其他內容
2025/05/16
因為公司電腦限制,這邊選擇不使用金鑰對而繼續的選項,後面會說明如何進行IAM設定,不需要透過金鑰也能安全的進行連線。
Thumbnail
2025/05/16
因為公司電腦限制,這邊選擇不使用金鑰對而繼續的選項,後面會說明如何進行IAM設定,不需要透過金鑰也能安全的進行連線。
Thumbnail
2025/04/24
紀錄Lab練習的過程,化輸入為輸出。 首
Thumbnail
2025/04/24
紀錄Lab練習的過程,化輸入為輸出。 首
Thumbnail
看更多
你可能也想看
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
在小小的租屋房間裡,透過蝦皮購物平臺採購各種黏土、模型、美甲材料等創作素材,打造專屬黏土小宇宙的療癒過程。文中分享多個蝦皮挖寶地圖,並推薦蝦皮分潤計畫。
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
小蝸和小豬因購物習慣不同常起衝突,直到發現蝦皮分潤計畫,讓小豬的購物愛好產生價值,也讓小蝸開始欣賞另一半的興趣。想增加收入或改善伴侶間的購物觀念差異?讓蝦皮分潤計畫成為你們的神隊友吧!
Thumbnail
透過充分利用 AWS Organizations 和 CloudFormation StackSets,您可以更好地實現企業級的雲端管理與控制,為業務的持續發展提供穩固的技術支撐。
Thumbnail
透過充分利用 AWS Organizations 和 CloudFormation StackSets,您可以更好地實現企業級的雲端管理與控制,為業務的持續發展提供穩固的技術支撐。
Thumbnail
疫情世代後,企業在思考的已經不是要不要上雲,而是哪些服務或內容可以上雲,透過混合雲的形式,搭配公司的策略達到靈活且彈性的最佳效益。 而既然要能達到最佳效益,選擇適合公司環境的雲端環境,對於現代企業來說非常重要,這篇文章將與大家分享AWS、GCP、Azure三大公有雲的特點與優勢。
Thumbnail
疫情世代後,企業在思考的已經不是要不要上雲,而是哪些服務或內容可以上雲,透過混合雲的形式,搭配公司的策略達到靈活且彈性的最佳效益。 而既然要能達到最佳效益,選擇適合公司環境的雲端環境,對於現代企業來說非常重要,這篇文章將與大家分享AWS、GCP、Azure三大公有雲的特點與優勢。
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
AWS Systems Manager 建立 Activations Windows 使用PowerShell [System.Net.ServicePointManager]::SecurityProtocol = 'TLS12' $code = "activation-code
Thumbnail
本篇使用 AWS Lambda 結合 Amazon Bedrock 和 Claude 3 來分析儲存在 Amazon S3 中的圖像的示範
Thumbnail
本篇使用 AWS Lambda 結合 Amazon Bedrock 和 Claude 3 來分析儲存在 Amazon S3 中的圖像的示範
Thumbnail
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
Thumbnail
實踐AWS中使用Lambda來負責登入簽核及與OpenAI API溝通,並利用S3容器託管一個靜態網頁做為前端
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
Thumbnail
實驗目的:Lambda@Edge (L@E) 讓 CLoudFront (CF) 回源時,自動選擇較近的 S3 region 回源
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News