瞭解 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
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
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 回源
Thumbnail
客戶提出以下需求: 當用戶在日本,會導到離用戶最近的CloudFront節點(亞洲),當CF要回原站時,需要導到新加坡的S3 當用戶為美國,會導到離用戶最近的CloudFront節點(美國東岸),當CF要回原站時,需要導到美國的S3
Thumbnail
客戶提出以下需求: 當用戶在日本,會導到離用戶最近的CloudFront節點(亞洲),當CF要回原站時,需要導到新加坡的S3 當用戶為美國,會導到離用戶最近的CloudFront節點(美國東岸),當CF要回原站時,需要導到美國的S3
Thumbnail
AWS CloudFront + S3 遇到 CORS 解決方式
Thumbnail
AWS CloudFront + S3 遇到 CORS 解決方式
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News