[英]Terraform AWS IAM Role “inline_policy.0.policy” contains an invalid JSON policy using ${file xyz} and jsonencode
[英]How can I add multiple inline policy on AWS permission set using terraform?
我創建了 2 個策略並嘗試將其作為內聯策略附加到 AWS SSO 權限集上。 但是,它只應用其中一個策略。 如何將這兩個策略應用為 SSO 權限集的內聯策略?
resource "aws_iam_policy" "DenyAccess_nonUSRegions" {
name = "DenyAccess_nonUSRegions"
description = "DenyAccess_nonUSRegions"
policy = data.aws_iam_policy_document.DenyAccess_nonUSRegions.json
}
resource "aws_iam_policy" "role" {
name = "Deny_Specific_IAM_Actions"
description = "Deny_Specific_IAM_Actions"
policy = data.aws_iam_policy_document.Deny_Specific_IAM_Actions.json
}
resource "aws_ssoadmin_permission_set_inline_policy" "role" {
inline_policy = data.aws_iam_policy_document.Deny_Specific_IAM_Actions.json
instance_arn = aws_ssoadmin_permission_set.permission.instance_arn
permission_set_arn = aws_ssoadmin_permission_set.permission.arn
}
resource "aws_ssoadmin_permission_set_inline_policy" "DenyAccess_nonUSRegions" {
inline_policy = data.aws_iam_policy_document.DenyAccess_nonUSRegions.json
instance_arn = aws_ssoadmin_permission_set.permission.instance_arn
permission_set_arn = aws_ssoadmin_permission_set.permission.arn
}
為了將這兩個策略作為內聯策略應用於 AWS SSO 權限集,您可以使用 aws_ssoadmin_permission_set_inline_policy 資源創建兩個單獨的內聯策略,一個用於每個現有策略。
您將需要更新您的 Terraform 配置以創建兩個 aws_ssoadmin_permission_set_inline_policy 資源,一個用於您的每個現有策略。
例如,您可以使用 aws_ssoadmin_permission_set_inline_policy 資源創建第一個內聯策略,並引用您創建的 DenyAccess_nonUSRegions 策略。
resource "aws_ssoadmin_permission_set_inline_policy"
"DenyAccess_nonUSRegions" {
inline_policy =
data.aws_iam_policy_document.DenyAccess_nonUSRegions.json
instance_arn =
aws_ssoadmin_permission_set.permission.instance_arn
permission_set_arn = aws_ssoadmin_permission_set.permission.arn
}
然后,您可以使用 aws_ssoadmin_permission_set_inline_policy 資源創建第二個內聯策略,並引用您創建的 Deny_Specific_IAM_Actions 策略。
resource "aws_ssoadmin_permission_set_inline_policy" "role" {
inline_policy =
data.aws_iam_policy_document.Deny_Specific_IAM_Actions.json
instance_arn =
aws_ssoadmin_permission_set.permission.instance_arn
permission_set_arn = aws_ssoadmin_permission_set.permission.arn
}
請務必注意,您應該為每個 aws_ssoadmin_permission_set_inline_policy 資源使用不同的名稱,因為它們在同一權限集中必須是唯一的。
有了這兩個內聯策略,您現有的兩個策略都將應用於 SSO 權限集,分配給該權限集的用戶將受到兩個策略中定義的限制的約束。
您只能有一個內聯策略。 因此,在您的情況下,政策會相互覆蓋,最終您只會得到一個。 因此,您要么創建一個結合您擁有的兩個內聯策略的單一內聯策略,要么創建兩個托管策略(非內聯)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.