1

CloudTrailを有効にするCloudFormationスクリプトを作成しようとしています。新しいS3バケットを作成して使用するか、 S3バケット。私はAWSの初心者ですので少し失礼です。ここでは、これまでに条件文などを追加することなく、私が取って変更したコードをいくつか紹介します。あなたは非常に接近しているAWS:Cloudformスクリプトは、条件に基づいてCloudTrailのS3バケットを作成します。

{ 
"AWSTemplateFormatVersion" : "2010-09-09", 
"Description" : "CloudTrail", 
"Parameters" : { 
    "UseExisitingBucket" : { 
     "Description" : "Yes/No", 
     "Default" : "Yes", 
     "Type" : "String", 
     "AllowedValues" : [ "yes", "no"] 
    }, 
    "BucketName" : { 
     "Description" : "Name of the S3 bucket.", 
     "Type" : "String" 
    }, 
    "TopicName" : { 
     "Description" : "Name of the SNS topic.", 
     "Type" : "String", 
     "Default" : "" 
    }, 
    "IncludeGlobalServiceEvents" : { 
     "Description" : "Indicates whether the trail is publishing events from global services, such as IAM, to the log files.", 
     "Type" : "String", 
     "Default" : "false", 
     "AllowedValues" : [ 
      "true", 
      "false" 
     ] 
    } 
}, 
"Conditions" : { 
    "UseSNSTopic" : { 
     "Fn::Not" : [ 
      { 
       "Fn::Equals" : [ 
        { 
         "Ref" : "TopicName" 
        }, 
        "" 
       ] 
      } 
     ] 
    } 
}, 
"Resources" : { 
    "Trail" : { 
     "Type" : "AWS::CloudTrail::Trail", 
     "Properties" : { 
      "IncludeGlobalServiceEvents" : { 
       "Ref" : "IncludeGlobalServiceEvents" 
      }, 
      "S3BucketName" : { 
       "Ref" : "BucketName" 
      }, 
      "SnsTopicName" : { 
       "Fn::If" : [ 
        "UseSNSTopic", 
        { 
         "Ref" : "TopicName" 
        }, 
        { 
         "Ref" : "AWS::NoValue" 
        } 
       ] 
      }, 
      "IsLogging" : true 
     } 
    } 
} 

}

答えて

0

、私は、提案UseExisitingBucketパラメータを削除します。そして、それは次のようになりますBucketNameDefaultを追加します。

"ExistingBucketName" : { 
    "Description" : "Name of the S3 bucket.", 
    "Type" : "String", 
    "Default": "None" 
}, 

は、バケットが提供された場合、または新しいものを作成する必要があるかどうかを確認するためにカップルの条件を追加します。

"Conditions": { 
    "CreateNewBucket": { 
     "Fn::Equals": [ 
      { 
       "Ref": "ExistingBucketName" 
      }, 
      "None" 
     ] 
    }, 
    "UseExistingBucket": { 
     "Fn::Not": [ 
      { 
       "Fn::Equals": [ 
        { 
         "Ref": "ExistingBucketName" 
        }, 
        "None" 
       ]     
      } 
     ] 
    } 
} 

は次にS3バケットリソースを作成します

"S3Bucket": { 
    "Condition": "CreateNewBucket", 
    ... 
    ... 

} 

「CreateNewBucket」条件で2つのクラウドレイルリソースを追加し、「S3Bucket」を渡します。リソースと "UseExistingBucket"と "ExistingBucketName"を渡す他の1つ

+0

ありがとう、それは多くを助ける! – flyingcars34

関連する問題