So giving the spark user the SYSTEM label access and having the fix for HBASE-15707, things are working for you? Or still some issues? Pls let us know.
-Anoop- On Fri, Jun 17, 2016 at 12:07 PM, ramkrishna vasudevan <ramkrishna.s.vasude...@gmail.com> wrote: >>>so long as only the HBase user and the spark user can read/write to the > file, I'm not sure what the risk is? > I was saying more with respect to the sensitivity of the data that was > written. > Say there are following users > Admin > Manager > Worker1 > Worker 2 > > and the following labels > CONFIDENTIAL, SECRET, PUBLIC, WORKER_1_INFO, WORKER_2_INFO > Now if the manager has associated Worker 1 with WORKER_1_INFO and Worker 2 > with WORKER_2_INFO. Now when worker1 is trying to read his information he > should set WORKER_1_INFO in his scan. > > So if there is a bulk load scenario where the entire file is getting read > so the user trying to do the bulk load in this example should not be > worker1 or worker 2. It should be either the Admin or Manager. > > Now in your case spark user and hbase user are these Admin or Manager (as > in my eg) then it is perfectly fine. > >>>am I able to read the HFile manually to determine if Tags have been > written properly? > HBASE-15707 is a case which was not allowing the tags to be written while > creating the file. You may be needing that fix when you are adding tags > directly. But in your case they are visibility tags which you are not > supposed to add directly except for using the setCellVisibility() way. But > it is better to have that fix in your branch also. > >>>"hbase.security.visibility.mutations.checkauths" - for now the method of > set_auths 'client','system' along with only giving 'client' read on > 'hbase:labels' is working for me. > > Fine. I have some doubts on here with respect to how SYSTEM tags are > implemented. Will get back on this. > > Regards > Ram > > On Thu, Jun 16, 2016 at 9:11 PM, Ellis, Tom (Financial Markets IT) < > tom.el...@lloydsbanking.com.invalid> wrote: > >> Hi Again Ram, >> >> "hbase.security.visibility.mutations.checkauths" - for now the method of >> set_auths 'client','system' along with only giving 'client' read on >> 'hbase:labels' is working for me. >> >> "Coming to reading the HFile and creating a bulk load, I think we should >> be more cautious here " - I don't follow again sorry. The spark user writes >> the HFile, and then initiates the load with >> LoadIncrementalHFiles.doBulkLoad - so long as only the HBase user and the >> spark user can read/write to the file, I'm not sure what the risk is? >> >> HBASE-15707 - am I able to read the HFile manually to determine if Tags >> have been written properly? >> >> Cheers, >> >> Tom >> >> >> -----Original Message----- >> From: ramkrishna vasudevan [mailto:ramkrishna.s.vasude...@gmail.com] >> Sent: 16 June 2016 06:01 >> To: user@hbase.apache.org >> Subject: Re: Writing visibility labels with HFileOutputFormat2 >> >> -- This email has reached the Bank via an external source -- >> >> >> Thanks for the updates here. Going through the mails here >> >> Why is it that a client user without admin/super user privileges can >> >> set >> a visibility expression using Put.setCellVisibility, but if we want to >> write using HFiles, >> >> I get your point now. There is a property >> '"hbase.security.visibility.mutations.checkauths" if set will check if the >> user is authorized to mutate the visibility labels that he is trying to >> write. If the user is not allowed to add that label the mutation will fail. >> Can you see if this solves the other problem of allowing any client user >> to write? If the above is not well documented pls feel free to raise a JIRA >> and we are happy to address it. >> >> Coming to reading the HFile and creating a bulk load, I think we should be >> more cautious here. There are some critical info stored in the HFile and >> just allowing any user to read it is going to be risky. >> >> Coming to the PutSortReducer problem, I think what you say is true. Not >> sure if there is a bug already, if not pls feel free to raise a bug here. >> We need to fix it. >> >> HBASE-15707 - you may need this because for scala's HBasecontext you need >> to ensure tags are included just incase ImportTSV has to be used. >> >> Write back, if I had missed something or if my info was lacking. Its been >> quite sometime we had worked in this area so have to see code every time to >> know what was done. >> >> Regards >> Ram >> >> On Wed, Jun 15, 2016 at 11:29 PM, Ellis, Tom (Financial Markets IT) < >> tom.el...@lloydsbanking.com.invalid> wrote: >> >> > So, I can see that I can correctly get the List<Tag>s from the >> > VisibilityExpressionResolver, set them on the Cell, and write them >> > using HFileOutputFormat2, however when I scan using an unprivileged >> > user I can still see the cells. If I write the cells with >> > setCellVisibility the unprivileged user can't see them. >> > >> > Then I noticed the fix for HBASE-15707. I am using the Hortonworks' >> > HBase >> > 1.1.2 - am affected by this/does HFileOutputFormat2 support tags >> > before this fix? >> > >> > Cheers, >> > >> > Tom Ellis >> > Consultant Developer – Excelian >> > Data Lake | Financial Markets IT >> > LLOYDS BANK COMMERCIAL BANKING >> > >> > >> > E: tom.el...@lloydsbanking.com >> > Website: www.lloydsbankcommercial.com >> > , , , >> > Reduce printing. Lloyds Banking Group is helping to build the low >> > carbon economy. >> > Corporate Responsibility Report: >> > www.lloydsbankinggroup-cr.com/downloads >> > >> > >> > -----Original Message----- >> > From: Ellis, Tom (Financial Markets IT) [mailto: >> > tom.el...@lloydsbanking.com.INVALID] >> > Sent: 15 June 2016 17:42 >> > To: user@hbase.apache.org >> > Subject: RE: Writing visibility labels with HFileOutputFormat2 >> > >> > -- This email has reached the Bank via an external source -- >> > >> > >> > Looking at the source for how DefaultCellLabelServiceImpl checks >> > authorisation I noted it's just that the user just needs to have the >> > 'system' label auth privileges - not admin/super user as I thought you >> > meant Ram. So technically, I could have a client user that is given >> > the system label privileges, but only read access to the 'hbase:labels' >> table? >> > >> > Then that user will still be able to scan and read the labels + >> > ordinal, and create the tags correctly :) I'll give it a go.. >> > >> > Cheers, >> > >> > Tom Ellis >> > Consultant Developer – Excelian >> > Data Lake | Financial Markets IT >> > LLOYDS BANK COMMERCIAL BANKING >> > >> > >> > E: tom.el...@lloydsbanking.com >> > Website: www.lloydsbankcommercial.com >> > , , , >> > Reduce printing. Lloyds Banking Group is helping to build the low >> > carbon economy. >> > Corporate Responsibility Report: >> > www.lloydsbankinggroup-cr.com/downloads >> > >> > >> > -----Original Message----- >> > From: Ellis, Tom (Financial Markets IT) [mailto: >> > tom.el...@lloydsbanking.com.INVALID] >> > Sent: 15 June 2016 16:56 >> > To: user@hbase.apache.org >> > Subject: RE: Writing visibility labels with HFileOutputFormat2 >> > >> > -- This email has reached the Bank via an external source -- >> > >> > >> > I see now from some other examples I've found that actually this form >> > of using HFileOutputFormat2 to write Puts will use the PutSortReducer >> > if you set the map output class of the job you give it to Put. Looking >> > at the source for PutSourceReducer it seems that it will actually lose >> > the Cell Visibility information as it uses the getFamilyCellMap to >> > create KeyValue objects and just uses that, and the CellVisibility is >> > actually on the Put Mutation. >> > >> > So I think that unfortunately, I can only really work around this by >> > giving the application user writing the HFile admin access so it can >> > then use the VisibilityExpressionResolver to create cells with tags >> > with the correct ordinals. >> > >> > Am I missing something? Why is it that a client user without >> > admin/super user privileges can set a visibility expression using >> > Put.setCellVisibility, but if we want to write using HFiles, the >> > client user has to have admin/super user privileges so they can use >> > VisibilityExpressionResolver to correctly create the tags on the Cell >> > with correct ordinals? >> > >> > Cheers, >> > >> > Tom Ellis >> > Consultant Developer – Excelian >> > Data Lake | Financial Markets IT >> > LLOYDS BANK COMMERCIAL BANKING >> > >> > >> > E: tom.el...@lloydsbanking.com >> > Website: www.lloydsbankcommercial.com >> > , , , >> > Reduce printing. Lloyds Banking Group is helping to build the low >> > carbon economy. >> > Corporate Responsibility Report: >> > www.lloydsbankinggroup-cr.com/downloads >> > >> > >> > -----Original Message----- >> > From: Ellis, Tom (Financial Markets IT) [mailto: >> > tom.el...@lloydsbanking.com.INVALID] >> > Sent: 15 June 2016 16:25 >> > To: user@hbase.apache.org >> > Subject: RE: Writing visibility labels with HFileOutputFormat2 >> > >> > -- This email has reached the Bank via an external source -- >> > >> > >> > So I have a working prototype using just bulk puts on a table and >> > using setCellVisibility as necessary. Now I'm trying to do it using >> HFile. >> > >> > Sorry Ram, I don't quite follow why the user doing the writing of the >> > HFile has to be an admin/super user? Is that necessary to load HFiles? >> > >> > The use case is to hopefully have an application user (non admin) >> > performing the writes to an hbase table via a bulk load of an hfile, >> > setting visibility labels on individual cells as necessary. Then >> > business users who has been given the auth to view that label can see >> > those cells, and others not. >> > >> > I've seen that it's possible to do this with map reduce & setting the >> > map output to be a Put (and thus could setCellVisibility on the puts), >> > but I'm struggling to do this with Spark, as I keep getting the >> > exception that I can't cast a Put to a Cell. >> > >> > Cheers, >> > >> > Tom Ellis >> > Consultant Developer – Excelian >> > Data Lake | Financial Markets IT >> > LLOYDS BANK COMMERCIAL BANKING >> > >> > >> > E: tom.el...@lloydsbanking.com >> > Website: www.lloydsbankcommercial.com >> > , , , >> > Reduce printing. Lloyds Banking Group is helping to build the low >> > carbon economy. >> > Corporate Responsibility Report: >> > www.lloydsbankinggroup-cr.com/downloads >> > >> > >> > -----Original Message----- >> > From: ramkrishna vasudevan [mailto:ramkrishna.s.vasude...@gmail.com] >> > Sent: 15 June 2016 12:31 >> > To: user@hbase.apache.org >> > Subject: Re: Writing visibility labels with HFileOutputFormat2 >> > >> > -- This email has reached the Bank via an external source -- >> > >> > >> > >>We could I guess create multiple puts for cells in the same row with >> > different labels and use the setCellVisibility on each individual >> > put/cell, but will this create additional overhead? >> > This can be done. If you want different cells in the same row to have >> > different labels then it is better to create those many puts and >> > setCellVisibility on each of them. What type of overhead you see here? >> > In terms of the server processing them? If so there should not be much >> > overhead here and also adding different cells to every column inturn >> > means you need every cell to be treated differenly in terms of >> > security. so should be fine IMHO. >> > >> > Without doing put.setCellvisibility() there is no other way I believe. >> > One question regarding your use case Now in the mail you had told >> > about the spark job where you will create a bulk loaded file. Now if >> > that is to have all the visibility related information of all the >> > cells then the user doing this job should be an admin or super user >> > right Why is the case that a normal client user will read through all >> > the visibility cells which may or may not be associated with that user? >> > >> > Thank you very much for testing and using this feature. LEt us know >> > your feedback and if you find any gaps here. Happy to help. >> > >> > Regards >> > Ram >> > >> > >> > On Wed, Jun 15, 2016 at 4:09 PM, Ellis, Tom (Financial Markets IT) < >> > tom.el...@lloydsbanking.com.invalid> wrote: >> > >> > > Hmm, is there no other way to set labels on individual cells where >> > > we don't have to give the client users system perms? For instance, >> > > client users can set the cell visibility on the entire put without >> > > having this (i.e. put.setCellVisibility("label")) and the >> > > VisibilityController will check this. >> > > >> > > We could I guess create multiple puts for cells in the same row with >> > > different labels and use the setCellVisibility on each individual >> > > put/cell, but will this create additional overhead? >> > > >> > > Cheers, >> > > >> > > Tom Ellis >> > > Consultant Developer – Excelian >> > > Data Lake | Financial Markets IT >> > > LLOYDS BANK COMMERCIAL BANKING >> > > >> > > >> > > E: tom.el...@lloydsbanking.com >> > > Website: www.lloydsbankcommercial.com , , , Reduce printing. Lloyds >> > > Banking Group is helping to build the low carbon economy. >> > > Corporate Responsibility Report: >> > > www.lloydsbankinggroup-cr.com/downloads >> > > >> > > >> > > -----Original Message----- >> > > From: ramkrishna vasudevan [mailto:ramkrishna.s.vasude...@gmail.com] >> > > Sent: 15 June 2016 11:24 >> > > To: user@hbase.apache.org >> > > Subject: Re: Writing visibility labels with HFileOutputFormat2 >> > > >> > > -- This email has reached the Bank via an external source -- >> > > >> > > >> > > The visibility expression resolver tries to scan the labels table >> > > and the user using the resolver should have the SYSTEM privileges. >> > > Since the information that is getting accessed is sensitive >> information. >> > > >> > > Suppose in your above case you have the client user added as a an >> > > admin then when you scan the label table you should be able to scan >> it. >> > > >> > > Regards >> > > Ram >> > > >> > > On Wed, Jun 15, 2016 at 3:09 PM, Ellis, Tom (Financial Markets IT) < >> > > tom.el...@lloydsbanking.com.invalid> wrote: >> > > >> > > > Yeah, thanks for this Ram. Although in my testing I have found >> > > > that a client user attempting to use the visibility expression >> > > > resolver doesn't seem to have the ability to scan the hbase:labels >> > > > table for the full list of labels and thus can't get the >> > > > ordinals/tags to add to the cell. Does the client user attempting >> > > > to use the VisibilityExpressionResolver have to have some special >> permissions? >> > > > >> > > > Scan of hbase:labels by client user: >> > > > >> > > > hbase(main):003:0> scan 'hbase:labels' >> > > > ROW COLUMN+CELL >> > > > \x00\x00\x00\x01 column=f:\x00, >> > > > timestamp=1465216652662, value=system >> > > > 1 row(s) in 0.0650 seconds >> > > > >> > > > Scan of hbase:labels by hbase user: >> > > > >> > > > hbase(main):001:0> scan 'hbase:labels' >> > > > ROW COLUMN+CELL >> > > > \x00\x00\x00\x01 column=f:\x00, >> > > > timestamp=1465216652662, value=system >> > > > \x00\x00\x00\x02 column=f:\x00, >> > > > timestamp=1465216944935, value=protected >> > > > \x00\x00\x00\x02 column=f:hbase, >> > > > timestamp=1465547138533, value= >> > > > \x00\x00\x00\x02 column=f:tom, >> > > > timestamp=1465980236882, value= >> > > > \x00\x00\x00\x03 column=f:\x00, >> > > > timestamp=1465500156667, value=testtesttest >> > > > \x00\x00\x00\x03 column=f:@hadoop, >> > > > timestamp=1465980236967, value= >> > > > \x00\x00\x00\x03 column=f:hadoop, >> > > > timestamp=1465547304610, value= >> > > > \x00\x00\x00\x03 column=f:hive, >> > > > timestamp=1465501322616, value= >> > > > \x00\x00\x00\x04 column=f:\x00, >> > > > timestamp=1465570719901, value=confidential >> > > > \x00\x00\x00\x05 column=f:\x00, >> > > > timestamp=1465835047835, value=branch >> > > > \x00\x00\x00\x05 column=f:hdfs, >> > > > timestamp=1465980237060, value= >> > > > \x00\x00\x00\x06 column=f:\x00, >> > > > timestamp=1465980447307, value=group >> > > > \x00\x00\x00\x06 column=f:hdfs, >> > > > timestamp=1465980454130, value= >> > > > 6 row(s) in 0.7370 seconds >> > > > >> > > > Cheers, >> > > > >> > > > Tom Ellis >> > > > Consultant Developer – Excelian >> > > > Data Lake | Financial Markets IT >> > > > LLOYDS BANK COMMERCIAL BANKING >> > > > >> > > > >> > > > E: tom.el...@lloydsbanking.com >> > > > Website: www.lloydsbankcommercial.com , , , Reduce printing. >> > > > Lloyds Banking Group is helping to build the low carbon economy. >> > > > Corporate Responsibility Report: >> > > > www.lloydsbankinggroup-cr.com/downloads >> > > > >> > > > -----Original Message----- >> > > > From: Anoop John [mailto:anoop.hb...@gmail.com] >> > > > Sent: 08 June 2016 11:58 >> > > > To: user@hbase.apache.org >> > > > Subject: Re: Writing visibility labels with HFileOutputFormat2 >> > > > >> > > > -- This email has reached the Bank via an external source -- >> > > > >> > > > >> > > > Thanks Ram.. Ya that seems the best way as CellCreator is public >> > > > exposed class. May be we should explain abt this in hbase book >> > > > under the Visibility labels area. Good to know you have >> > > > Visibility labels based usecase. Let us know in case of any >> trouble. Thanks. >> > > > >> > > > -Anoop- >> > > > >> > > > On Wed, Jun 8, 2016 at 1:43 PM, ramkrishna vasudevan < >> > > > ramkrishna.s.vasude...@gmail.com> wrote: >> > > > > Hi >> > > > > >> > > > > It can be done. See the class CellCreator which is Public facing >> > > > interface. >> > > > > When you create your spark job to create the hadoop files that >> > > > > produces the >> > > > > HFileOutputformat2 data. While creating the KeyValues you can >> > > > > use the CellCreator to create your KeyValues and use the >> > > > > CellCreator.getVisibilityExpressionResolver() to map your String >> > > > > Visibility tags with the system generated ordinals. >> > > > > >> > > > > For eg, you can see how TextSortReducer works. I think this >> > > > > should help you solve your problem. Let us know if you need >> > > > > further >> > > information. >> > > > > >> > > > > Regards >> > > > > Ram >> > > > > >> > > > > On Tue, Jun 7, 2016 at 3:58 PM, Ellis, Tom (Financial Markets >> > > > > IT) < tom.el...@lloydsbanking.com.invalid> wrote: >> > > > > >> > > > >> Hi Ram, >> > > > >> >> > > > >> We're attempting to do it programmatically so: >> > > > >> >> > > > >> The HFile is created by a Spark job using >> > > > >> saveAsNewAPIHadoopFile, and using ImmutableBytesWritable as the >> > > > >> key (rowkey) with KeyValue as the value, and using the >> HFilOutputFormat2 format. >> > > > >> This HFile is then loaded using HBase client's >> > > > >> LoadIncrementalHFiles.doBulkLoad >> > > > >> >> > > > >> Is there a way to do this programmatically without using the >> > > > >> ImportTsv tool? I was taking a look at >> > > > >> VisibilityUtils.createVisibilityExpTags and maybe being able to >> > > > >> just create the Tags myself that way (although it's obviously >> > > > >> @InterfaceAudience.Private) but it seems to be able to use that >> > > > >> I'd >> > > > need to know Label ordinality client side.. >> > > > >> >> > > > >> Thanks for your help, >> > > > >> >> > > > >> Tom >> > > > >> >> > > > >> -----Original Message----- >> > > > >> From: ramkrishna vasudevan >> > > > >> [mailto:ramkrishna.s.vasude...@gmail.com] >> > > > >> Sent: 07 June 2016 11:19 >> > > > >> To: user@hbase.apache.org >> > > > >> Subject: Re: Writing visibility labels with HFileOutputFormat2 >> > > > >> >> > > > >> -- This email has reached the Bank via an external source -- >> > > > >> >> > > > >> >> > > > >> Hi Ellis >> > > > >> >> > > > >> How is the HFileOutputFormat2 files created? Are you using the >> > > > >> ImportTsv tool? If you are using the ImportTsv tool then yes >> > > > >> there is a way to specify visibility tags while loading from >> > > > >> the ImportTsv tool and those visibility tags are also bulk >> > > > >> loaded as >> > > HFile. >> > > > >> >> > > > >> There is an attribute CELL_VISIBILITY_COLUMN_SPEC that can be >> > > > >> used to indicate that the data will have Visibility Tags and >> > > > >> the tool will automatically parse the specified field as >> Visibility Tag. >> > > > >> >> > > > >> In case you have access to the code you can see the test case >> > > > >> TestImportTSVWithVisibilityLabels to get an initial idea of how >> > > > >> it is being done. If not get back to us, happy to help . >> > > > >> >> > > > >> Regards >> > > > >> Ram >> > > > >> >> > > > >> >> > > > >> >> > > > >> On Tue, Jun 7, 2016 at 3:36 PM, Ellis, Tom (Financial Markets >> > > > >> IT) < tom.el...@lloydsbanking.com.invalid> wrote: >> > > > >> >> > > > >> > Hi, >> > > > >> > >> > > > >> > I was wondering if it's possible/how to write Visibility >> > > > >> > Labels to an HFileOutputFormat2? I believe Visibility Labels >> > > > >> > are just implemented as Tags, but with the normal way of >> > > > >> > writing them with Mutation#setCellVisibility these are >> > > > >> > formally written as Tags to the cells during the >> > > > >> > VisibilityController coprocessor as we need to assert the >> > > > >> > expression is valid for the labels >> > configured. >> > > > >> > >> > > > >> > How can we add visibility labels to cells if we have a job >> > > > >> > that creates an HFile with HFileOutputFormat2 which is then >> > > > >> > subsequently loaded using LoadIncrementalHFiles? >> > > > >> > >> > > > >> > Cheers, >> > > > >> > >> > > > >> > Tom Ellis >> > > > >> > Consultant Developer - Excelian Data Lake | Financial Markets >> > > > >> > IT LLOYDS BANK COMMERCIAL BANKING >> > > > >> > ________________________________ >> > > > >> > >> > > > >> > E: >> > > > >> > tom.el...@lloydsbanking.com<mailto:tom.el...@lloydsbanking.co >> > > > >> > m> >> > > > >> > Website: >> > > > >> > www.lloydsbankcommercial.com<http://www.lloydsbankcommercial. >> > > > >> > co >> > > > >> > m/ >> > > > >> > > >> > > > >> > , , , >> > > > >> > Reduce printing. Lloyds Banking Group is helping to build the >> > > > >> > low carbon economy. >> > > > >> > Corporate Responsibility Report: >> > > > >> > www.lloydsbankinggroup-cr.com/downloads< >> > > > >> > http://www.lloydsbankinggroup-cr.com/downloads> >> > > > >> > >> > > > >> > >> > > > >> > >> > > > >> > Lloyds Banking Group plc. Registered Office: The Mound, >> > > > >> > Edinburgh >> > > > >> > EH1 >> > > > >> 1YZ. >> > > > >> > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. >> > > > >> > Lloyds Bank plc. Registered Office: 25 Gresham Street, London >> > > > >> > EC2V >> > > > 7HN. >> > > > >> > Registered in England and Wales no. 2065. Telephone 0207626 >> 1500. >> > > > >> > Bank >> > > > >> of Scotland plc. >> > > > >> > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered >> > > > >> > in Scotland >> > > > >> no. >> > > > >> > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > > > >> > Registered >> > > > >> > Office: Barnett Way, Gloucester GL4 3RL. Registered in >> > > > >> > England and Wales 2299428. Telephone: 0345 603 1637 >> > > > >> > >> > > > >> > Lloyds Bank plc, Bank of Scotland plc are authorised by the >> > > > >> > Prudential Regulation Authority and regulated by the >> > > > >> > Financial Conduct Authority and Prudential Regulation Authority. >> > > > >> > >> > > > >> > Cheltenham & Gloucester plc is authorised and regulated by >> > > > >> > the Financial Conduct Authority. >> > > > >> > >> > > > >> > Halifax is a division of Bank of Scotland plc. Cheltenham & >> > > > >> > Gloucester Savings is a division of Lloyds Bank plc. >> > > > >> > >> > > > >> > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. >> > > > >> > Registered in Scotland no. SC218813. >> > > > >> > >> > > > >> > This e-mail (including any attachments) is private and >> > > > >> > confidential and may contain privileged material. If you have >> > > > >> > received this e-mail in error, please notify the sender and >> > > > >> > delete it (including any >> > > > >> > attachments) immediately. You must not copy, distribute, >> > > > >> > disclose or use any of the information in it or any >> > > > >> > attachments. Telephone calls may be monitored or recorded. >> > > > >> > >> > > > >> >> > > > >> >> > > > >> Lloyds Banking Group plc. Registered Office: The Mound, >> > > > >> Edinburgh >> > > > >> EH1 >> > > > 1YZ. >> > > > >> Registered in Scotland no. SC95000. Telephone: 0131 225 4555. >> > > > >> Lloyds Bank plc. Registered Office: 25 Gresham Street, London >> > > > >> EC2V >> > > 7HN. >> > > > >> Registered in England and Wales no. 2065. Telephone 0207626 1500. >> > > > >> Bank >> > > > of Scotland plc. >> > > > >> Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in >> > > > >> Scotland >> > > > no. >> > > > >> SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > > > >> Registered >> > > > >> Office: Barnett Way, Gloucester GL4 3RL. Registered in England >> > > > >> and Wales 2299428. Telephone: 0345 603 1637 >> > > > >> >> > > > >> Lloyds Bank plc, Bank of Scotland plc are authorised by the >> > > > >> Prudential Regulation Authority and regulated by the Financial >> > > > >> Conduct Authority and Prudential Regulation Authority. >> > > > >> >> > > > >> Cheltenham & Gloucester plc is authorised and regulated by the >> > > > >> Financial Conduct Authority. >> > > > >> >> > > > >> Halifax is a division of Bank of Scotland plc. Cheltenham & >> > > > >> Gloucester Savings is a division of Lloyds Bank plc. >> > > > >> >> > > > >> HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. >> > > > >> Registered in Scotland no. SC218813. >> > > > >> >> > > > >> This e-mail (including any attachments) is private and >> > > > >> confidential and may contain privileged material. If you have >> > > > >> received this e-mail in error, please notify the sender and >> > > > >> delete it (including any >> > > > >> attachments) immediately. You must not copy, distribute, >> > > > >> disclose or use any of the information in it or any >> > > > >> attachments. Telephone calls may be monitored or recorded. >> > > > >> >> > > > >> > > > >> > > > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh >> > > > EH1 >> > > 1YZ. >> > > > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. >> > > > Lloyds Bank plc. Registered Office: 25 Gresham Street, London EC2V >> 7HN. >> > > > Registered in England and Wales no. 2065. Telephone 0207626 1500. >> > > > Bank >> > > of Scotland plc. >> > > > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in >> > > > Scotland >> > > no. >> > > > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > > > Registered >> > > > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > > > Wales 2299428. Telephone: 0345 603 1637 >> > > > >> > > > Lloyds Bank plc, Bank of Scotland plc are authorised by the >> > > > Prudential Regulation Authority and regulated by the Financial >> > > > Conduct Authority and Prudential Regulation Authority. >> > > > >> > > > Cheltenham & Gloucester plc is authorised and regulated by the >> > > > Financial Conduct Authority. >> > > > >> > > > Halifax is a division of Bank of Scotland plc. Cheltenham & >> > > > Gloucester Savings is a division of Lloyds Bank plc. >> > > > >> > > > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. >> > > > Registered in Scotland no. SC218813. >> > > > >> > > > This e-mail (including any attachments) is private and >> > > > confidential and may contain privileged material. If you have >> > > > received this e-mail in error, please notify the sender and delete >> > > > it (including any >> > > > attachments) immediately. You must not copy, distribute, disclose >> > > > or use any of the information in it or any attachments. Telephone >> > > > calls may be monitored or recorded. >> > > > >> > > >> > > >> > > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh >> > > EH1 >> > 1YZ. >> > > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds >> > > Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. >> > > Registered in England and Wales no. 2065. Telephone 0207626 1500. >> > > Bank >> > of Scotland plc. >> > > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in >> > > Scotland >> > no. >> > > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > > Registered >> > > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > > Wales 2299428. Telephone: 0345 603 1637 >> > > >> > > Lloyds Bank plc, Bank of Scotland plc are authorised by the >> > > Prudential Regulation Authority and regulated by the Financial >> > > Conduct Authority and Prudential Regulation Authority. >> > > >> > > Cheltenham & Gloucester plc is authorised and regulated by the >> > > Financial Conduct Authority. >> > > >> > > Halifax is a division of Bank of Scotland plc. Cheltenham & >> > > Gloucester Savings is a division of Lloyds Bank plc. >> > > >> > > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. >> > > Registered in Scotland no. SC218813. >> > > >> > > This e-mail (including any attachments) is private and confidential >> > > and may contain privileged material. If you have received this >> > > e-mail in error, please notify the sender and delete it (including >> > > any >> > > attachments) immediately. You must not copy, distribute, disclose or >> > > use any of the information in it or any attachments. Telephone calls >> > > may be monitored or recorded. >> > > >> > >> > >> > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh EH1 >> 1YZ. >> > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds >> > Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. >> > Registered in England and Wales no. 2065. Telephone 0207626 1500. Bank >> of Scotland plc. >> > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in Scotland >> no. >> > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > Registered >> > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > Wales 2299428. Telephone: 0345 603 1637 >> > >> > Lloyds Bank plc, Bank of Scotland plc are authorised by the Prudential >> > Regulation Authority and regulated by the Financial Conduct Authority >> > and Prudential Regulation Authority. >> > >> > Cheltenham & Gloucester plc is authorised and regulated by the >> > Financial Conduct Authority. >> > >> > Halifax is a division of Bank of Scotland plc. Cheltenham & Gloucester >> > Savings is a division of Lloyds Bank plc. >> > >> > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. Registered >> > in Scotland no. SC218813. >> > >> > This e-mail (including any attachments) is private and confidential >> > and may contain privileged material. If you have received this e-mail >> > in error, please notify the sender and delete it (including any >> > attachments) immediately. You must not copy, distribute, disclose or >> > use any of the information in it or any attachments. Telephone calls >> > may be monitored or recorded. >> > >> > >> > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh EH1 >> 1YZ. >> > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds >> > Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. >> > Registered in England and Wales no. 2065. Telephone 0207626 1500. Bank >> of Scotland plc. >> > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in Scotland >> no. >> > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > Registered >> > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > Wales 2299428. Telephone: 0345 603 1637 >> > >> > Lloyds Bank plc, Bank of Scotland plc are authorised by the Prudential >> > Regulation Authority and regulated by the Financial Conduct Authority >> > and Prudential Regulation Authority. >> > >> > Cheltenham & Gloucester plc is authorised and regulated by the >> > Financial Conduct Authority. >> > >> > Halifax is a division of Bank of Scotland plc. Cheltenham & Gloucester >> > Savings is a division of Lloyds Bank plc. >> > >> > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. Registered >> > in Scotland no. SC218813. >> > >> > This e-mail (including any attachments) is private and confidential >> > and may contain privileged material. If you have received this e-mail >> > in error, please notify the sender and delete it (including any >> > attachments) immediately. You must not copy, distribute, disclose or >> > use any of the information in it or any attachments. Telephone calls >> > may be monitored or recorded. >> > >> > >> > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh EH1 >> 1YZ. >> > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds >> > Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. >> > Registered in England and Wales no. 2065. Telephone 0207626 1500. Bank >> of Scotland plc. >> > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in Scotland >> no. >> > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > Registered >> > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > Wales 2299428. Telephone: 0345 603 1637 >> > >> > Lloyds Bank plc, Bank of Scotland plc are authorised by the Prudential >> > Regulation Authority and regulated by the Financial Conduct Authority >> > and Prudential Regulation Authority. >> > >> > Cheltenham & Gloucester plc is authorised and regulated by the >> > Financial Conduct Authority. >> > >> > Halifax is a division of Bank of Scotland plc. Cheltenham & Gloucester >> > Savings is a division of Lloyds Bank plc. >> > >> > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. Registered >> > in Scotland no. SC218813. >> > >> > This e-mail (including any attachments) is private and confidential >> > and may contain privileged material. If you have received this e-mail >> > in error, please notify the sender and delete it (including any >> > attachments) immediately. You must not copy, distribute, disclose or >> > use any of the information in it or any attachments. Telephone calls >> > may be monitored or recorded. >> > >> > >> > Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh EH1 >> 1YZ. >> > Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds >> > Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. >> > Registered in England and Wales no. 2065. Telephone 0207626 1500. Bank >> of Scotland plc. >> > Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in Scotland >> no. >> > SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. >> > Registered >> > Office: Barnett Way, Gloucester GL4 3RL. Registered in England and >> > Wales 2299428. Telephone: 0345 603 1637 >> > >> > Lloyds Bank plc, Bank of Scotland plc are authorised by the Prudential >> > Regulation Authority and regulated by the Financial Conduct Authority >> > and Prudential Regulation Authority. >> > >> > Cheltenham & Gloucester plc is authorised and regulated by the >> > Financial Conduct Authority. >> > >> > Halifax is a division of Bank of Scotland plc. Cheltenham & Gloucester >> > Savings is a division of Lloyds Bank plc. >> > >> > HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. Registered >> > in Scotland no. SC218813. >> > >> > This e-mail (including any attachments) is private and confidential >> > and may contain privileged material. If you have received this e-mail >> > in error, please notify the sender and delete it (including any >> > attachments) immediately. You must not copy, distribute, disclose or >> > use any of the information in it or any attachments. Telephone calls >> > may be monitored or recorded. >> > >> >> >> Lloyds Banking Group plc. Registered Office: The Mound, Edinburgh EH1 1YZ. >> Registered in Scotland no. SC95000. Telephone: 0131 225 4555. Lloyds Bank >> plc. Registered Office: 25 Gresham Street, London EC2V 7HN. Registered in >> England and Wales no. 2065. Telephone 0207626 1500. Bank of Scotland plc. >> Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in Scotland no. >> SC327000. Telephone: 03457 801 801. Cheltenham & Gloucester plc. Registered >> Office: Barnett Way, Gloucester GL4 3RL. Registered in England and Wales >> 2299428. Telephone: 0345 603 1637 >> >> Lloyds Bank plc, Bank of Scotland plc are authorised by the Prudential >> Regulation Authority and regulated by the Financial Conduct Authority and >> Prudential Regulation Authority. >> >> Cheltenham & Gloucester plc is authorised and regulated by the Financial >> Conduct Authority. >> >> Halifax is a division of Bank of Scotland plc. Cheltenham & Gloucester >> Savings is a division of Lloyds Bank plc. >> >> HBOS plc. Registered Office: The Mound, Edinburgh EH1 1YZ. Registered in >> Scotland no. SC218813. >> >> This e-mail (including any attachments) is private and confidential and >> may contain privileged material. If you have received this e-mail in error, >> please notify the sender and delete it (including any attachments) >> immediately. You must not copy, distribute, disclose or use any of the >> information in it or any attachments. Telephone calls may be monitored or >> recorded. >>