コード例 #1
0
 def format_resource(self, r):
     envelope, payload = self.format_envelope(r)
     payload.update(
         self.filter_empty(
             select_keys(r,
                         ['Version', 'CreatedDate', 'CompatibleRuntimes'])))
     return envelope
コード例 #2
0
    def format_resource(self, r):
        envelope, payload = self.format_envelope(r)
        # security hub formatting beggars belief
        details = self.filter_empty(
            select_keys(r, [
                'CodeSha256', 'DeadLetterConfig', 'Environment', 'Handler',
                'KMSKeyArn', 'LastModified', 'MemorySize', 'MasterArn',
                'RevisionId', 'Role', 'Runtime', 'TracingConfig', 'Timeout',
                'Version', 'VpcConfig'
            ]))
        # do the brain dead parts Layers, Code, TracingConfig
        if 'Layers' in r:
            r['Layers'] = {
                'Arn': r['Layers'][0]['Arn'],
                'CodeSize': r['Layers'][0]['CodeSize']
            }
        details.get('VpcConfig', {}).pop('VpcId', None)

        if 'Code' in r and r['Code'].get('RepositoryType') == "S3":
            parsed = urlparse(r['Code']['Location'])
            details['Code'] = {
                'S3Bucket': parsed.netloc.split('.', 1)[0],
                'S3Key': parsed.path[1:]
            }
            params = parse_qs(parsed.query)
            if params['versionId']:
                details['Code']['S3ObjectVersion'] = params['versionId'][0]
        payload.update(details)
        return envelope
コード例 #3
0
ファイル: kms.py プロジェクト: volodymyr1213/custodian
 def format_resource(self, r):
     if 'TargetKeyId' in r:
         resolved = self.manager.get_resource_manager(
             'kms-key').get_resources([r['TargetKeyId']])
         if not resolved:
             return
         r = resolved[0]
         r[self.manager.resource_type.id] = r['KeyId']
     envelope, payload = self.format_envelope(r)
     payload.update(self.filter_empty(
         select_keys(r, [
             'AWSAccount', 'CreationDate', 'KeyId',
             'KeyManager', 'Origin', 'KeyState'])))
     return envelope
コード例 #4
0
    def format_resource(self, r):
        if 'TargetKeyId' in r:
            resolved = self.manager.get_resource_manager(
                'kms-key').get_resources([r['TargetKeyId']])
            if not resolved:
                return
            r = resolved[0]
            r[self.manager.resource_type.id] = r['KeyId']
        envelope, payload = self.format_envelope(r)
        payload.update(
            self.filter_empty(
                select_keys(r, [
                    'AWSAccount', 'CreationDate', 'KeyId', 'KeyManager',
                    'Origin', 'KeyState'
                ])))

        # Securityhub expects a unix timestamp for CreationDate
        if 'CreationDate' in payload and isinstance(payload['CreationDate'],
                                                    datetime):
            payload['CreationDate'] = (payload['CreationDate'].replace(
                tzinfo=timezone.utc).timestamp())

        return envelope