2016-03-09 1 views
7

У меня есть следующая роль. Изнутри я хочу использовать существующую управляемую политику из другого стека.Облачная информация о том, как ссылаться на управляемую политику из другого стека

Как это сделать?

"TestRole": { 
    "Properties": { 
     "AssumeRolePolicyDocument": { 
     "Statement": [ 
      { 
      "Action": [ 
       "sts:AssumeRole" 
      ], 
      "Effect": "Allow", 
      "Principal": { 
       "Service": [ 
       "lambda.amazonaws.com" 
       ] 
      } 
      } 
     ], 
     "Version": "2012-10-17" 
     }, 
     "Path": "/lambda/", 
     "Policies": [ 
     ?????? 
     ] 
    }, 
    "Type": "AWS::IAM::Role" 
    } 

ответ

1

В настоящее время поддерживается поддерживаемый способ, используя Imports/Exports. В принципе, стек, который создает политику, имеет вывод, содержащий имя политики (или ARN, не уверенное, что в этом случае необходимо), и объявляет его как экспорт с региональным уникальным именем. Затем другие стеки могут потреблять его с помощью функции импорта.

Например, если следующий стек (скажем, он называется FooStack) создает управляемую политику, он может иметь следующие в своем выходе:

"Outputs" : { 
    "MyManagedPolicy" : { 
     "Value" : { "Ref" : "MyManagedPolicy" }, 
     "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-MyManagedPolicy" }} 
    } 
} 

Другой стек может использовать его:

"Policies": [ 
    { "Fn::ImportValue" : "FooStack-MyManagedPolicy" } 
] 
0

Согласно docs функции CF Ref, вы должны быть в состоянии использовать это, чтобы получить управляемый ресурс политики через его логическое имя.

Например:

Policies: [ 
    { "Ref" : "MyManagedPolicy" } 
] 

где "MyManagedPolicy" будет имя ресурса вы определили в шаблоне CF:

"MyManagedPolicy" : { 
    "Type": "AWS::IAM::ManagedPolicy", 
    "Properties": { 
    "Description" : String, 
    "Groups" : [ String, ... ], 
    "Path" : String, 
    "PolicyDocument" : JSON object, 
    "Roles" : [ String, ... ], 
    "Users" : [ String, ... ] 
    } 
} 

Надеется, что это помогает?

+0

Вы правы, если бы это было внутри моего стека, но я хотел ссылаться на политику из другого стека. – lony

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