0

Есть ли способ прикрепить какую-либо политику для любого пользователя в cloudfromation? Когда вы создаете стек через aws js, вы можете передать документ политики стека с Principal как "*". Но если вы создаете шаблон шаблона AWS :: IAM :: Policy внутри, вы должны указать роль, пользователя или группу, а "*" не работает. Или как я могу прикрепить документ политики для вложенного стека?AWS :: IAM :: Политика для любого пользователя

+0

Я в замешательстве. Вы спрашиваете о применении политики обновления стека к вложенному стеку облаков? Или вы пытаетесь создать в cloudformation политику, применимую к IAM-устройствам? –

+0

Я решил эту проблему, добавляя политику обновления через aws js sdk после создания вложенного стека – ne1s

ответ

0

Вложенные облачные шаблоны политики используют один и тот же документ политики стека в качестве родительского стека, который вы указываете в консоли AWS или через API при создании/обновлении стека (например, используя AWS SDK для JS, как вы упомянули). Как documented, для документов политики стека требуется элемент Principal, но поддерживает только wild card (*).

Вы можете дополнительно ограничить действия на вложенных стеков путем добавления заявления с Condition где ResourceType равно AWS::CloudFormation::Stack, как описано в примере Prevent Updates to Nested Stacks в документации:

{ 
    "Statement" : [ 
    { 
     "Effect" : "Deny", 
     "Action" : "Update:*", 
     "Principal": "*", 
     "Resource" : "*", 
     "Condition" : { 
     "StringEquals" : { 
      "ResourceType" : ["AWS::CloudFormation::Stack"] 
     } 
     } 
    }, 
    { 
     "Effect" : "Allow", 
     "Action" : "Update:*", 
     "Principal": "*", 
     "Resource" : "*" 
    } 
    ] 
} 

AWS::IAM::Policy ресурс не связанного с конкретным использования которых в случае указания политики для вложенного стека, но для справки, AWS::IAM::Policy создает политику, которую вы прикрепляете к пользователям или группам, которые не позволяют указать элемент Principal, как указано в документации:

Не используйте элемент Principal в правилах, которые вы прикрепляете к пользователям и группам IAM. Аналогично, вы не указываете принципала в политике доступа для роли IAM. В этих случаях принципал неявно является пользователем, к которому привязана политика (для пользователей IAM) или к пользователю, который принимает эту роль (для политик доступа к ролям). Когда политика привязана к группе IAM, основным является пользователь IAM в той группе, которая делает запрос.

0

Что я делаю, это политика доверительных отношений с той же (или другой) учетной записью. Он говорит о корне, но фактически применяется ко всему счету:

{ 
    "Statement": [ 
    { 
     "Effect": "Allow", 
     "Principal": { 
     "AWS": "arn:aws:iam::123ACCNO4567:root" 
     }, 
     "Action": "sts:AssumeRole", 
     "Condition": { 
     "Bool": { 
      "aws:MultiFactorAuthPresent": "true" 
     } 
     } 
    } 
    ] 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^