<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>服务器安全维护工作室 &#187; 服务器运维</title>
	<atom:link href="https://www.fuwuqiok.com/topics/%e6%9c%8d%e5%8a%a1%e5%99%a8%e8%bf%90%e7%bb%b4/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.fuwuqiok.com</link>
	<description></description>
	<lastBuildDate>Sun, 01 Mar 2020 07:28:40 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.26</generator>
	<item>
		<title>数据迁移服务（上云或云云迁移）</title>
		<link>https://www.fuwuqiok.com/%e6%95%b0%e6%8d%ae%e8%bf%81%e7%a7%bb%e6%9c%8d%e5%8a%a1%ef%bc%88%e4%b8%8a%e4%ba%91%e6%88%96%e4%ba%91%e4%ba%91%e8%bf%81%e7%a7%bb%ef%bc%89/</link>
		<comments>https://www.fuwuqiok.com/%e6%95%b0%e6%8d%ae%e8%bf%81%e7%a7%bb%e6%9c%8d%e5%8a%a1%ef%bc%88%e4%b8%8a%e4%ba%91%e6%88%96%e4%ba%91%e4%ba%91%e8%bf%81%e7%a7%bb%ef%bc%89/#comments</comments>
		<pubDate>Tue, 05 Mar 2019 13:09:22 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[ECS云服务器运维代维服务]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[系统安全代维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[数据迁移服务（上云或云云迁移）]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3919</guid>
		<description><![CDATA[<p>注意事项 1) 数据迁移服务仅支持同系统、同版本迁移操作，不支持跨系统与跨版本迁移。 2) 迁移涉及的网站和应 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e6%95%b0%e6%8d%ae%e8%bf%81%e7%a7%bb%e6%9c%8d%e5%8a%a1%ef%bc%88%e4%b8%8a%e4%ba%91%e6%88%96%e4%ba%91%e4%ba%91%e8%bf%81%e7%a7%bb%ef%bc%89/">数据迁移服务（上云或云云迁移）</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<div class="box-icon">
<div class="element">
<div class="r-product-detail">
<div class="d-item rich-text">
<h2><span data-spm-anchor-id="5176.730006-52734001-52738004-cmfw013550.content.i2.a59015c285YvdH">注意事项</span></h2>
<p>1) 数据迁移服务仅支持同系统、同版本迁移操作，不支持跨系统与跨版本迁移。</p>
<p>2) 迁移涉及的网站和应用程序需要提供详细安装说明、精确的版本信息。</p>
<p>3) 在服务过程中提供的云账号、密码等，建议用户在服务结束后及时进行信息变更。</p>
<p>4) 服务操作过程中需要用户全程及时配合，否则可能导致交付周期的延迟。</p>
<p>&nbsp;</p>
<h2>服务标准及收费</h2>
<table class="ke-zeroborder" border="0" width="814" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td bgcolor="#F5F5F5" width="10"></td>
<td bgcolor="#F5F5F5" width="112" height="33"><strong>服务项</strong></td>
<td bgcolor="#F5F5F5" width="614"><strong>服务说明</strong></td>
<td bgcolor="#F5F5F5" width="78"><strong>价格</strong></td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>数据库迁移</td>
<td>
<ul>
<li>服务内容：云端安装新数据库/迁移数据库/新数据库备份策略设置</li>
<li>数据大小≤5G</li>
</ul>
</td>
<td>1000元/次</td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>网站整体迁移</td>
<td>
<ul>
<li>服务内容：云端运行环境搭建/数据库迁移/网站文件迁移/运行测试/整体备份策略设置</li>
<li>数据大小≤10G</li>
</ul>
</td>
<td>2000元/次</td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>应用软件迁移</td>
<td>
<ul>
<li>服务内容：云端运行环境搭建/数据库迁移/应用程序迁移/运行测试/整体备份策略设置</li>
<li>数据大小≤10G</li>
</ul>
</td>
<td>1000元/次</td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>文件迁移</td>
<td>
<ul>
<li>服务内容：文件打包/文件上传/文件恢复/服务器备份策略设置</li>
<li>数据大小≤10G</li>
</ul>
</td>
<td>500元/次</td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>增量选项</td>
<td>
<ul>
<li>数据库每增加5G，价格增加100元</li>
<li>程序文件每增加10G，价格增加100元</li>
</ul>
</td>
<td>100元/次</td>
</tr>
<tr>
<td colspan="4" height="5"></td>
</tr>
<tr>
<td></td>
<td>海外ECS选项</td>
<td>
<ul>
<li>数据迁移到含香港之类的海外ECS服务器，在基础费用上额外增加100-300元。</li>
</ul>
</td>
<td>1000元/次</td>
</tr>
</tbody>
</table>
</div>
<div class="d-item broderno"></div>
<div class="d-item rich-text"></div>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="d-item">
<h2>产品价格</h2>
<table class="param-table price-table module-table" width="100%">
<thead>
<tr>
<td>版本名称</td>
<td>计费项</td>
<td>新购</td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1">海外ECS迁移选项（含香港）</td>
<td>版本基础价格</td>
<td>1000元</td>
</tr>
<tr>
<td rowspan="1">增量选项</td>
<td>版本基础价格</td>
<td>100元</td>
</tr>
<tr>
<td rowspan="1">文件迁移</td>
<td>版本基础价格</td>
<td>500元</td>
</tr>
<tr>
<td rowspan="1">应用软件迁移</td>
<td>版本基础价格</td>
<td>1000元</td>
</tr>
<tr>
<td rowspan="1">网站整体迁移</td>
<td>版本基础价格</td>
<td>2000元</td>
</tr>
<tr>
<td rowspan="1" data-spm-anchor-id="5176.730006-52734001-52738004-cmfw013550.content.i3.a59015c285YvdH">数据库迁移</td>
<td>版本基础价格</td>
<td>1000元</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="r-comment-list">
<h2></h2>
</div>
</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e6%95%b0%e6%8d%ae%e8%bf%81%e7%a7%bb%e6%9c%8d%e5%8a%a1%ef%bc%88%e4%b8%8a%e4%ba%91%e6%88%96%e4%ba%91%e4%ba%91%e8%bf%81%e7%a7%bb%ef%bc%89/">数据迁移服务（上云或云云迁移）</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e6%95%b0%e6%8d%ae%e8%bf%81%e7%a7%bb%e6%9c%8d%e5%8a%a1%ef%bc%88%e4%b8%8a%e4%ba%91%e6%88%96%e4%ba%91%e4%ba%91%e8%bf%81%e7%a7%bb%ef%bc%89/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>兼职企业运维技术顾问</title>
		<link>https://www.fuwuqiok.com/%e5%85%bc%e8%81%8c%e4%bc%81%e4%b8%9a%e8%bf%90%e7%bb%b4%e6%8a%80%e6%9c%af%e9%a1%be%e9%97%ae/</link>
		<comments>https://www.fuwuqiok.com/%e5%85%bc%e8%81%8c%e4%bc%81%e4%b8%9a%e8%bf%90%e7%bb%b4%e6%8a%80%e6%9c%af%e9%a1%be%e9%97%ae/#comments</comments>
		<pubDate>Mon, 04 Mar 2019 13:50:04 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[ECS云服务器运维代维服务]]></category>
		<category><![CDATA[linux代维]]></category>
		<category><![CDATA[linux系统代维]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器代维合同]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[兼职企业运维技术顾问]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3914</guid>
		<description><![CDATA[<p>应用服务器运维技术顾问，为企业业务和应用提供技术咨询和指导、应急处理，为企业运营中的技术难题提供技术解决方案和 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%85%bc%e8%81%8c%e4%bc%81%e4%b8%9a%e8%bf%90%e7%bb%b4%e6%8a%80%e6%9c%af%e9%a1%be%e9%97%ae/">兼职企业运维技术顾问</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>应用服务器运维技术顾问，为企业业务和应用提供技术咨询和指导、应急处理，为企业运营中的技术难题提供技术解决方案和技术咨询，节约企业硬件和人力维护成本。</p>
<div class="box-icon" data-spm-anchor-id="5176.730006-52734001-52732002-cmfw015135.content.i2.239b5f96K55eo2">
<div class="element">
<div class="r-product-detail">
<div class="d-item rich-text">
<h2>产品亮点</h2>
<div>更灵活的运维服务，专家技术指导，病毒木马防范、处理，性能问题解决方案，云服务器方案指导。</div>
</div>
<div class="d-item rich-text">
<h2>产品说明</h2>
<div>
<p><strong>企业运维技术顾问：</strong></p>
<p><strong>在服务期内，我们为签约服务器提供技术顾问服务，包含安全防护，病毒木马查杀、安全解决方案，服务器应急处理，系统性能问题定位，应用服务故障定位服务。安全专家，运维架构师为您提供高效的技术服务！</strong></p>
<p><strong>资费标准：</strong></p>
<p><strong>每台ECS，如有多台请另外再购买，我们不提供程序代码修改。</strong></p>
<p><strong>一、安全防护</strong></p>
<p><strong>   提供全面安全防护设置，让服务器达到高级别安全。主要包含以下内容：</strong></p>
<p><strong>   1、系统补丁更新</strong></p>
<p><strong>   2、系统安全加固</strong></p>
<p><strong>   3、软件安全防护</strong></p>
<p><strong>   4、服务器安全策略</strong></p>
<p><strong> </strong></p>
<p><strong>二、应急处理</strong></p>
<p><strong>    1、网站无法访问；</strong></p>
<p><strong>    2、服务器木马，病毒处理；</strong></p>
<p><strong>三、数据备份，数据安全方案</strong></p>
<p><strong>      1、本地备份：对网站、MySQL、SQL Server进行本地自动备份,。</strong></p>
<p><strong>      2、云 备 份：将本地备份数据传输至百度网盘或者金山网盘。</strong></p>
<p><strong>      3、其它备份：根据客户实际情况，提供更高级的备份方案。</strong></p>
<p><strong> </strong></p>
<p><strong>四、系统优化</strong></p>
<p><strong>       依托我司丰富的经验和强大的技术，对系统进行全面优化；部分服务器性能可得到数倍提升。</strong></p>
<p><strong>五、每周安全检测</strong></p>
<p><strong>       每周二，我们将安排专门技术人员检测服务器的安全、性能及硬件等状况，并通过短信、邮件等方式告知用户。</strong></p>
<p><strong> 除此我们还为每台服务器安装“服务器巡查系统”；该系统自动检测服务器的10余项核心参数，发现异常立即报警，避免出现严重问题以及让问题更早解决。</strong></p>
<p><strong>       同时我们还为每台服务器提供7*24性能监控，您可以通过网页查看到服务器的CPU、内存、IO、带宽等资源参数，一目了然的掌握服务器情况。</strong></p>
<p><strong> </strong></p>
<p><strong>六、应急响应</strong></p>
<p><strong>       根据签约不同，我们正常的上班时间为9:00-22:00，其它时间可直接拨打我司电话。为客户提供最多可达7*24的应急响应服务，处理各种突发情况。</strong></p>
<p><strong>七、一站式扩展</strong></p>
<p><strong>       除了以上常规服务外，我们还可以提供多样化的扩展服务；如：攻击防护方案、网站加速、系统故障排查、负载均衡方案等等。</strong></p>
<p><strong>适用用户：</strong></p>
<p><strong>使用Linux CentOS、Debian、Ubuntu、Suse、Windows Server 2003/2008/2012</strong></p>
<p><strong>我们的优势：</strong></p>
<p><strong>和其他代维公司相比，我们最大的优势在于专业的技术团队，有各自专注于Linux多种发行版本、Windows各个版本操作系统运行环境的专业运维人员，我们的服务凝聚了所有技术人员在服务器运维领域多年的经验及技术，让我们处理问题时更便捷，效果也更加明显。</strong></p>
<p><strong>1、团队中最高十二年安全运维经验。</strong></p>
<p><strong>2、众多专业技术大神，处理问题更快捷。</strong></p>
<p><strong>3、系统工程师，系统架构师，专业运维团队，专业系统安全专家。</strong></p>
<p><strong>4、多种安全方案，云产品技术服务，为企业提供云端安全保障。</strong></p>
<p><strong>5、八千多家企业用户的选择。</strong></p>
</div>
</div>
<div class="d-item broderno"></div>
<div class="d-item rich-text">
<h2>售后支持范围</h2>
<div>服务时间：工作日9:00—12:00,13:00-18:00。</div>
<div></div>
<div>业务范围：服务器环境配置，故障排查（不含程序自身问题），数据库配置更改，数据库权限、账户，数据迁移，程序迁移，数据库故障排查等； 费用范围：详情参照本公司服务类商品定价，或咨询在线技术支持。</div>
</div>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="d-item">
<h2>产品价格</h2>
<table class="param-table price-table module-table" width="100%">
<thead>
<tr>
<td>版本名称</td>
<td>计费项</td>
<td>新购（按月购买）</td>
<td>新购（按年购买）</td>
<td>续费（按月购买）</td>
<td>续费（按年购买）</td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1">包月</td>
<td>版本基础价格</td>
<td>2000元/月</td>
<td>&#8212;</td>
<td>1200元/月</td>
<td>&#8212;</td>
</tr>
<tr>
<td rowspan="1">半年</td>
<td>版本基础价格</td>
<td>1200元/月</td>
<td>&#8212;</td>
<td>900元/月</td>
<td>&#8212;</td>
</tr>
<tr>
<td rowspan="1">包年维护</td>
<td>版本基础价格</td>
<td>12000元/年</td>
<td>&#8212;</td>
<td>10800元/年</td>
<td>&#8212;</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%85%bc%e8%81%8c%e4%bc%81%e4%b8%9a%e8%bf%90%e7%bb%b4%e6%8a%80%e6%9c%af%e9%a1%be%e9%97%ae/">兼职企业运维技术顾问</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%85%bc%e8%81%8c%e4%bc%81%e4%b8%9a%e8%bf%90%e7%bb%b4%e6%8a%80%e6%9c%af%e9%a1%be%e9%97%ae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>云服务器专业安全代维 服务器代维 阿里云代维 云主机代维 运维外包服务</title>
		<link>https://www.fuwuqiok.com/%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%93%e4%b8%9a%e5%ae%89%e5%85%a8%e4%bb%a3%e7%bb%b4-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e7%bb%b4-%e9%98%bf%e9%87%8c%e4%ba%91%e4%bb%a3%e7%bb%b4-%e4%ba%91-2/</link>
		<comments>https://www.fuwuqiok.com/%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%93%e4%b8%9a%e5%ae%89%e5%85%a8%e4%bb%a3%e7%bb%b4-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e7%bb%b4-%e9%98%bf%e9%87%8c%e4%ba%91%e4%bb%a3%e7%bb%b4-%e4%ba%91-2/#comments</comments>
		<pubDate>Mon, 04 Mar 2019 13:45:37 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[linux服务器代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[云服务器专业安全代维 服务器代维 阿里云代维 云主机代维 运维外包服务]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3913</guid>
		<description><![CDATA[<p>您敢托付，绝不辜负。7×24响应，服务器安全、稳定，专业团队标准化运维服务，网站维护，服务器代维，安全代维，清 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%93%e4%b8%9a%e5%ae%89%e5%85%a8%e4%bb%a3%e7%bb%b4-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e7%bb%b4-%e9%98%bf%e9%87%8c%e4%ba%91%e4%bb%a3%e7%bb%b4-%e4%ba%91-2/">云服务器专业安全代维 服务器代维 阿里云代维 云主机代维 运维外包服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>您敢托付，绝不辜负。7×24响应，服务器安全、稳定，专业团队标准化运维服务，网站维护，服务器代维，安全代维，清除木马</p>
<p>&nbsp;</p>
<div class="box-icon">
<div class="element">
<div class="r-product-detail">
<div class="d-item rich-text">
<h2 data-spm-anchor-id="5176.730006-52734001-52732002-cmfw032553.content.i2.69e82171XrEMdu">产品亮点</h2>
<div>适用用户： 使用Linux CentOS、Windows Server 2003/2008/2012</div>
</div>
<div class="d-item rich-text">
<h2>产品说明</h2>
<div>
<p><strong>一、安全防护</strong></p>
<p>提供全面安全防护设置，让服务器达到高级别安全。主要包含以下内容：</p>
<p>1、系统补丁更新</p>
<p>2、系统安全加固</p>
<p>3、软件安全防护</p>
<p>4、网页木马查杀及挂马清理</p>
<p>5、网站安全策略</p>
<p>&nbsp;</p>
<p><strong>二、网站运行环境配置</strong></p>
<p>配置Java、IIS、ASP、PHP、ASP.net、FTP、SQL Server、MySQL、主机管理系统、网站自动备份、PHP伪静态Rewrite等网站必备软件；以及代安装用户指定软件。</p>
<p>&nbsp;</p>
<p><strong>三、应用服务搭建</strong></p>
<p>按用户要求搭建好网站，并设置严格的安全策略，让网站不被挂马、挂黑链、篡改等入侵。</p>
<p>&nbsp;</p>
<p><strong>四、数据备份</strong></p>
<p>1、本地备份：对网站、MySQL、SQL Server进行本地自动备份,。</p>
<p>2、云备份：将本地备份数据传输至网盘网盘。</p>
<p>3、其它备份：根据客户实际情况，提供更高级的备份方案。</p>
<p>&nbsp;</p>
<p><strong>五、系统优化</strong></p>
<p>依托我司丰富的经验和强大的技术，对系统进行全面优化；部分服务器性能可得到数倍提升。</p>
<p>&nbsp;</p>
<p><strong>六、每周安全检测</strong></p>
<p>每周我们将安排专门技术人员检测服务器的安全、性能及硬件等状况，并通过短信、邮件等方式告知用户。</p>
<p>同时我们还为每台服务器提供7*24性能监控，您可以通过网页查看到服务器的CPU、内存、IO、带宽等资源参数，一目了然的掌握服务器情况。</p>
<p>&nbsp;</p>
<p><strong>七、应急响应</strong></p>
<p>根据签约不同，我们正常的上班时间为9:00-22:00，其它时间可直接与技术客服沟通，为客户提供最多可达7*24的应急响应服务，处理各种突发情况。</p>
<p>&nbsp;</p>
<p><strong>八、一站式扩展</strong></p>
<p>除了以上常规服务外，我们还可以提供多样化的扩展服务；如：攻击防护方案、网站加速、系统故障排查、负载均衡方案等等。</p>
</div>
</div>
<div class="d-item broderno">
<h2>产品参数</h2>
<table class="param-table" width="100%">
<tbody>
<tr>
<td class="title borderleft" width="20%">交付方式</td>
<td class="borderright pl20" width="80%">服务类</td>
</tr>
<tr>
<td class="title borderleft" width="20%">依托云产品</td>
<td class="borderright pl20" width="80%">云服务器</td>
</tr>
<tr>
<td class="title borderleft" width="20%">质保时间</td>
<td class="borderright pl20" width="80%">7天</td>
</tr>
<tr>
<td class="title borderleft" width="20%">交付时间</td>
<td class="borderright pl20" width="80%">1天</td>
</tr>
</tbody>
</table>
</div>
<div class="d-item rich-text">
<h2>售后支持范围</h2>
<div>服务时间：工作日9:00—12:00,13:00-18:00。</div>
<div></div>
<div>业务范围：服务器环境配置，故障排查（不含程序自身问题），数据库配置更改，数据库权限、账户，数据迁移，程序迁移，数据库故障排查等； 费用范围：详情参照本公司服务类商品定价，或咨询在线技术支持。</div>
</div>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="d-item">
<h2>产品价格</h2>
<table class="param-table price-table module-table" width="100%">
<thead>
<tr>
<td>版本名称</td>
<td>计费项</td>
<td>新购</td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1">单服务器（5站点大数据）12000起/年</td>
<td>版本基础价格</td>
<td>12000元</td>
</tr>
<tr>
<td rowspan="1">单服务器（3站点20G数据）/年</td>
<td>版本基础价格</td>
<td>9000元</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="r-comment-list">
<h2 data-spm-anchor-id="5176.730006-52734001-52732002-cmfw032553.content.i3.69e82171XrEMdu"></h2>
</div>
</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%93%e4%b8%9a%e5%ae%89%e5%85%a8%e4%bb%a3%e7%bb%b4-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e7%bb%b4-%e9%98%bf%e9%87%8c%e4%ba%91%e4%bb%a3%e7%bb%b4-%e4%ba%91-2/">云服务器专业安全代维 服务器代维 阿里云代维 云主机代维 运维外包服务</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e4%ba%91%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%b8%93%e4%b8%9a%e5%ae%89%e5%85%a8%e4%bb%a3%e7%bb%b4-%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e7%bb%b4-%e9%98%bf%e9%87%8c%e4%ba%91%e4%bb%a3%e7%bb%b4-%e4%ba%91-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>服务器代运维_服务器托管_服务器维护</title>
		<link>https://www.fuwuqiok.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e8%bf%90%e7%bb%b4_%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%89%98%e7%ae%a1_%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bb%b4%e6%8a%a4/</link>
		<comments>https://www.fuwuqiok.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e8%bf%90%e7%bb%b4_%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%89%98%e7%ae%a1_%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bb%b4%e6%8a%a4/#comments</comments>
		<pubDate>Mon, 04 Mar 2019 13:38:33 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[linux代维]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器安全代维]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[服务器代运维_服务器托管_服务器维护]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3912</guid>
		<description><![CDATA[<p>服务器代运维_服务器托管_服务器维护 为保证客户服务器正常运行，一二三服务器代运维团队对数据迁移、解决方案、架 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e8%bf%90%e7%bb%b4_%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%89%98%e7%ae%a1_%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bb%b4%e6%8a%a4/">服务器代运维_服务器托管_服务器维护</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<h1 data-spm-anchor-id="5176.730006-52734001-52732002-cmfw015732.content.i0.72e261b5qPbVn6">服务器代运维_服务器托管_服务器维护</h1>
<p class="product-head-desccription" data-spm-anchor-id="5176.730006-52734001-52732002-cmfw015732.content.i1.72e261b5qPbVn6">为保证客户服务器正常运行，一二三服务器代运维团队对数据迁移、解决方案、架构设计、操作系统设置、数据库设置、网站程序设置、远程监测、安全服务等一系列服务器运维问题提供。购买时可提供按次、包月、包年服务。</p>
<p class="product-head-desccription" data-spm-anchor-id="5176.730006-52734001-52732002-cmfw015732.content.i1.72e261b5qPbVn6">
<div class="box-icon">
<div class="element">
<div class="r-product-detail">
<div class="d-item rich-text">
<div>
<blockquote><p><span data-spm-anchor-id="5176.730006-52734001-52732002-cmfw015732.content.i2.72e261b5qPbVn6">关于服务器代运维、托管、维护服务主要的服务类别有架构设计、操作系统设置、数据库设置、网站程序设置、远程监测、安全服务等，您根据当前的业务需要选择您需要服务的类别。更多建议包年包月享受长期的高性价比产品与服务支持。</span></p></blockquote>
<p><strong>类别一、架构设计：</strong></p>
<blockquote><p>1、提供基于阿里云云架构解决方案（根据行业不同可定制化）</p>
<p>2、基于阿里云经典网络、经典网络+VPC、VPC+VPC、经典网络+VPC+IDC等的复杂网络设计方案</p></blockquote>
<p><strong>类别二、操作系统设置    </strong></p>
<blockquote><p>1、提供Windows和Linux系统的系统重装服务</p>
<p>2、系统补丁升级</p>
<p>3、协助用户修复系统漏洞</p>
<p>4、系统内核参数优化</p>
<p>5、协助用户查找站点错误（500,502,503）</p></blockquote>
<p><strong>类别三、数据库设置</strong></p>
<blockquote><p>1、常见数据库的安装与设置（其中SQLServer需用户提供安装介质和许可）</p></blockquote>
<blockquote><p>2、导入数据库、还原数据库</p></blockquote>
<blockquote><p>3、Phpmyadmin安装(针对mysql数据库)</p></blockquote>
<blockquote><p>4、数据库优化设置</p></blockquote>
<blockquote><p>5、定期备份RDS数据库</p></blockquote>
<p><strong>类别四、网站程序设置</strong></p>
<blockquote><p>1、安装网站运行环境(LNMP/LAMP/TOMCAT/IIS/WDCP)</p>
<p>2、提供各种常见CMS系统（discuz、phpwind、wordpress、shopex、ecshop等）的安装/重装服务</p>
<p>3、PHP或Apache优化设置/IIS和Apache端口占用代理设置</p>
<p>4、HTTPS站点设置（需要用户购买SSL协议证书）</p>
<p>5、目录权限设置</p>
<p>6、网站域名绑定</p></blockquote>
<p><strong>类别五、远程监测/控</strong></p>
<blockquote><p>1、远程监测指定网站运行是否正常，异常情况下第一时间通知用户，在用户允许下,提供技人员协助处理</p>
<p>2、远程监控软件系统的部署和优化</p>
<p>3、远程监测服务器CPU、内存、磁盘、流量、端口等运行状态</p></blockquote>
<p><strong>类别六、数据迁移</strong></p>
<blockquote><p>1、原始数据(数据库数据、程序文件、附件等)迁移至用户购买的云服务器或者阿里云的RDS（支持单库数据量10G以内）</p></blockquote>
<p><strong>类别七、安全服务</strong></p>
<blockquote><p>1、Linux/Windows等常见系统安全加固</p>
<p>2、数据库Mssql/SQLServer数据库系统加固规范</p>
<p>3、常见中间件（Tomcat、IIS、Apache等）安全加固</p>
<p>4、基于阿里云云盾系列产品提供整体的基础防护、安全预警响应、漏洞修复等安全加固</p>
<p>5、阿里云云盾基础的5G流量的防DDoS攻击、网站后门检测、主机密码暴力破解防御、异地登录提醒等</p></blockquote>
<p><strong>类别八、解决方案提供</strong></p>
<blockquote><p>1、网站/应用流量、性能分析</p>
<p>2、基于阿里云ECS/RDS/OSS/OCS提供解决方案</p>
<p>3、低成本、高可用的架构部署执行</p>
<p>4、针对大流量社区论坛提供阿里云架构解决方案</p>
<p>5、提供基于阿里云SLB 的负载均衡高可用型设计</p></blockquote>
<p><strong>类别九、贴心增值服务</strong></p>
<blockquote><p>1、服务器定期体检，提供服务器的体检报告</p>
<p>2、周期备份站点程序、数据库等重要数据</p>
<p>3、服务器本地备份，备份重要的配置文件、数据库数据、程序和图片等</p>
<p>4、提供异地备份服务器/云存储，将客户服务器上的关键数据保存到异地备份服务器/云存储上，提高可靠性</p>
<p>5、每月分析网站运行状态、优化系统相关服务，保障网站稳定快速运行，提供性能扩展建议</p>
<p>6、实时监控服务器状态、故障第一时间人工排障</p>
<p>7、客户提出来的其它和服务器及系统相关的问题及时反馈给我们的客服或工程师会及时得到支持与服务</p></blockquote>
</div>
</div>
<div class="d-item rich-text">
<h2>售后支持范围</h2>
<div>在配置过程中遇到问题请直接联系在线客服（周一至周五）。</div>
</div>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="d-item">
<h2>产品价格</h2>
<table class="param-table price-table module-table" width="100%">
<thead>
<tr>
<td>版本名称</td>
<td>计费项</td>
<td>新购</td>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="1">按次</td>
<td>版本基础价格</td>
<td>1000元</td>
</tr>
<tr>
<td rowspan="1">月维</td>
<td>版本基础价格</td>
<td>800元</td>
</tr>
<tr>
<td rowspan="1">季度维</td>
<td>版本基础价格</td>
<td>2400元</td>
</tr>
<tr>
<td rowspan="1">半年维</td>
<td>版本基础价格</td>
<td>4800元</td>
</tr>
<tr>
<td rowspan="1">1年维</td>
<td>版本基础价格</td>
<td>9500元</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="box-icon">
<div class="element">
<div class="r-comment-list">
<h2></h2>
</div>
</div>
</div>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e8%bf%90%e7%bb%b4_%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%89%98%e7%ae%a1_%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bb%b4%e6%8a%a4/">服务器代运维_服务器托管_服务器维护</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e6%9c%8d%e5%8a%a1%e5%99%a8%e4%bb%a3%e8%bf%90%e7%bb%b4_%e6%9c%8d%e5%8a%a1%e5%99%a8%e6%89%98%e7%ae%a1_%e6%9c%8d%e5%8a%a1%e5%99%a8%e7%bb%b4%e6%8a%a4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用AWS 媒体服务构建全球直播解决方案</title>
		<link>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8aws-%e5%aa%92%e4%bd%93%e6%9c%8d%e5%8a%a1%e6%9e%84%e5%bb%ba%e5%85%a8%e7%90%83%e7%9b%b4%e6%92%ad%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/</link>
		<comments>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8aws-%e5%aa%92%e4%bd%93%e6%9c%8d%e5%8a%a1%e6%9e%84%e5%bb%ba%e5%85%a8%e7%90%83%e7%9b%b4%e6%92%ad%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:39:47 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[Amazon AWS]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[linux代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器安全代维]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[系统安全代维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[使用AWS 媒体服务构建全球直播解决方案]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3885</guid>
		<description><![CDATA[<p>作为全球云服务的领导者，AWS始终在创新的路上飞驰，仅2017年一年AWS就发布了1300多项新的服务、功能或 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8aws-%e5%aa%92%e4%bd%93%e6%9c%8d%e5%8a%a1%e6%9e%84%e5%bb%ba%e5%85%a8%e7%90%83%e7%9b%b4%e6%92%ad%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/">使用AWS 媒体服务构建全球直播解决方案</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>作为全球云服务的领导者，AWS始终在创新的路上飞驰，仅2017年一年AWS就发布了1300多项新的服务、功能或者特性，这其中就包括在2017年reInvent上发布的5个全新的媒体服务，MediaConvert, MediaLive, MeidaPackage, MediaStore和MediaTailor，这些完全托管的服务，使得用户可以在云中轻松构建具有广播品质的可靠视频工作流。用户在构建互联网视频，OTT视频业务的时候直接在AWS控制台上即可启动直播，转码，存储，广告插入等广播级的业务流程，可以按照使用量即用即付，随时启停，而无需前期投入购买昂贵的设备资产，无需进行基础架构运维的成本投入，。AWS平台具有全球部署能力，可以分分钟将业务扩展到全球各个区域。</p>
<p>下面我们将借助AWS Elemental MediaLive ， MediaPackage，CloudFront服务构建一套完整的直播OTT转码打包分发服务，通过这个实验您可以直观的体会到AWS的媒体服务是多么便捷，而您所需要的仅仅是一个AWS Global账号和一天可以上网的电脑。</p>
<p>&nbsp;</p>
<h3>1.  准备直播源</h3>
<p>MediaLive支持RTP，RTMP(Push), RTMP(Pull),HLS四种输入源，如果您已经有RTMP直播源可以直接用在本实验中。</p>
<p>本次实验以HLS为例，使用存储在S3上的一个预先转码完成的文件做为输入源，对于MediaLive来说，这个输入源就是一个直播源。</p>
<p>例如https://s3-us-west-2.amazonaws.com/mytestbucket-og-media-3/keynote-hls/testvideo.m3u8</p>
<p>确认此目录已经开启公开访问（关于S3的更多信息请参阅https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/Welcome.html）</p>
<h3>2.  创建MediaPackage Channel</h3>
<p>a.  登陆AWS Global 控制台，在Services中选择MediaPackage，</p>
<p>b.  在Channel页面，选择 Create Channel</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1-1.png" alt="1-1" width="924" height="501" /></a></p>
<p>c.  输入ID，即自行命名这个Channel，例如ch1。可选填Description栏</p>
<p>d.  Input type选择Apple HLS</p>
<p>e.  点击Create channel</p>
<p>f.  点击新创建的Channel，在Channel Overview页面选择Add/edit endpoint</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/2.png" alt="2" width="1116" height="440" /></a></p>
<p>g.  在endpoints页面点击Add，填写 ID，例如ch1-ep1，点击Save</p>
<p>h.  重复上述步骤创建第二个Channel和对应的endpoint</p>
<p>i.  记下channel的Input URL，username和password</p>
<h3>3.  创建MediaLive Channel</h3>
<p>a.  在控制台Services 中选择MediaLive</p>
<p>b.  选择Channels页面，点击Create Channel</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/3.png" alt="3" width="1579" height="823" /></a></p>
<p>c.  在Channel Name中填入自行创建的通道名</p>
<p>d.  在IAM Role 选择Create role from template。选中Remember ARN</p>
<p>（关于IAM Role更多信息请参见https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html）</p>
<h3>创建MediaLive Input</h3>
<p>e.  在Channel input部分点击Create input</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/4.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/4.png" alt="4" width="1223" height="896" /></a></p>
<p>f.  在Input name 创建一个名字</p>
<p>g.  Input type选择HLS</p>
<p>h.  将第一步准备的HLS源的地址填入Input source A和Input source B的URL中。注意，出于高可用性的考虑，MediaLive Input要求2个互为主备的输入源，本试验使用两个不同的存储桶的HLS URL做为输入源，在实际生产环境中也要两个不同的输入源地址来提供高可靠性。</p>
<p>i.  点击Create</p>
<h3>创建HLS Output Group</h3>
<p>j.  在channel template部分，选择HTTP live streaming模版，将会自动添加不同分辨率和码率的10个输出。也可以不使用模版，通过手动添加自定义output</p>
<p>k.  点击Output groups下的模版名TN2224，点击Credentials(optional)，选中Create AWS Elemental MediaLive parameter 将第2步创建的两个channel的URL，Username，password依次填入HLS Group destination A和HLS Group destination B。见下图</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/5.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/5.png" alt="5" width="1440" height="810" /></a></p>
<blockquote><p>l.  点击 Create channel</p></blockquote>
<h3>4.  启动channel并查看</h3>
<p>a.  Channel创建完成后是idle状态，选中之后点击Start</p>
<p>b.  使用第2步创建的endpoint，使用VLC player来播放这个直播流，，例如：</p>
<p>https://103xxxxxxxxe303.mediapackage.us-west-2.amazonaws.com/out/v1/c78bcxxxxxxxxxxxxxxxxxxxxxx45/index.m3u8</p>
<p>c.  如果不能看到直播视频流，请查看并确认MediaLive Channel 和MediaPackage Channel 的network in&amp;out都有流量</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/6.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/6.png" alt="6" width="792" height="856" /></a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/7.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/7.png" alt="7" width="780" height="830" /></a></p>
<blockquote>
<h4>MediaLive Channel网络状态</h4>
</blockquote>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/8-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/8-1.png" alt="8-1" width="1014" height="976" /></a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/8-2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/8-2.png" alt="8-2" width="996" height="940" /></a></p>
<blockquote>
<h4>MediaPackage Channel网络状态</h4>
</blockquote>
<h3>5.  使用CloudFront创建CDN发布</h3>
<p>a.  登陆AWS Global 控制台，在Services中选择CloudFront，选择Distributions，点击Create Distribution</p>
<p>b.  使用Web方式，点击Get Start</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/9.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/9.png" alt="9" width="1207" height="335" /></a></p>
<p>c.  在Origin Domain Name中填入第2步创建的MediaPackage end point域名，例如：https://103xxxxxxxxe303.mediapackage.us-west-2.amazonaws.com</p>
<p>在Origin Path 中填入MediaPackage end point中的路径，例如： /out/v1/c78bcxxxxxxxxxxxxxxxxxxxxxx45</p>
<p>Origin Protocol Policy 选择HTTPS only</p>
<p>其他选项可以不修改，（更多CloudFront相关信息，请参阅https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cf_dg.pdf）</p>
<p>点击Create Distribution</p>
<p>d.  等待创建完成后，status由In progress变为Deployed，即可使用CLoudFront分配的域名，加上index.m3u8即可例如d2xxxxxxxxxxx4n4m.cloudfront.net/index.m3u8</p>
<p>使用VLC player打开这个地址即可播放，这样就完成了播放流的CDN发布，CloudFront会选择距你延时最小的边缘站点进行加速。</p>
<p>&nbsp;</p>
<p>现在，您的直播业务就已经完成了构建，并具有全球分发和加速能力。AWS媒体服务具备内置可靠性和弹性。该服务可透明地管理多个可用区中的资源，并自动监控其运行状况，以便在不中断实时频道的情况下检测并解决任何潜在问题。借助 AWS 媒体服务，您可以获得比通常用于广播工作负载的基础设施更高的可靠性</p>
<p>MediaLive输入支持SD, HD, UHD，支持H.264 (AVC), HEVC (H.265), MPEG-2视频编码格式，支持AAC, Dolby Digital, Dolby Digital Plus, MPEG Audio, PCM音频格式，支持AFD，支持帧率控制，支持GOP结构设置，支持多种编码profile，支持多种字幕标准，支持时码插入，支持数字版权管理等等。</p>
<p>除了MediaLive+MediaPackage，您还可以使用MediaConvert做视频文件转码，使用MediaStore做内容存储，使用MediaTailor做广告插播。AWS媒体服务与包括 Amazon CloudFront、AWS CloudFormation、Amazon CloudWatch 在内的补充性 AWS 服务，以及适用于安全、管理和生产的第三方应用程序相集成，提供一整套工具来处理和交付实时的按需视频内容。最重要的是，AWS 媒体服务使您专注于内容，而非管理复杂的基础设施，让您能为观众提供卓越的体验。</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8aws-%e5%aa%92%e4%bd%93%e6%9c%8d%e5%8a%a1%e6%9e%84%e5%bb%ba%e5%85%a8%e7%90%83%e7%9b%b4%e6%92%ad%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/">使用AWS 媒体服务构建全球直播解决方案</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e4%bd%bf%e7%94%a8aws-%e5%aa%92%e4%bd%93%e6%9c%8d%e5%8a%a1%e6%9e%84%e5%bb%ba%e5%85%a8%e7%90%83%e7%9b%b4%e6%92%ad%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>建立 VPC 并基于参数动态创建子网的 CloudFormation 模板</title>
		<link>https://www.fuwuqiok.com/%e5%bb%ba%e7%ab%8b-vpc-%e5%b9%b6%e5%9f%ba%e4%ba%8e%e5%8f%82%e6%95%b0%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e5%ad%90%e7%bd%91%e7%9a%84-cloudformation-%e6%a8%a1%e6%9d%bf/</link>
		<comments>https://www.fuwuqiok.com/%e5%bb%ba%e7%ab%8b-vpc-%e5%b9%b6%e5%9f%ba%e4%ba%8e%e5%8f%82%e6%95%b0%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e5%ad%90%e7%bd%91%e7%9a%84-cloudformation-%e6%a8%a1%e6%9d%bf/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:36:45 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[aliyun服务器代维]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[linux服务器代维]]></category>
		<category><![CDATA[linux服务器代维护]]></category>
		<category><![CDATA[linux服务器维护]]></category>
		<category><![CDATA[linux系统代维]]></category>
		<category><![CDATA[服务器代维合同]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器安全代维]]></category>
		<category><![CDATA[服务器安全设置]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[系统安全代维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[建立 VPC 并基于参数动态创建子网的 CloudFormation 模板]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3869</guid>
		<description><![CDATA[<p>创建 Subnet 在大型企业云迁移项目组，经常会遇到企业将线下数据中心的子网迁移到 AWS 云上。线下的子网 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%bb%ba%e7%ab%8b-vpc-%e5%b9%b6%e5%9f%ba%e4%ba%8e%e5%8f%82%e6%95%b0%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e5%ad%90%e7%bd%91%e7%9a%84-cloudformation-%e6%a8%a1%e6%9d%bf/">建立 VPC 并基于参数动态创建子网的 CloudFormation 模板</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<h2>创建 Subnet</h2>
<p>在大型企业云迁移项目组，经常会遇到企业将线下数据中心的子网迁移到 AWS 云上。线下的子网划分一般会根据子网的使用功能不同进行划分，例如防火墙子网、负载均衡器子网、配合部署高可用架构的心跳线子网、应用系统子网等。不同企业的子网划分规则、子网的掩码大小和路由规则均不相同，并且在迁移后的系统上线后，企业还会经常划分新的网段以部署新的应用系统，这就需要有一个通用的模板来协助网络管理人员简化工作流程，提高工作效率。在我所经历过的一个项目中，生产 VPC 的子网划分有47个之多，且子网掩码有/24, /25, /26. 27/, /28等不同，在添加新的子网时，需要仔细计算新的子网 CIDR 以及为新建子网配置路由表。</p>
<h2>动态创建子网的方案概述</h2>
<p>因为 CloudFormation 不支持程序逻辑，只支持静态资源的创建，所以在本方案中采用 AWS Lambda 来基于输入参数动态创建不同类型的子网。我们定义了3种不同类型的子网：公共子网 (Public Subnet)， 外部子网 (External Subnet)，内部子网 (Internal Subnet) Subnet。<br />
公共子网的路由表有如下路由信息：</p>
<table border="1">
<tbody>
<tr>
<td><strong>Destination</strong></td>
<td><strong>Target</strong></td>
</tr>
<tr>
<td>0.0.0.0/0</td>
<td>igw-xxxxx (Internet Gateway)</td>
</tr>
</tbody>
</table>
<p>部署在公共子网中的服务器可以直接与 Internet 进行通信（缺省分配 Internet IP 地址，并且有指向 Internet Gateway 的缺省路由）。<br />
外部子网的路由表有如下路由信息：</p>
<table border="1">
<tbody>
<tr>
<td width="293"><strong>Destination</strong></td>
<td width="192"><strong>Target</strong></td>
</tr>
<tr>
<td width="293">0.0.0.0/0</td>
<td width="192">nat-xxxxx (NAT gateway)</td>
</tr>
<tr>
<td width="293">pl-xxxxxx (com.amazonaws.cn-north-1.s3)</td>
<td width="192">vpce-xxxxxxx</td>
</tr>
<tr>
<td width="293">pl-xxxx (com.amazonaws.cn-north-1.dynamodb)</td>
<td width="192">vpce-xxxx</td>
</tr>
</tbody>
</table>
<p>部署在外部子网的服务器可以通过 NAT Gateway 与 Internet 进行通信，并且可以不通过互联网访问 S3 和 dynamodb。<br />
内部子网的路由表有如下路由信息：</p>
<table border="1">
<tbody>
<tr>
<td width="293"><strong>Destination</strong></td>
<td width="192"><strong>Target</strong></td>
</tr>
<tr>
<td width="293">pl-xxxxxx (com.amazonaws.cn-north-1.s3)</td>
<td width="192">vpce-xxxxxxx</td>
</tr>
<tr>
<td width="293">pl-xxxx (com.amazonaws.cn-north-1.dynamodb)</td>
<td width="192">vpce-xxxx</td>
</tr>
</tbody>
</table>
<p>部署在内部子网的服务器不能访问 Internet，但是能直接访问 S3 和 dynamodb。<br />
本方案使用2个 CloudFomation 模板， 第一个模板(CreateBaseVpc.json)创建共享资源，例如 VPC、Internet Gateway、公共子网 (Public Subnet) 路由表、在各个可用区内创建公共子网、NAT Gateway、 VPC Endpoint (S3 endpoint和DynamoDB endpoint)和创建外部子网路由表。在这个模板中还创建了3个 Lambda 功能函数：</p>
<ul>
<ul>
<li>
<h4>SharedInfra – 对应 python 程序 create_shared_infra.zip</h4>
</li>
</ul>
</ul>
<p>功能：根据输入的参数，在程序运行的AWS Region的每个AZ内创建公共子网，将在 CreateBaseVpc.json 模板中建立的公共子网路由表关联到每个公共子网。 在每个公共子网内创建 NAT Gateway 和VPC endpoint，创建内部子网路由表，创建外部子网路由表。删除已经创建完成的资源，包括：子网、路由表、vpc endpoint、NAT Gateway、Elastic IP。</p>
<ul>
<ul>
<li>
<h4>CreateExternalRoute – 对应 python 程序 create_external_route.zip</h4>
</li>
</ul>
</ul>
<p>功能：创建外部子网路由表中的路由。因为 NAT Gateway 的创建速度比较慢，创建路由时一定要等待 NAT Gateway 的状态变成 available 后才可以成功。如果将此功能与 SharedInfra 放在一起，在执行的时候容易发生 Lambda 运行超时错误。删除已经创建的路由信息。</p>
<ul>
<ul>
<li>
<h4>SubnetAutomation – 对应 python 程序 subnet_creation.zip</h4>
</li>
</ul>
</ul>
<p>功能：根据输入的参数，计算网路的子网掩码，创建公共子网、外部子网和内部子网，并将在公共子网路由表、内部子网路由表和外部子网路由表关联到相应的子网上。删除已经创建完成子网。在 CreateBaseVpc.json 模板运行时，通过创建用户定义资源 ExternalRouteCreation和SharedInfraCreation 分别触发 Lambda 功能 CreateExternalRoute 和 SharedInfra，从而完成共享资源的创建。并提供了 SubnetAutomation 的功能函数 ARN，供运行第二个模板时调用。</p>
<p>第二个模板 (SubnetAuto.json) 创建动态资源，例如根据输入参数的不同计算子网掩码、创建子网并分配路由表。</p>
<p>本方案中创建子网时的输入参数并不需要 CIDR，只需要指定子网要提供的可用 IP 地址的个数即可，程序在计算可用 IP 地址时已经排除了 AWS 子网子网中保留的5个 IP 地址。例如：如果要创建有50个 IP 的子网，则子网掩码是/26，共计有64-5=59个可用IP地址；如果要创建有16个 IP 的子网，则子网掩码是/27，共计有32-5=27个可用 IP 地址。</p>
<p>创建子网的参数输入规则如下：</p>
<ol>
<li>每个子网包含4个部分，之间使用“:”分隔 – 功能: IP 地址数量:可用区:子网类型</li>
<li>可用区根据Region的不同可选项为：1a,1b,1c,1d,1e等</li>
<li>子网类型的可选项为：p（公共子网），e（外部子网）或者 i（内部子网）</li>
<li>不同子网之间使用“,”分隔。</li>
</ol>
<h2>安装和运行</h2>
<ol>
<ol>
<li>在浏览器中输入：<a href="https://github.com/shaneliuyx/autosubnet_creation">https://github.com/shaneliuyx/autosubnet_creation</a>， 下载2个 json 文件和3个 zip 文件。将3个 zip 文件上传到一个 S3 存储桶中。</li>
<li>打开 AWS 控制台，并选择 CloudFormation，选择存储在本地的 json 文件 json，运行 CloudFormation 模板。</li>
<li>假设输入缺省的 PublicSubnetCapacity 和 VpcCidr 如下：</li>
</ol>
</ol>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template1.png" alt="vpc-cloudformation-template1" width="878" height="399" /></a></p>
<ol>
<ol>
<li>选择 Next，直至 AWS 资源开始创建</li>
<li>最终运行结果如下：</li>
</ol>
</ol>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template2.png" alt="vpc-cloudformation-template2" width="878" height="387" /></a></p>
<p>创建的 Subnet 如下：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template3.png" alt="vpc-cloudformation-template3" width="878" height="69" /></a></p>
<p>公共子网路由表：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template4.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template4.png" alt="vpc-cloudformation-template4" width="560" height="133" /></a></p>
<ol>
<ol>
<li>打开 AWS 控制台，并选择 CloudFormation，选择存储在本地的 json 文件 json，运行 CloudFormation 模板。</li>
<li>输入 SubnetParameters：web1:50:1a:p,web1:50:1b:p,app1:50:1a:e,app1:50:1b:e,db1:50:1a:i,db1:50:1b:i</li>
</ol>
</ol>
<p>这将创建6个子网，其中 Web、APP 和 DB 各2个子网，分布在2个 AZ 中:</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template5.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template5.png" alt="vpc-cloudformation-template5" width="878" height="346" /></a></p>
<ol>
<ol>
<li>运行结果如下:</li>
</ol>
</ol>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template6.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template6.png" alt="vpc-cloudformation-template6" width="878" height="204" /></a></p>
<p>创建的子网：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template7.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template7.png" alt="vpc-cloudformation-template7" width="878" height="69" /></a><br />
<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template8.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template8.png" alt="vpc-cloudformation-template8" width="878" height="72" /></a><br />
<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template9.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template9.png" alt="vpc-cloudformation-template9" width="878" height="70" /></a></p>
<p>内部子网路由表：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template10.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template10.png" alt="vpc-cloudformation-template10" width="650" height="270" /></a></p>
<p>外部子网路由表：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template11.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template11.png" alt="vpc-cloudformation-template11" width="650" height="305" /></a></p>
<p>假设现在还要创建一个包含16个有效 IP 的公共子网用于部署网络设备，可以再运行一次SubnetAuto.json，输出参数：net1:16:1a:p,net1:16:1b:p<br />
则可以创建出如下子网：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template12.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template12.png" alt="vpc-cloudformation-template12" width="878" height="68" /></a></p>
<h2>与其他 CloudFormation 模板配合使用，进行 Landing Zone 部署</h2>
<p>Landing Zone 中文名称翻译成着陆区，是指 AWS 的基本环境，用户在其上部署安全和运维流程。Landing Zone 的内容包含：账户结构、账户安全基线、网络结构和AWS用户访问管理。下面简单的介绍一下 AWS Landing Zone 的最佳实践。</p>
<ul>
<ul>
<li>
<h4>账户结构</h4>
</li>
</ul>
</ul>
<p>AWS 建议账户的划分与企业的组织架构和运维部门的组织架构一致。例如按照如下结构划分账户：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template13.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template13.png" alt="vpc-cloudformation-template13" width="400" height="451" /></a></p>
<ul>
<ul>
<li>
<h4>账户安全基线</h4>
</li>
</ul>
</ul>
<p>AWS 建议在所有账户内打开 CloudTrail 和 AWS Config 功能。所有日志信息要复制到安全账户内的 S3 存储桶中。建立跨账户访问的 Auditor 角色。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template14.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/vpc-cloudformation-template14.png" alt="vpc-cloudformation-template14" width="400" height="433" /></a></p>
<ul>
<ul>
<li>
<h4>网络结构</h4>
</li>
</ul>
</ul>
<p>AWS 建议删除缺省 VPC，建立客户自己定义的 VPC。建立共享 VPC（包含目录服务、邮件服务器等），应用 VPC 与共享 VP C建立 Peer 关系。通过 VPN 或者 Direct Connect 与线下的数据中心建立网络连接，或者采用 Transit VPC（参考 <a href="https://amazonaws-china.com/answers/networking/aws-global-transit-network/">https://aws.amazon.com/answers/networking/aws-global-transit-network/</a> ，<a href="https://amazonaws-china.com/blogs/aws/aws-solution-transit-vpc/">https://aws.amazon.com/blogs/aws/aws-solution-transit-vpc/</a> ）建立集中的网络控制机制。网络输入输出的安全控制（建立堡垒机，建立 Security Group、网络 ACL 或者第三方的防火墙工具）</p>
<ul>
<ul>
<li>
<h4>AWS 用户访问管理</h4>
</li>
</ul>
</ul>
<p>包括建议基于 SAML 的单点登录，建立跨账户角色访问机制等。</p>
<p>上述介绍的建立 VPC 和子网的方法可以看成建立 Landing Zone 的基础，在此之上，我们还可以使用 CloudFormation 建立堡垒机，打开 CloudTrail 和 AWS config，建立不同账户间的日志（log）复制机制，建立 Config Rule 进行合规性检查等等。 AWS 已经开发出多个 QuickStart CloudFormation 脚本协助用户完成上述工作，但是这些脚本在中国区（BJS）运行时需要做一些修改。下表列出了一些可用的资源，其中中国区部署模板是我针对中国区的特点修改过的，可以在BJS正常运行。</p>
<table border="1">
<tbody>
<tr>
<td></td>
<td></td>
<td><strong>原始代码</strong> <strong>参考</strong></td>
<td><strong>AWS </strong><strong>中国区部署模板</strong></td>
</tr>
<tr>
<td rowspan="5"><strong>账户安全基线</strong></td>
<td>配置 AWS config 和 CloudTrail</td>
<td rowspan="3"><a href="https://github.com/aws-quickstart/quickstart-compliance-pci">https://github.com/aws-quickstart/quickstart-compliance-pci</a></td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/logging.template">https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/logging.template</a></td>
</tr>
<tr>
<td>配置 IAM 角色</td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/iam.template">https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/iam.template</a></td>
</tr>
<tr>
<td>配置 Config rules</td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/config-rules.template">https://s3.cn-north-1.amazonaws.com.cn/shane/quickstart-security/config-rules.template</a></td>
</tr>
<tr>
<td>将 CloudWatch Log 转储到S3存储桶</td>
<td><a href="https://github.com/alertlogic/cloudwatch-logs-s3-export#setup">https://github.com/alertlogic/cloudwatch-logs-s3-export#setup</a></td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/cwl-s3-export-new.template">https://s3.cn-north-1.amazonaws.com.cn/shane/cwl-s3-export-new.template</a></p>
<p>使用说明：<a href="https://s3.cn-north-1.amazonaws.com.cn/shane/User+Guide+-+Copy+VPC+Flow+Logs+to+S3+CloudFormation+Templates.docx">https://s3.cn-north-1.amazonaws.com.cn/shane/User+Guide+-+Copy+VPC+Flow+Logs+to+S3+CloudFormation+Templates.docx</a></td>
</tr>
<tr>
<td>将一个账户下的 S3 存储桶复制到另一个账户的 S3</td>
<td></td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/1source.json">https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/1source.json</a><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/2target.json">https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/2target.json</a><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/3source.json">https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/3source.json</a></p>
<p>使用说明：<a href="https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/User+Guide+-+S3+to+S3+Replication+CloudFormation+Templates.docx">https://s3.cn-north-1.amazonaws.com.cn/shane/s3-to-s3/User+Guide+-+S3+to+S3+Replication+CloudFormation+Templates.docx</a></td>
</tr>
<tr>
<td rowspan="2"><strong>网络结构</strong></td>
<td>配置 Linux Bastion</td>
<td><a href="https://github.com/aws-quickstart/quickstart-linux-bastion">https://github.com/aws-quickstart/quickstart-linux-bastion</a></td>
<td><a href="https://s3.cn-north-1.amazonaws.com.cn/shane/linux-bastion.template">https://s3.cn-north-1.amazonaws.com.cn/shane/linux-bastion.template</a>不支持 CentOS</td>
</tr>
<tr>
<td>建立 VPC 和分配 Subnet</td>
<td><a href="https://github.com/aws-quickstart/quickstart-aws-vpc">https://github.com/aws-quickstart/quickstart-aws-vpc</a></td>
<td><a href="https://github.com/shaneliuyx/autosubnet_creation">https://github.com/shaneliuyx/autosubnet_creation</a></td>
</tr>
</tbody>
</table>
<h3></h3>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%bb%ba%e7%ab%8b-vpc-%e5%b9%b6%e5%9f%ba%e4%ba%8e%e5%8f%82%e6%95%b0%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e5%ad%90%e7%bd%91%e7%9a%84-cloudformation-%e6%a8%a1%e6%9d%bf/">建立 VPC 并基于参数动态创建子网的 CloudFormation 模板</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%bb%ba%e7%ab%8b-vpc-%e5%b9%b6%e5%9f%ba%e4%ba%8e%e5%8f%82%e6%95%b0%e5%8a%a8%e6%80%81%e5%88%9b%e5%bb%ba%e5%ad%90%e7%bd%91%e7%9a%84-cloudformation-%e6%a8%a1%e6%9d%bf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用 AWS Config 监控和响应 Amazon Simple Storage Service (S3) 允许公开读写访问权限</title>
		<link>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-aws-config-%e7%9b%91%e6%8e%a7%e5%92%8c%e5%93%8d%e5%ba%94-amazon-simple-storage-service-s3-%e5%85%81%e8%ae%b8%e5%85%ac%e5%bc%80%e8%af%bb%e5%86%99%e8%ae%bf%e9%97%ae%e6%9d%83/</link>
		<comments>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-aws-config-%e7%9b%91%e6%8e%a7%e5%92%8c%e5%93%8d%e5%ba%94-amazon-simple-storage-service-s3-%e5%85%81%e8%ae%b8%e5%85%ac%e5%bc%80%e8%af%bb%e5%86%99%e8%ae%bf%e9%97%ae%e6%9d%83/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:31:57 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[linux代维]]></category>
		<category><![CDATA[linux服务器代维]]></category>
		<category><![CDATA[linux服务器代维护]]></category>
		<category><![CDATA[linux服务器维护]]></category>
		<category><![CDATA[linux系统代维]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器安全代维]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[利用 AWS Config 监控和响应 Amazon Simple Storage Service (S3) 允许公开读写访问权限]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3845</guid>
		<description><![CDATA[<p>AWS Config 支持持续监控 AWS 资源，简化评估、审核以及记录资源配置和变化的过程。为此，AWS C [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-aws-config-%e7%9b%91%e6%8e%a7%e5%92%8c%e5%93%8d%e5%ba%94-amazon-simple-storage-service-s3-%e5%85%81%e8%ae%b8%e5%85%ac%e5%bc%80%e8%af%bb%e5%86%99%e8%ae%bf%e9%97%ae%e6%9d%83/">利用 AWS Config 监控和响应 Amazon Simple Storage Service (S3) 允许公开读写访问权限</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p><a title="AWS Config" href="https://amazonaws-china.com/config" target="_blank" rel="noopener noreferrer">AWS Config</a> 支持持续监控 AWS 资源，简化评估、审核以及记录资源配置和变化的过程。为此，AWS Config 使用一系列规则来定义 AWS 资源所需的配置状态。AWS Config 提供多种 <a title="AWS 托管规则" href="https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html" target="_blank" rel="noopener noreferrer">AWS 托管规则</a>来解决各种安全问题，例如，检查您是否已将 Amazon Elastic Block Store (Amazon EBS) 卷加密，是否已正确标记资源，以及是否为根账户启用了 Multi-Factor Authentication (MFA)。您还可以使用 <a title="AWS Lambda" href="https://amazonaws-china.com/lambda/" target="_blank" rel="noopener noreferrer">AWS Lambda</a> 函数创建<a title="自定义规则" href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules.html" target="_blank" rel="noopener noreferrer">自定义规则</a>，以编写整理您的合规性需求。</p>
<p>在本文中，我们将向您展示如何使用 AWS Config 监控 <a title="Amazon Simple Storage Service" href="https://amazonaws-china.com/s3/" target="_blank" rel="noopener noreferrer">Amazon Simple Storage Service</a> (S3) 存储桶 ACL 和策略，确定是否存在允许公开读写访问权限的违规行为。如果 AWS Config 发现违反策略的行为，我们会使其触发 <a title="Amazon CloudWatch Event" href="https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html" target="_blank" rel="noopener noreferrer">Amazon CloudWatch Event</a> 规则以触发 <a title="AWS Lambda" href="https://amazonaws-china.com/blogs/security/how-to-centralize-dns-management-in-a-multi-account-environment/" target="_blank" rel="noopener noreferrer">AWS Lambda</a> 函数，从而更正 S3 存储桶 ACL，或通过 <a title="Amazon Simple Notification Service" href="https://amazonaws-china.com/sns" target="_blank" rel="noopener noreferrer">Amazon Simple Notification Service</a> (Amazon SNS) 通知您存在违反策略且允许公开读写访问权限的行为。我们将通过五个主要步骤为您演示此过程。</p>
<ol>
<li><strong>启用 AWS Config</strong> 来监控 Amazon S3 存储桶 ACL 和策略，以发现违规行为。</li>
<li><strong>创建 IAM 角色和策略</strong>，为 Lambda 函数授予读取 S3 存储桶策略和通过 SNS 发送提醒的权限。</li>
<li><strong>创建和配置 CloudWatch Events 规则</strong>，在 AWS Config 检测到违反 S3 存储桶 ACL 或策略的行为时触发 Lambda 函数。</li>
<li><strong>创建 Lambda 函数</strong>，以使用 IAM 角色审核 S3 存储桶 ACL 和策略、更正 ACL，并通知您的团队策略违规行为。</li>
<li><strong>验证监控解决方案</strong>。</li>
</ol>
<blockquote><p><strong>注意：</strong>本文假设您的合规性策略要求您所监控的存储桶不允许公开读写访问权限。例如，如果您打算开放提供静态内容的存储桶，可以从本文着手，根据您的需要定制解决方案。</p></blockquote>
<p>在本文末尾，我们将提供一个可实施本文所述解决方案的 AWS CloudFormation 模板。您可以使用该模板在多个区域快速部署解决方案。</p>
<blockquote><p><strong>重要说明</strong>：如果使用部署的某些资源（包括使用所提供的 CloudFormation 模板部署的资源），则在使用这些资源期间会产生费用。在提供 AWS Config 规则的每个区域使用这些规则都会产生费用。</p></blockquote>
<h2>架构</h2>
<p>以下是我们将要实施的架构图：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-01-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-01-1.png" alt="AWS-config-01-1" width="1000" height="523" /></a></p>
<p>&nbsp;</p>
<h2>步骤 1：启用 AWS Config 和 Amazon S3 存储桶监控功能</h2>
<p>以下步骤将演示如何设置 AWS Config 来监控 Amazon S3 存储桶。</p>
<ol>
<li>登录 AWS 管理控制台，并打开<a title="未定义的" href="https://console.aws.amazon.com/config/" target="_blank" rel="noopener noreferrer">AWS Config 控制台</a>。</li>
<li>如果这是您第一次使用 AWS Config，请选择<strong>开始使用</strong>。如果您已经使用过 AWS Config，请选择<strong>设置</strong>。</li>
<li>在<strong>设置</strong>页面中的 <strong>Resource types to record</strong> (要记录的资源类型) 下，取消选中 <strong>All resources</strong> (所有资源) 复选框。在 <strong>Specific types</strong> (具体类型) 列表中，选择 <strong>S3</strong> 下的<strong>存储桶</strong>。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-02.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-02.png" alt="AWS-config-02" width="1000" height="497" /></a>
<p>&nbsp;</li>
<li>选择用于存储配置历史记录和快照的 Amazon S3 存储桶。我们会创建一个新的 Amazon S3 存储桶。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-03.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-03.png" alt="AWS-config-03" width="942" height="213" /></a>
<p>&nbsp;</p>
<ol type="a">
<li>如果您更希望使用账户中现有的 Amazon S3 存储桶，请选择 <strong>Choose a bucket from your account</strong> (从您的账户中选择存储桶) 单选按钮，然后使用下拉菜单选择现有的存储桶。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-04.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-04.png" alt="AWS-config-04" width="800" height="286" /></a>
<p>&nbsp;</li>
</ol>
</li>
<li>在 <strong>Amazon SNS topic</strong> (Amazon SNS 主题) 下，选中 <strong>Stream configuration changes and notifications to an Amazon SNS topic</strong> (将配置更改和通知流式传输至 Amazon SNS 主题) 旁边的复选框，然后选择 <strong>Create a topic</strong> (创建主题) 旁边的单选按钮。
<ol type="a">
<li>您也可以选择之前创建和订阅的主题。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-05.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-05.png" alt="AWS-config-05" width="800" height="217" /></a>
<p>&nbsp;</li>
<li>如果您创建了新的 SNS 主题，则需要订阅它才能收到通知。我们将在后面的步骤中演示此操作。</li>
</ol>
</li>
<li>除非您已经有要使用的角色，否则请在 <strong>AWS Config role</strong> (AWS Config 角色) 下选择 <strong>Create a role</strong> (创建角色)。我们使用系统自动推荐的角色名称。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-06.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-06.png" alt="AWS-config-06" width="800" height="120" /></a>
<p>&nbsp;</li>
<li>选择<strong>下一步</strong>。</li>
<li>配置 Amazon S3 存储桶监控规则：
<ol type="a">
<li>在 <strong>AWS Config rules</strong> (AWS Config 规则) 页面上搜索 <strong>S3</strong>，选择 <strong>s3-bucket-publice-read-prohibited</strong> 和 <strong>s3-bucket-public-write-prohibited</strong> 规则，然后单击<strong>下一步</strong>。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-07.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-07.png" alt="AWS-config-07" width="800" height="425" /></a>
<p>&nbsp;</li>
<li>在<strong>审核</strong>页面上，选择<strong>确认</strong>。AWS Config 此时会分析您的 Amazon S3 存储桶，捕获它们当前的配置，并根据我们选择的规则评估配置。</li>
</ol>
</li>
<li>如果您创建了新 Amazon SNS 主题，请打开 Amazon SNS 管理控制台并找到您创建的主题：<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-08.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-08.png" alt="AWS-config-08" width="800" height="135" /></a>
<p>&nbsp;</li>
<li>复制该主题的 ARN（以 arn: 开头的字符串），您需要在后面的步骤中使用它。</li>
<li>选择主题旁边的复选框，然后在<strong>操作</strong>菜单下选择<strong>订阅主题</strong>。</li>
<li>选择<strong>电子邮件</strong>作为协议，输入您的电子邮件地址，然后选择<strong>创建订阅</strong>。</li>
<li>几分钟后，您会收到一封电子邮件，要求您确认订阅与此主题有关的通知。选择对应链接以确认订阅。</li>
</ol>
<h2>步骤 2：为 Lambda 创建角色</h2>
<p>我们的 Lambda 需要相关权限，才能检查和修改 Amazon S3 存储桶 ACL 和策略，记录 CloudWatch 日志并发布到 Amazon SNS 主题。现在，我们将设置自定义 AWS Identity and Access Management (IAM) 策略和角色来支持这些操作，并将它们分配到我们将在下一节中创建的 Lambda 函数。</p>
<ol>
<li>在 AWS 管理控制台中，在<strong>服务</strong>下选择 <strong>IAM</strong> 以访问 IAM 控制台。</li>
<li>创建具有以下权限的策略，或者复制以下策略：
<div class="hide-language">
<pre class=" language-text"><code class=" language-text">
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "SNSPublish",
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3GetBucketACLandPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketAcl",
                "s3:GetBucketPolicy"
            ],
            "Resource": "*"
        },
        {
            "Sid": "S3PutBucketACLAccess",
            "Effect": "Allow",
            "Action": "s3:PutBucketAcl",
            "Resource": "arn:aws:s3:::*"
        },
        {
            "Sid": "LambdaBasicExecutionAccess",
            "Effect"quot;: "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "*"
        }
    ]
}

</code></pre>
</div>
</li>
<li>为 Lambda 函数创建角色：
<ol type="a">
<li>从要使用该角色的服务列表中选择 <strong>Lambda</strong>。</li>
<li>选择您之前创建的策略旁边的复选框，然后选择 <strong>Next: Review</strong> (下一步：审核)</li>
<li>指定角色名称，为其输入描述，然后选择<strong>创建角色</strong>。在该示例中，我们将角色命名为 LambdaS3PolicySecuringRole。</li>
</ol>
</li>
</ol>
<h2>步骤 3：创建和配置 CloudWatch 规则</h2>
<p>在这一节中，我们将创建一个 CloudWatch 规则，以便在 AWS Config 确定您的 Amazon S3 存储桶不合规时触发 Lambda 函数。</p>
<ol>
<li>在 AWS 管理控制台中，在<strong>服务</strong>下选择 <strong>CloudWatch</strong>。</li>
<li>在左侧的<strong>事件</strong>下，选择<strong>规则</strong>。</li>
<li>单击<strong>创建规则</strong>。</li>
<li>在 <strong>Step 1: Create rule</strong> (第 1 步：创建规则) 中的<strong>事件源</strong>下，选择下拉列表并选择<strong>生成自定义事件模式</strong>。</li>
<li>复制以下模式，并将其粘贴到文本框中：
<div class="hide-language">
<pre class=" language-text"><code class=" language-text">
{
  "source": [
    "aws.config"
  ],
  "detail": {
    "requestParameters": {
      "evaluations": {
        "complianceType": [
          "NON_COMPLIANT"
        ]
      }
    },
    "additionalEventData": {
      "managedRuleIdentifier": [
        "S3_BUCKET_PUBLIC_READ_PROHIBITED",
        "S3_BUCKET_PUBLIC_WRITE_PROHIBITED"
      ]
    }
  }
}

			</code></pre>
</div>
<p>该模式会在检查 Amazon S3 存储桶的公开访问权限时匹配 AWS Config 生成的事件。</li>
<li>我们将在稍后添加 Lambda 目标。现在，选择您之前创建的 Amazon SNS 主题，然后选择<strong>配置详细信息</strong>。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-09-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-09-1.png" alt="AWS-config-09-1" width="1000" height="530" /></a>
<p>&nbsp;</li>
<li>输入规则的名称和描述。在该示例中，我们指定名称 AWSConfigFoundOpenBucket</li>
<li>单击<strong>创建规则</strong>。</li>
</ol>
<h2>步骤 4：创建 Lambda 函数</h2>
<p>在这一节中，我们将创建新的 Lambda 函数，用于检查 Amazon S3 存储桶的 ACL 和存储桶策略。如果发现存储桶 ACL 允许公开访问权限，该 Lambda 函数会将其覆盖，改为私密。如果找到了存储桶策略，Lambda 函数会创建 SNS 消息，将该策略添加到消息正文中，然后将其发布到我们创建的 Amazon SNS 主题。存储桶策略可能很复杂，而覆盖策略可能会导致访问权限意外丢失，因此该 Lambda 函数不会尝试对您的策略进行任何更改。</p>
<ol>
<li>获取之前创建的 Amazon SNS 主题的 ARN。</li>
<li>在 AWS 管理控制台中，在<strong>服务</strong>下选择 <strong>Lambda</strong> 进入 Lambda 控制台。</li>
<li>在控制面板中，选择<strong>创建函数</strong>。或者，如果您直接进入了<strong>函数</strong>页面，也可以选择右上角的<strong>创建函数</strong>按钮。</li>
<li>在<strong>创建函数</strong>页面上：
<ol type="a">
<li>选择<strong>从头开始创作</strong>。</li>
<li>为该函数提供一个名称。我们使用 AWSConfigOpenAccessResponder。</li>
<li>我们编写的 Lambda 函数与 Python 3.6 兼容，所以请在<strong>运行语言</strong>下拉列表中选择 <strong>Python 3.6</strong>。</li>
<li>在<strong>角色</strong>下选择<strong>选择现有角色</strong>。选择您在前一节中创建的角色，然后选择<strong>创建函数</strong>。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-09.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-09.png" alt="AWS-config-09" width="1000" height="524" /></a>
<p>&nbsp;</li>
</ol>
</li>
<li>现在，我们根据之前创建的规则添加 CloudWatch 事件。
<ol type="a">
<li>在 <strong>Add triggers</strong> (添加触发器) 部分，选择 <strong>CloudWatch Events</strong>。CloudWatch Events 框应该会显示在 Lambda 函数左侧，还会显示一条内容为 <strong>Configuration required</strong> (需要配置) 的备注。<a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-11.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-11.png" alt="AWS-config-11" width="1000" height="361" /></a>
<p>&nbsp;</li>
<li>在<strong>规则</strong>下拉框中，选择您之前创建的规则，然后选择<strong>添加</strong>。</li>
</ol>
</li>
<li>向上滚动到 <strong>Designer</strong> (设计者) 部分，然后选择您的 Lambda 函数的名称。</li>
<li>删除默认代码，然后粘贴以下代码：
<div class="hide-language">
<pre class=" language-text"><code class=" language-text">
import boto3
from botocore.exceptions import ClientError
import json
import os

ACL_RD_WARNING = "The S3 bucket ACL allows public read access."
PLCY_RD_WARNING = "The S3 bucket policy allows public read access."
ACL_WRT_WARNING = "The S3 bucket ACL allows public write access."
PLCY_WRT_WARNING = "The S3 bucket policy allows public write access."
RD_COMBO_WARNING = ACL_RD_WARNING + PLCY_RD_WARNING
WRT_COMBO_WARNING = ACL_WRT_WARNING + PLCY_WRT_WARNING

def policyNotifier(bucketName, s3client):
    try:
        bucketPolicy = s3client.get_bucket_policy(Bucket = bucketName)
        # notify that the bucket policy may need to be reviewed due to security concerns
        sns = boto3.client('sns')
        subject = "Potential compliance violation in " + bucketName + " bucket policy"
        message = "Potential bucket policy compliance violation. Please review: " + json.dumps(bucketPolicy['Policy'])
        # send SNS message with warning and bucket policy
        response = sns.publish(
            TopicArn = os.environ['TOPIC_ARN'],
            Subject = subject,
            Message = message
        )
    except ClientError as e:
        # error caught due to no bucket policy
        print("No bucket policy found; no alert sent.")

def lambda_handler(event, context):
    # instantiate Amazon S3 client
    s3 = boto3.client('s3')
    resource = list(event['detail']['requestParameters']['evaluations'])[0]
    bucketName = resource['complianceResourceId']
    complianceFailure = event['detail']['requestParameters']['evaluations'][0]['annotation']
    if(complianceFailure == ACL_RD_WARNING or complianceFailure == ACL_WRT_WARNING):
        s3.put_bucket_acl(Bucket = bucketName, ACL = 'private')
    elif(complianceFailure == PLCY_RD_WARNING or complianceFailure == PLCY_WRT_WARNING):
        policyNotifier(bucketName, s3)
    elif(complianceFailure == RD_COMBO_WARNING or complianceFailure == WRT_COMBO_WARNING):
        s3.put_bucket_acl(Bucket = bucketName, ACL = 'private')
        policyNotifier(bucketName, s3)
    return 0  # done
			</code></pre>
</div>
</li>
<li>向下滚动到<strong>环境变量</strong>部分。该代码使用一个环境变量来存储 Amazon SNS 主题的 ARN。
<ol type="a">
<li>输入 TOPIC_ARN 作为密钥。</li>
<li>输入之前创建的 Amazon SNS 主题的 ARN 作为值。</li>
</ol>
</li>
<li>在 <strong>Execution role</strong> (执行角色) 下选择<strong>选择现有角色</strong>，然后从下拉菜单中选择之前创建的角色。</li>
<li>保留其他内容不变，然后在顶部选择<strong>保存</strong>。</li>
</ol>
<h2>步骤 5：验证效果</h2>
<p>到现在为止，我们已经有了一个 Lambda 函数、一个 Amazon SNS 主题、监控 Amazon S3 存储桶的 AWS Config，以及在发现存储桶不合规时触发 Lambda 函数的 CloudWatch 规则。我们来进行测试，确保它们能够正常工作。</p>
<p>我们有在受 AWS Config 监控的区域中创建的 Amazon S3 存储桶 myconfigtestbucket，还有关联的 Lambda 函数。ACL 或策略中未设置该存储桶的公开读写访问权限，所以它是合规的。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-12.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-12.png" alt="AWS-config-12" width="1000" height="417" /></a></p>
<p>我们来更改存储桶的 ACL，以允许公开列出对象：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-13.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-13.png" alt="AWS-config-13" width="1000" height="545" /></a></p>
<p>保存后，该存储桶便可公开访问了。几分钟后，AWS Config 控制面板会发现一项不合规的资源：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-14.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-14.png" alt="AWS-config-14" width="1000" height="405" /></a></p>
<p>在 Amazon S3 控制台中，我们可以看到：在调用由之前创建的 CloudWatch 规则触发的 Lambda 函数后，存储桶中不再公开列出对象。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-15.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-15.png" alt="AWS-config-15" width="1000" height="619" /></a></p>
<p>请注意，AWS Config 控制面板此时显示没有不合规的资源了：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-16.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-16.png" alt="AWS-config-16" width="1000" height="420" /></a></p>
<p>现在，我们来配置允许列表访问的存储桶策略，以尝试进行 Amazon S3 存储桶策略检查：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-17.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-17.png" alt="AWS-config-17" width="1000" height="421" /></a></p>
<p>对 myconfigtestbucket 存储桶设置该存储桶策略后，AWS Config 会在几分钟后检测到该存储桶不再合规。因为这是存储桶策略而不是 ACL，所以我们将一条通知发布到我们之前创建的 SNS 主题，以通知我们可能违反策略的行为：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-18.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/AWS-config-18.png" alt="AWS-config-18" width="1000" height="255" /></a></p>
<p>获知该策略允许公开列出存储桶后，我们现在可以修改或删除该策略，随后 AWS Config 会检测到资源符合策略。</p>
<h2>结论</h2>
<p>在本文中，我们演示了如何使用 AWS Config 监控 Amazon S3 存储桶是否使用公开的读写访问权限 ACL 和策略。另外，我们演示了如何使用 Amazon CloudWatch、Amazon SNS 和 Lambda 覆盖公开的存储桶 ACL，或者在存储桶使用可疑策略时提醒您。您可以使用 <a title="CloudFormation 模板" href="https://s3.amazonaws.com/awsiammedia/public/sample/AWSConfigToMonitorAndRespondToAmazonS3Buckets/config.template" target="_blank" rel="noopener noreferrer">CloudFormation 模板</a>在多个区域快速部署该解决方案。通过该方法，您将能够轻松找出并保护公开的 Amazon S3 存储桶 ACL 和策略。将该解决方案部署到多个区域后，可以使用 AWS Config 聚合器来聚合结果。阅读本文<a title="了解更多信息" href="https://amazonaws-china.com/blogs/aws/aws-config-update-aggregate-compliance-data-across-accounts-regions/" target="_blank" rel="noopener noreferrer">了解更多信息</a>。</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-aws-config-%e7%9b%91%e6%8e%a7%e5%92%8c%e5%93%8d%e5%ba%94-amazon-simple-storage-service-s3-%e5%85%81%e8%ae%b8%e5%85%ac%e5%bc%80%e8%af%bb%e5%86%99%e8%ae%bf%e9%97%ae%e6%9d%83/">利用 AWS Config 监控和响应 Amazon Simple Storage Service (S3) 允许公开读写访问权限</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-aws-config-%e7%9b%91%e6%8e%a7%e5%92%8c%e5%93%8d%e5%ba%94-amazon-simple-storage-service-s3-%e5%85%81%e8%ae%b8%e5%85%ac%e5%bc%80%e8%af%bb%e5%86%99%e8%ae%bf%e9%97%ae%e6%9d%83/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>将亚马逊 AWS S3 存储桶的访问权限到一个特定 IAM 角色</title>
		<link>https://www.fuwuqiok.com/%e5%b0%86%e4%ba%9a%e9%a9%ac%e9%80%8a-aws-s3-%e5%ad%98%e5%82%a8%e6%a1%b6%e7%9a%84%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e5%88%b0%e4%b8%80%e4%b8%aa%e7%89%b9%e5%ae%9a-iam-%e8%a7%92%e8%89%b2/</link>
		<comments>https://www.fuwuqiok.com/%e5%b0%86%e4%ba%9a%e9%a9%ac%e9%80%8a-aws-s3-%e5%ad%98%e5%82%a8%e6%a1%b6%e7%9a%84%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e5%88%b0%e4%b8%80%e4%b8%aa%e7%89%b9%e5%ae%9a-iam-%e8%a7%92%e8%89%b2/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:29:48 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[linux代维]]></category>
		<category><![CDATA[linux服务器代维]]></category>
		<category><![CDATA[linux服务器代维护]]></category>
		<category><![CDATA[linux服务器维护]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器安全代维]]></category>
		<category><![CDATA[服务器安全设置]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[系统安全代维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[将亚马逊 AWS S3 存储桶的访问权限到一个特定 IAM 角色]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3843</guid>
		<description><![CDATA[<p>AWS 的一名云支持工程师，客户经常问我如何将 Amazon S3 存储桶访问权限限制到特定的 AWS Ide [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%b0%86%e4%ba%9a%e9%a9%ac%e9%80%8a-aws-s3-%e5%ad%98%e5%82%a8%e6%a1%b6%e7%9a%84%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e5%88%b0%e4%b8%80%e4%b8%aa%e7%89%b9%e5%ae%9a-iam-%e8%a7%92%e8%89%b2/">将亚马逊 AWS S3 存储桶的访问权限到一个特定 IAM 角色</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>AWS 的一名云支持工程师，客户经常问我如何将 <a href="https://amazonaws-china.com/cn/s3">Amazon S3</a> 存储桶访问权限限制到特定的 AWS Identity and Access Management (IAM) 角色。通常，他们会尝试以对待 IAM 用户的相同方式执行此操作：使用存储桶策略显式 Deny 不想授予访问权限的所有 Principals（用户和角色）。这种方法的缺点是需要维护存储桶策略。如果将一个新的 IAM 用户添加到账户，并且其 Action 为 “s3:*”，则该用户将获得访问该存储桶的权限。您可以反转逻辑并在存储桶策略的 Deny 语句中利用 NotPrincipal 元素，而不必指定要阻止其访问的用户列表。此元素会为其值中未列出的任何用户创建一个显式的 Deny。</p>
<section class="blog-post-content">但事实证明，这种反转逻辑的方法在处理 IAM 角色时存在问题，因为这种角色的 Principal 值包含两个 Amazon 资源名称 (ARN)，即 role ARN 和 assumed-role ARN。 role ARN 是 IAM 角色本身的标识符， assumed-role ARN 则用于标识日志中的角色会话。在使用 NotPrincipal 元素时，您必须同时包含两个 ARN，此方法才能正常工作，其中第二个 ARN 应包含一个变量名称。通常，您应指定一个通配符，用于表示变量字符串，但不允许在 Principal 或 NotPrincipal 元素中指定此通配符。在本博文中，我会向您展示如何使用 Conditions（而非NotPrincipal 元素），将 S3 存储桶的访问权限限制到一个账户内的特定 IAM 角色或用户。即便相同账户中的另一个用户拥有 Admin 策略或带有 s3:* 的策略，只要未被显式列出，也同样会被拒绝。例如，您可以使用此方法配置存储桶，以供 Auto Scaling 组内的实例访问。您还可以使用此方法，限制对具有高级别安全需求的存储桶的访问。<span id="more-1035"></span></p>
<h3>解决方案概述</h3>
<p>本文所述的解决方案使用存储桶策略来管理对 S3 存储桶的访问 – 即使实体可以访问完整的 S3 API。下图展示了此解决方案如何应用于同一账户内的存储桶。</p>
<p><img class="alignnone" title="展示此解决方案如何应用于同一账户内的存储桶的图解" src="https://dmhnzl5mp9mj6.cloudfront.net/security_awsblog/images/CC_Diagram1_0717.png" alt="展示此解决方案如何应用于同一账户内的存储桶的图解" width="466" height="442" /></p>
<ol>
<li>IAM 用户的策略和角色的用户策略授予对 “s3:*” 的访问权限。</li>
<li>S3 存储桶策略将访问权限限制为仅限该角色。</li>
<li>IAM 用户和角色都可以访问该账户中的存储桶。该角色可以访问这两个存储桶，但用户只能访问没有附加存储桶策略的存储桶。即使角色和用户都拥有完整的 “s3:*” 权限，存储桶策略仍会拒绝任何不具有该角色的人员访问该存储桶。</li>
</ol>
<p>跨账户方法的主要不同之处在于，每个存储桶必须附加存储桶策略。下图展示了这种方法如何应用于跨账户部署场景。</p>
<p><img class="alignnone" title="展示此解决方案如何应用于跨账户部署场景的图解" src="https://dmhnzl5mp9mj6.cloudfront.net/security_awsblog/images/CC_Diagram2_0717_a.png" alt="展示此解决方案如何应用于跨账户部署场景的图解" width="608" height="457" /></p>
<ol>
<li>IAM 角色的用户策略和存储桶账户中的 IAM 用户策略均授予对“s3:*”的访问权限</li>
<li>如果任何人的 user:id 与角色的相应值不同，并且策略定义了允许角色对存储桶执行哪些操作，则存储桶策略会拒绝其访问。</li>
<li>存储桶策略允许从其他账户访问角色。</li>
<li>IAM 用户和角色可以在存储桶策略中没有 Deny 的情况下访问存储桶。角色可以同时访问这两个存储桶，因为 Deny 仅适用于其 user:id 不等于角色的相应值的主体。</li>
</ol>
<h3>了解 NotPrincipal 元素及其用法</h3>
<p>您可以使用 IAM 或 S3 存储桶策略的 NotPrincipal 元素，仅限特定用户组访问资源。此元素允许您阻止未在其值数组中定义的所有用户，即使他们自己的 IAM 用户策略中具有 Allow 也是如此。因此，如果您有一个用户应该可以访问除 S3 中的某个存储桶以外的所有存储桶，则可以在该存储桶本身上进行此定义，而无需编辑用户的 IAM 策略堆栈。</p>
<p>但对于 IAM 角色来说，这要更为复杂，因为角色是由 Principal 中的两个 ARN 定义的：role ARN 和 assumed-role ARN。role ARN (arn:aws:iam::<strong>ACCOUNTNUMBER</strong>:role/<strong>ROLE-NAME</strong>) 是静态的，独立于角色会话发起者。（在本文中，切记将 <strong>placeholder information</strong> 替换为您自己的账户信息。）assumed-roleARN (arn:aws:sts::<strong>ACCOUNTNUMBER</strong>:assumed-role/<strong>ROLE-NAME</strong>/<strong>ROLE-SESSION-NAME</strong>) 将因为角色会话名称定义的内容而异。对于具有一个角色的用户发出的 API 调用，您可以通过查看 AWS CloudTrail 条目中的以下 Identity 元素来了解此信息。</p>
<div>
<pre>{
  "type": "AssumedRole",
  "principalId": "<strong>AROAJI4AVVEXAMPLE:ROLE-SESSION-NAME</strong>",
  "arn": "arn:aws:sts::<strong>ACCOUNTNUMBER:assumed-role/ROLE-NAME/ROLE-SESSION-NAME</strong>",
  "accountId": "<strong>ACCOUNTNUMBER</strong>",
  "accessKeyId": "<strong>ASIAEXAMPLEKEY</strong>",
  "sessionContext": {
    "attributes": {
      "mfaAuthenticated": "false",
      "creationDate": "XXXX-XX-XXTXX:XX:XXZ"
    },
    "sessionIssuer": {
      "type": "Role",
      "principalId": "<strong>AROAJI4AVV3EXAMPLEID</strong>",
      "arn": "arn:aws:iam::<strong>ACCOUNTNUMBER:role/ROLE-NAME</strong>",
      "accountId": "<strong>ACCOUNTNUBMER</strong>",
      "userName": "<strong>ROLE-SESSION-NAME</strong>"
    }
  }
}</pre>
</div>
<p>在此 Identity 元素中，您可以看到 role ARN 和 assumed-role ARN。根据承担角色的用户不同，ROLE-SESSION-NAME 也可能会有所变化。principalId 值也包含此信息，但采用可以在存储桶策略的 Principal 元素以外使用的方式设置格式。在编写存储桶策略时，我会使用这些信息。</p>
<h3>向特定角色授予同账户存储桶访问权限</h3>
<p>在从同一账户访问存储桶时，在大多数情况下不必使用存储桶策略。这是因为存储桶策略定义了已由用户的直接 IAM 策略授予的访问权限。S3 存储桶策略通常用于跨账户访问，但您也可以使用它们，通过显式 Deny 来限制访问，这将应用于所有主体，无论是与存储桶位于相同账户中还是不同账户中的主体。</p>
<p>每个 IAM 实体（用户、组或角色）都有一个已定义的 <a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_variables.html#policy-vars-infotouse" target="_blank" rel="noopener noreferrer">aws:userid</a> 变量。您需要在存储桶策略中使用此变量，才能在条件元素内以例外的形式指定角色或用户。assumed-role 的 aws:userId 值定义为 UNIQUE-ROLE-ID:ROLE-SESSION-NAME（例如 AROAEXAMPLEID:userdefinedsessionname）。</p>
<p>要获得 IAM 角色的 AROAEXAMPLEID，请执行以下操作：</p>
<ol>
<li>务必安装 <a href="https://amazonaws-china.com/cli/" target="_blank" rel="noopener noreferrer">AWS CLI</a>，并打开一个命令提示符或 shell。</li>
<li>运行以下命令：aws iam get-role -–role-name <strong>ROLE-NAME</strong>。</li>
<li>在输出中，查找以 AROA 开头的 RoleId 字符串。您将在存储桶策略中使用它来将存储桶访问权限的范围仅限于此角色。</li>
</ol>
<p>在前述 CloudTrail 代码示例中，此 ID 为 principalId 元素。此元素的值十分重要，因为 AWS 策略变量也可以在 IAM 策略中作为字符串进行检查。您不必在 NotPrincipal 元素中指定 role 和 assumed-role ARN，而是可以将 StringNotLike 条件中的 aws:userId 值与通配符字符串一起使用。在 aws:userId 值内，您还需要添加账户的 Root 用户，以便在删除定义的角色时，不会致使存储桶完全无法访问。Root 账户的 userId 是账户编号。</p>
<p>使用您刚刚通过 AWS CLI 检索的 AROAEXAMPLEID，即可创建条件逻辑，让存储桶策略将存储桶访问权限的范围仅限于访问存储桶时使用此角色的用户。使用条件逻辑而非 NotPrincipal元素可支持使用通配符字符串，从而允许接受任何角色会话名称。</p>
<p>现在您已获得要允许其访问的角色 ID，接下来需要阻止与存储桶处于相同账户内的其他用户的访问。阻止未使用 IAM 角色或 Root 账户凭证的用户访问存储桶及其对象的策略如下所示。</p>
<div>
<pre>{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::<strong>MyExampleBucket</strong>",
        "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userId": [
            "<strong>AROAEXAMPLEID:*</strong>",
            "<strong>111111111111</strong>"
          ]
        }
      }
    }
  ]
}</pre>
</div>
<p>您也可以对 IAM 用户使用相同的策略。IAM 用户拥有一个以 AIDA 开头的唯一 ID，您可以将此 ID 用于此用途。要查找此唯一 ID，请执行以下操作：</p>
<ol>
<li>安装 AWS CLI 后，打开命令提示符或 shell。</li>
<li>运行命令：aws iam get-user -–user-name <strong>USER-NAME</strong></li>
<li>在输出中，查找以 AIDAEXAMPLEID 开头的 userId 字符串。</li>
</ol>
<p>找到 userId 字符串之后，您可以将其置于“aws:userId”条件数组中，如以下示例所示。</p>
<div>
<pre>{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::<strong>MyExampleBucket</strong>",
        "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
      ],
      "Condition": {
        "StringNotLike": {
          "aws:userId": [
            "<strong>AROAEXAMPLEID:*</strong>",
            "<strong>AIDAEXAMPLEID</strong>",
            "<strong>111111111111</strong>"
          ]
        }
      }
    }
  ]
}</pre>
</div>
<h3>向特定 IAM 角色授予跨账户存储桶访问权限</h3>
<p>在上一节中，我向您展示了如何将 S3 存储桶访问权限限于同一个账户内的特定 IAM 角色或用户。现在，我将向您展示如何将访问权限限制到另一账户中的特定用户和角色。向 IAM 用户或角色授予跨账户存储桶访问权限时，您必须定义允许 IAM 用户或角色通过该访问权限执行哪些操作。<a href="http://blogs.aws.amazon.com/security/post/Tx3VRSWZ6B3SHAV/Writing-IAM-Policies-How-to-Grant-Access-to-an-Amazon-S3-Bucket" target="_blank" rel="noopener noreferrer">在先前的 AWS 安全性博客中</a>，Jim Scharf 撰文介绍了允许 IAM 实体通过 CLI/API 和控制台访问存储桶所需的权限。利用之前这篇博文中提供的信息，CLI/API 级访问存储桶策略应如下所示。</p>
<div>
<pre>{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<strong>111111111111</strong>:role/<strong>ROLENAME</strong>"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<strong>111111111111</strong>:role/<strong>ROLENAME</strong>"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<strong>MyExampleBucket</strong>",
                "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:userId": [
                        "<strong>AROAEXAMPLEID</strong>:*",
                        "<strong>111111111111</strong>"
                    ]
                }
            }
        }
    ]
}</pre>
</div>
<p>以下策略显示了控制台级访问所需的服务操作，例如与控制台的 IAM 切换角色功能配合使用的操作。</p>
<div>
<pre>{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<strong>111111111111</strong>:role/<strong>ROLENAME</strong>"
            },
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:GetBucketLocation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<strong>111111111111</strong>:role/<strong>ROLENAME</strong>"
            },
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>"
        },
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<strong>111111111111</strong>:role/<strong>ROLENAME</strong>"
            },
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<strong>MyExampleBucket</strong>",
                "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:userId": [
                        "<strong>AROAEXAMPLEID</strong>:*",
                        "<strong>111111111111</strong>"
                    ]
                }
            }
        }
    ]
}</pre>
</div>
<p>要向其他账户中的 IAM 用户授予 API/CLI 访问权限，您需要将 IAM 用户的 AIDAEXAMPLEID 添加到“aws:userId”条件，就像我们上一节所做的那样。除了“aws:userId”条件之外，您还需要将 IAM 用户的完整 ARN 添加到这些策略的 Principal 元素。请注意，您不能向 IAM 用户授予跨账户控制台访问权限，因为该用户需要具备目标账户中的角色，但您可以通过 API/CLI 授予对存储桶的访问权限。具体如下所示。</p>
<div>
<pre>{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": [
                {
                    "AWS": [
                        "arn:aws:iam::<strong>222222222222</strong>:role/<strong>ROLENAME</strong>",
                        "arn:aws:iam::<strong>222222222222</strong>:user/<strong>USERNAME</strong>"
                    ]
                }
            ],
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>"
        },
        {
            "Effect": "Allow",
            "Principal": [
                {
                    "AWS": [
                        "arn:aws:iam::<strong>222222222222</strong>:role/<strong>ROLENAME</strong>",
                        "arn:aws:iam::<strong>222222222222</strong>:user/<strong>USERNAME</strong>"
                    ]
                }
            ],
            "Action": [
                "s3:GetObject",
                "s3:PutObject",
                "s3:DeleteObject"
            ],
            "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
        },
        {
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:*",
            "Resource": [
                "arn:aws:s3:::<strong>MyExampleBucket</strong>",
                "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "aws:userId": [
                        "<strong>AROAEXAMPLEID</strong>:*",
                        "<strong>AIDAEXAMPLEID</strong>",
                        "<strong>111111111111</strong>"
                    ]
                }
            }
        }
    ]
}</pre>
</div>
<p>除了在存储桶策略中包含角色权限之外，您还需要在 IAM 用户或角色的用户策略中定义这些权限。这些权限可以添加到<a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#create-managed-policy-console" target="_blank" rel="noopener noreferrer">客户托管的策略</a>并<a href="http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html#attach-managed-policy-console" target="_blank" rel="noopener noreferrer">附加</a>到 IAM 控制台中的角色或用户，详见以下策略文档。</p>
<div>
<pre>{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListAllMyBuckets",
        "s3:GetBucketLocation"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": "s3:ListBucket",
      "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:PutObject",
        "s3:DeleteObject"
      ],
      "Resource": "arn:aws:s3:::<strong>MyExampleBucket</strong>/*"
    }
  ]
}</pre>
</div>
<p>按照本文中的指导，即使用户拥有 Admin 策略或带有 s3:* 的策略，也可以将 S3 存储桶访问权限限于本地账户内和不同账户中的特定 IAM 角色或用户。这种逻辑有多种应用，各种使用案例的要求可能会有所不同。例如，您可以使用此方法设置存储桶，以供 Auto Scaling 组内的实例访问。如同在包含个人记录和账户信息的存储桶中一样，您还可以使用此方法限制对具有高级别安全需求的存储桶的访问。务必牢记，最好始终仅将权限授予执行必要任务所需的资源。</p>
</section>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%b0%86%e4%ba%9a%e9%a9%ac%e9%80%8a-aws-s3-%e5%ad%98%e5%82%a8%e6%a1%b6%e7%9a%84%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e5%88%b0%e4%b8%80%e4%b8%aa%e7%89%b9%e5%ae%9a-iam-%e8%a7%92%e8%89%b2/">将亚马逊 AWS S3 存储桶的访问权限到一个特定 IAM 角色</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%b0%86%e4%ba%9a%e9%a9%ac%e9%80%8a-aws-s3-%e5%ad%98%e5%82%a8%e6%a1%b6%e7%9a%84%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e5%88%b0%e4%b8%80%e4%b8%aa%e7%89%b9%e5%ae%9a-iam-%e8%a7%92%e8%89%b2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AWS Firewall Manager – 您的 Web 应用程序资产的集中管理解决方案</title>
		<link>https://www.fuwuqiok.com/aws-firewall-manager-%e6%82%a8%e7%9a%84-web-%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e8%b5%84%e4%ba%a7%e7%9a%84%e9%9b%86%e4%b8%ad%e7%ae%a1%e7%90%86%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/</link>
		<comments>https://www.fuwuqiok.com/aws-firewall-manager-%e6%82%a8%e7%9a%84-web-%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e8%b5%84%e4%ba%a7%e7%9a%84%e9%9b%86%e4%b8%ad%e7%ae%a1%e7%90%86%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:27:37 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[linux服务器代维]]></category>
		<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器代维护]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器迁移]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[AWS Firewall Manager – 您的 Web 应用程序资产的集中管理解决方案]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3825</guid>
		<description><![CDATA[<p>分布式和集中控制之间经常会有矛盾，尤其是在大型组织中。分布式控制模型允许团队快速移动并响应专业化的本地需求，而 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/aws-firewall-manager-%e6%82%a8%e7%9a%84-web-%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e8%b5%84%e4%ba%a7%e7%9a%84%e9%9b%86%e4%b8%ad%e7%ae%a1%e7%90%86%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/">AWS Firewall Manager – 您的 Web 应用程序资产的集中管理解决方案</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>分布式和集中控制之间经常会有矛盾，尤其是在大型组织中。分布式控制模型允许团队快速移动并响应专业化的本地需求，而集中模型可对涉及所有团队的全球动议和挑战进行正确级别的监督。</p>
<p>我们亲身经历过这种挑战，当时 AWS 客户增长到了临界点，其应用足迹遍及众多 AWS 地区、AWS 账户、开发团队和应用程序。AWS 提高了他们的灵活性和响应能力，又能让他们在最适合的地点部署资源，这让他们非常满意。而在安全性和合规性方面，这种多元化和规模带来了新的挑战。创新自由必须在保护重要数据和产生威胁时快速响应的需求之间达到平衡。</p>
<p>在过去几年中，我们为客户提供了越来越多的保护选项，包括 <a href="https://amazonaws-china.com/blogs/aws/new-aws-waf/">AWS WAF</a> 和 <a href="https://amazonaws-china.com/blogs/aws/aws-shield-protect-your-applications-from-ddos-attacks/">AWS Shield</a>。我们的客户将所有这些选项用于各种用途，并要求能够从单一的中央地点管理它们。</p>
<p><strong>遇到 AWS Firewall Manager</strong><br />
<span title="">AWS Firewall Manager</span> 旨在帮助这些客户！通过它，这些客户可以自由地使用多个 AWS 账户并在所需的任何地区托管应用程序，同时保持对其组织的安全设置和配置文件的集中控制。开发人员完成开发，创新人员完成创新，而安全团队则能够对潜在威胁和实际攻击做出快速、一致的全局响应。</p>
<p>通过跨账户和应用程序的自动化策略实施，您的安全团队可以确信当他们使用 <span title="">Firewall Manager</span> 时，新的和现有的应用程序都符合组织级的安全策略。它们可找到未衡量的应用程序和 AWS 资源，快速地使其达到合规。</p>
<p><span title="">Firewall Manager</span> 围绕包含 WAF 规则集和可选 AWS Shield 高级保护的命名策略构建。每个策略适用于按账户、资源类型、资源标识符或标签指定的一组特定 AWS 资源。策略可以自动应用于所有匹配的资源，也可应用于您选择的子集。策略可包括从组织内部获得的 WAF 规则，也可包括 AWS 合作伙伴（例如，Imperva、F5、Trend Micro 和其他 AWS Marketplace 供应商）创建的规则。这让您的安全团队能够将其现有的本地安全方法复制到云中。</p>
<p><strong>入门向导</strong><br />
<span title="">Firewall Manager</span> 有三个前提条件：</p>
<p><strong>AWS Organizations</strong> – 您的组织必须使用 <a title="" href="https://amazonaws-china.com/organizations/">AWS Organizations</a> 管理账户且必须启用<a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html">所有功能</a>。要了解更多信息，请阅读<a href="https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_create.html">创建组织</a>。</p>
<p><strong>Firewall Administrator</strong> – 您必须指定组织中的一个 AWS 账户作为 Firewall Manager 的管理员。这样将赋予该账户在组织中部署 AWS WAF 规则的权限。</p>
<p><strong>AWS Config</strong> – 您必须为组织中的所有账户启用 <a title="" href="https://amazonaws-china.com/config/">AWS Config</a>，以使 <span title="">Firewall Manager</span> 能够检测到新创建的资源（您可以使用 <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-sampletemplates.html">StackSets 示例模板</a>页面上的<strong>启用 AWS Config</strong> 模板来处理这件事）。要了解更多信息，请阅读 <a href="https://docs.aws.amazon.com/config/latest/developerguide/getting-started.html">AWS Config 入门</a>。</p>
<p>由于我没有自己的企业，因此由我的同事帮我创建一些测试账户！当我在主账户中打开 <span title="">Firewall Manager</span> 控制台时，我可以看到关于前两个前提条件的基础：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fm_status_pre_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fm_status_pre_1.png" alt="fm_status_pre_1" width="742" height="381" /></a></p>
<p>“<strong>了解更多…</strong>”按钮可显示管理员的账户 ID：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_admin_id_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_admin_id_1.png" alt="fms_admin_id_1" width="708" height="343" /></a></p>
<p>我切换到该账户（在实际情况中，我不太可能拥有主账户和此账户的访问权限），打开控制台，看到我现在已经满足了前提条件。我单击“<strong>创建策略</strong>”继续：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_status_pre_ok_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_status_pre_ok_1.png" alt="fms_status_pre_ok_1" width="746" height="369" /></a></p>
<p>控制台为我提供了流程概要。我需要创建规则和规则组，定义包含规则组的策略，定义策略范围，然后实际创建策略。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_setup_p1_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_setup_p1_1.png" alt="fms_setup_p1_1" width="710" height="523" /></a></p>
<p>在页面底部，我选择为<span title="">美国东部（弗吉尼亚北部）</span>地区创建新策略和规则组，并单击“<strong>下一步</strong>”：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_setup_p1_bottom_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_setup_p1_bottom_1.png" alt="fms_setup_p1_bottom_1" width="610" height="391" /></a></p>
<p>然后，我为自己的规则指定条件，从下列选项中做出选择：</p>
<ul>
<li>跨站脚本</li>
<li>地理起源</li>
<li>SQL 注入</li>
<li>IP 地址或范围</li>
<li>大小限制</li>
<li>字符串或正则表达式</li>
</ul>
<p>例如，我可以创建阻挡恶意 IP 地址的条件（<a href="https://amazonaws-china.com/answers/security/aws-waf-security-automations/">此 AWS 解决方案</a>为您展示如何将第三方声誉列表用于 WAF 及其益处）：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_make_ip_block_2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_make_ip_block_2.png" alt="fms_make_ip_block_2" width="810" height="931" /></a></p>
<p>我将保持此单一设置，但是规则中可包含多个条件。全部添加之后，我单击“<strong>下一步</strong>”继续。现在，我已准备好创建自己的规则，我单击“<strong>创建</strong><strong>规则</strong>”（我可以随后根据需要添加更多条件）：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_2.png" alt="fms_create_rule_2" width="610" height="385" /></a></p>
<p>我为自己的规则命名 (<strong>BlockExcludedIPs</strong>)，输入 CloudWatch 指标名称，并添加我的条件 (<strong>ExcludeIPs</strong>)，然后单击“<strong>创建</strong>”：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_allover_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_allover_1.png" alt="fms_create_rule_allover_1" width="800" height="896" /></a></p>
<p>我可以创建更多规则，并将其包含在同一个规则组中。同样，我将保持此单一设置，并单击“<strong>下一步</strong>”继续：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_my_rules_rule_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_my_rules_rule_1.png" alt="fms_my_rules_rule_1" width="610" height="492" /></a></p>
<p>我输入组的名称，选择构成组的规则，然后单击“<strong>创建</strong>”：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_group_3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_rule_group_3.png" alt="fms_create_rule_group_3" width="610" height="545" /></a></p>
<p>我现在有两个规则组（账户中已有 testRuleGroup）。我命名自己的策略，并单击“<strong>下一步</strong>”继续：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_policy_and_add_groups_covfefe_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_create_policy_and_add_groups_covfefe_1.png" alt="fms_create_policy_and_add_groups_covfefe_1" width="610" height="531" /></a></p>
<p>现在，我定义自己的策略范围。我选择要保护的资源类型，并指示应在何时应用策略：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_def_policy_scope_4.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_def_policy_scope_4.png" alt="fms_def_policy_scope_4" width="603" height="482" /></a></p>
<p>我还可以使用标签包括或排除资源：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_tags_for_policy_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_tags_for_policy_1.png" alt="fms_tags_for_policy_1" width="547" height="358" /></a></p>
<p>定义了策略范围之后，我单击“<strong>下一步</strong>”进行审核，然后单击“<strong>创建策略</strong>”：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_review_it_2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_review_it_2.png" alt="fms_review_it_2" width="810" height="653" /></a></p>
<p>现在，策略已经生效，其范围内的 ALB 最初不合规：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_non_com_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_non_com_1.png" alt="fms_non_com_1" width="810" height="318" /></a></p>
<p>几分钟之内，<span title="">Firewall Manager</span> 就会应用该策略，并向我提供状态报告：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_applied_1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/fms_applied_1.png" alt="fms_applied_1" width="800" height="473" /></a></p>
<p><strong>现在开始使用 AWS Firewall Manager</strong><br />
您现在可以开始使用 <span title="">AWS Firewall Manager</span> 了！</p>
<p>如果您正在使用 AWS Shield Advanced，则可以访问 AWS Firewall Manager 和 AWS WAF 而无需额外付费。否则，将会每月针对每个区域中的每条策略收费，同时还收取 WAF WebACLs、WAF 规则和 AWS Config 规则的正常费用。</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/aws-firewall-manager-%e6%82%a8%e7%9a%84-web-%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e8%b5%84%e4%ba%a7%e7%9a%84%e9%9b%86%e4%b8%ad%e7%ae%a1%e7%90%86%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/">AWS Firewall Manager – 您的 Web 应用程序资产的集中管理解决方案</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/aws-firewall-manager-%e6%82%a8%e7%9a%84-web-%e5%ba%94%e7%94%a8%e7%a8%8b%e5%ba%8f%e8%b5%84%e4%ba%a7%e7%9a%84%e9%9b%86%e4%b8%ad%e7%ae%a1%e7%90%86%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>利用 Kinesis Analytics 实时分析用户访问行为</title>
		<link>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-kinesis-analytics-%e5%ae%9e%e6%97%b6%e5%88%86%e6%9e%90%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e8%a1%8c%e4%b8%ba/</link>
		<comments>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-kinesis-analytics-%e5%ae%9e%e6%97%b6%e5%88%86%e6%9e%90%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e8%a1%8c%e4%b8%ba/#comments</comments>
		<pubDate>Wed, 21 Nov 2018 06:22:51 +0000</pubDate>
		<dc:creator><![CDATA[admin]]></dc:creator>
				<category><![CDATA[服务器代维]]></category>
		<category><![CDATA[服务器维护]]></category>
		<category><![CDATA[服务器运维]]></category>
		<category><![CDATA[网站代维]]></category>
		<category><![CDATA[网站防挂马]]></category>
		<category><![CDATA[利用 Kinesis Analytics 实时分析用户访问行为]]></category>

		<guid isPermaLink="false">https://www.fuwuqiok.com/?p=3791</guid>
		<description><![CDATA[<p>随着时间的推移，大数据分析一词已经慢慢从一个概念进入到了实际应用的阶段，近年来，越来越多的企业已经不满足于定期 [&#8230;]</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-kinesis-analytics-%e5%ae%9e%e6%97%b6%e5%88%86%e6%9e%90%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e8%a1%8c%e4%b8%ba/">利用 Kinesis Analytics 实时分析用户访问行为</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></description>
				<content:encoded><![CDATA[<p>随着时间的推移，大数据分析一词已经慢慢从一个概念进入到了实际应用的阶段，近年来，越来越多的企业已经不满足于定期批量地分析任务，为了更好地利用不断产生的业务数据，做出更快更有效的业务决策，实时数据分析已经成为了诸如电商，网站，交易平台的标准需求。</p>
<p>另一方面，自建实时分析平台无论从成本还是对技术人员的要求都相当巨大，大量的技术人员更喜欢使用SQL而非代码的方式来挖掘数据，基于此，AWS提供的Kinesis Analytics服务很好地满足了用户的需求，通过简单的SQL语句及内置的丰富函数，用户能够快速地搭建起适合自身业务场景的实时分析解决方案，所有的底层设施由AWS来维护，保证服务的高可用性，用户可以把更多地精力放在如何挖掘和分析数据的工作上。</p>
<p>本文以实际的应用场景出发，介绍如何通过使用AWS的服务，实时分析CloudFront的访问日志，同时，借助于DynamoDB的全局表功能，使得用户能够利用支持Kinesis Analytics的区域对日志进行分析，并把分析结果同步回用户现在使用的区域的DynamoDB表中，帮助那些使用尚未支持Kinesis Analytics区域的用户也能够使用并享受到该服务带来的便捷。</p>
<p>下面我们来看下方案的架构：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1-3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1-3.png" alt="1-3" width="1404" height="1010" /></a></p>
<p>如上图所示：</p>
<p>·         CloudFront会定期将用户的访问日志保存到用户设置的S3存储桶中。</p>
<p>·         日志在S3上生成后会自动触发Lambda函数。</p>
<p>·         Lambda函数对日志进行解压缩，并将日志内容打入Kinesis Stream流中。</p>
<p>·         Kinesis Analytics从Kinesis Stream流中获取日志数据并进行实时分析。</p>
<p>·         Kinesis Analytics的分析结果会发送到另一个Lambda函数。</p>
<p>·         该Lambda函数将分析结果处理后存入本区域的DynamoDB表中。</p>
<p>·         由于启用了DynamoDB全局表，分析结果会自动同步到其他区域的DynamoDB表中。</p>
<p>·         在用户业务所在的区域中，通过使用ALB，EC2搭建简单的web应用就可以对DynamoDB表中的数据进行实时的分析展现。</p>
<p>本文假设用户业务所在的区域是Ohio，由于Ohio尚未支持Kinesis Analytics服务，因而将所有分析组件部署在Virginia区域，仅仅将分析结果同步回Ohio的DynamoDB表中，另外，对于图中的ALB，EC2部分，本文不做详细的搭建说明，用户可以使用自己熟悉的开发语言进行展示页面的开发，也可以使用API GW，Lambda搭建无服务器的展示系统。</p>
<p>那下面我们就来看看如何快速地搭建这样一个实时分析平台吧。</p>
<h3>第一步 准备工作</h3>
<p>首先开启CloudFront的日志功能。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/2-4.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/2-4.png" alt="2-4" width="2538" height="1094" /></a></p>
<p>创建Lambda函数，用于解析CloudFront日志并将日志打入Kinesis流中，Lambda代码可从如下地址下载：</p>
<p><a href="https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/CFLogs2Kinesis.py">https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/CFLogs2Kinesis.py</a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/1.png" alt="1" width="2550" height="1100" /></a></p>
<p>进入CloudFront日志保存的S3桶。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/4-3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/4-3.png" alt="4-3" width="2534" height="1222" /></a></p>
<p>&nbsp;</p>
<p>设置当有新日志文件产生的时候，触发之前创建Lambda函数。 <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/a.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/a.png" alt="a" width="2514" height="1220" /></a></p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/6-3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/6-3.png" alt="6-3" width="2544" height="1392" /></a></p>
<p>创建DynamoDB表，用于保存Kinesis Analytics分析的结果。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/c.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/c.png" alt="c" width="2542" height="1096" /></a></p>
<p>将创建的表设置成global table，与Ohio区域同步。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/d.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/d.png" alt="d" width="2542" height="1098" /></a><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/f.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/f.png" alt="f" width="2550" height="1176" /></a></p>
<p>创建Kinesis Stream，用于接收Lambda发送过来的日志。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/10-3.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/10-3.png" alt="10-3" width="2552" height="1132" /></a></p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/11-2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/11-2.png" alt="11-2" width="2534" height="1230" /></a></p>
<h3>第二步 向Kinesis流中打入数据</h3>
<p>由于CloudFront需要有用户访问流量的情况下才会产生日志，并且产生日志的过程不是实时的，所以为了便于测试，我们通过一个工具模拟Lambda产生的消息打入Kinesis流中，大家可以从如下链接查看该工具的详情。<a href="https://github.com/awslabs/amazon-kinesis-data-generator">https://github.com/awslabs/amazon-kinesis-data-generator</a></p>
<p>Kinesis Data Generator通过PC端浏览器的简单配置，就能够快速地产生测试流量打入指定的Kinesis流中，并且支持产生一定随机的数据，下图中，我们将数据以每秒一条的速度打入us-east-1区域的Kinesis流，数据的格式模拟Lambda函数的输出，即：以JSON格式输出CloudFront日志的每个字段，并且c_ip客户端ip字段通过简单的设置，让工具以一定的比例生成4个ip地址中的一个，其他字段都为固定字段，测试数据可以通过让CloudFront产生日志后，在Lambda函数中输出获得，或者从如下链接获取：</p>
<p><a href="https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/KinesisDataGenerator">https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/KinesisDataGenerator</a></p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/g.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/g.png" alt="g" width="2534" height="1228" /></a></p>
<p>点击发送数据，开始将数据打入Kinesis流中。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/h.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/h.png" alt="h" width="2544" height="1208" /></a></p>
<p>第三步 创建Kinesis Analytics，对Kinesis流中的数据做实时分析</p>
<p>首先创建一个Data Analytics应用。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/r.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/r.png" alt="r" width="2534" height="1098" /></a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/15.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/15.png" alt="15" width="2546" height="1072" /></a></p>
<p>设置应用对接的数据源为之前创建的Kinesis流。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/q.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/q.png" alt="q" width="2548" height="1092" /></a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/17-2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/17-2.png" alt="17-2" width="2536" height="934" /></a></p>
<p>点击Discover schema，让Analytics自动发现Kinesis流中已有数据的schema。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/p.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/p.png" alt="p" width="2534" height="1162" /></a></p>
<p>可以看到，Analytics可以自动帮我们识别JSON格式的CloudFront日志，但是由于我们打入的日志数据大部分数据为固定字段，所以自动识别的schema未必准确，比如：对于x_edge_request_id字段，varchar(64)可能过小，我们点击修改schema。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/o.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/o.png" alt="o" width="2540" height="1228" /></a></p>
<p>将schema做如下调整：</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/20-2.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/20-2.png" alt="20-2" width="2550" height="1240" /></a><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/m.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/m.png" alt="m" width="2534" height="1168" /></a><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/n.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/n.png" alt="n" width="2548" height="888" /></a>  点击Save schema and update stream samples，查看各个字段类型及长度已经修改成功，点击Exit返回上一步。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/l.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/l.png" alt="l" width="2534" height="886" /></a></p>
<p>点击Save and Continue继续。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/k.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/k.png" alt="k" width="2516" height="1218" /></a></p>
<p>下面，我们开始使用SQL语句对带有schema的流式数据做分析汇聚。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/25-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/25-1.png" alt="25-1" width="2544" height="1234" /></a></p>
<p>下面的SQL语句以1分钟为时间窗口，分析出1分钟内，访问CloudFront的Top3的用户ip地址，Kinesis Analytics的窗口可以实时观察到每分钟分析的结果，非常利于调试。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/26-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/26-1.png" alt="26-1" width="2544" height="1244" /></a></p>
<p>再继续配置Kinesis Analytics将分析结果输出之前，我们先来配置Lambda函数，用于接收输出结果，并将结果保存到DynamoDB中，Lambda代码可以从如下链接获取：</p>
<p><a href="https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/Analytics2DDB.py">https://github.com/iwasnobody/cflogs2analytics2ddb/blob/master/Analytics2DDB.py</a></p>
<p>注意：根据输出结果的大小，需要调整Lambda函数的timeout时长。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/j.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/j.png" alt="j" width="2544" height="1086" /></a></p>
<p>接着我们回到Kinesis Analytics界面，配置应用对接的输出。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/28-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/28-1.png" alt="28-1" width="2512" height="1050" /></a></p>
<p>设置上面创建Lambda函数接收输出结果。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/i.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/i.png" alt="i" width="2532" height="1228" /></a> <a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/30-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/30-1.png" alt="30-1" width="2542" height="1242" /></a></p>
<h3>第四步 查看分析结果</h3>
<p>我们可以进入到DynamoDB中，查看之前创建的表，不断地刷新，查看表中数据的变化。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/31-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/31-1.png" alt="31-1" width="2540" height="1026" /></a></p>
<p>同时进入到Ohio区域，查看数据已经被同步过来了。</p>
<p><a href="https://www.fuwuqiok.com/wp-content/uploads/2018/11/32-1.png"><img class="attachment-medium" src="https://www.fuwuqiok.com/wp-content/uploads/2018/11/32-1.png" alt="32-1" width="2530" height="782" /></a></p>
<footer>
<div class="blog-author-box"></div>
</footer>
<p>&nbsp;</p>
<p><a rel="nofollow" href="https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-kinesis-analytics-%e5%ae%9e%e6%97%b6%e5%88%86%e6%9e%90%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e8%a1%8c%e4%b8%ba/">利用 Kinesis Analytics 实时分析用户访问行为</a>，首发于<a rel="nofollow" href="https://www.fuwuqiok.com">服务器安全维护工作室</a>。</p>
]]></content:encoded>
			<wfw:commentRss>https://www.fuwuqiok.com/%e5%88%a9%e7%94%a8-kinesis-analytics-%e5%ae%9e%e6%97%b6%e5%88%86%e6%9e%90%e7%94%a8%e6%88%b7%e8%ae%bf%e9%97%ae%e8%a1%8c%e4%b8%ba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
