时间:2021-07-15 | 标签: | 作者:Q8 | 来源:Ali Othman网络
小提示:您能找到这篇{跨账户资源和Amazon AppStream 2.0}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的跨账户资源和Amazon AppStream 2.0内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您! |
< ">我们的一些使用Amazon AppStream 2.0的客户利用多账户设置来分离其AppStream 2.0资源。对于这些客户,他们选择将AppStream 2.0资源分成多个帐户的原因很多。但是,我们客户这样做的最常见原因是资源和账单隔离以及增强的安全性。例如,每个业务部门,外部客户或部署环境可能需要拥有自己的AWS账户,每个账户都具有自己的,唯一配置的AppStream 2.0环境。 < ">在此博客文章中,我向您展示如何创建基本的多帐户AppStream 2.0部署。我们将在一个AWS账户中创建一个AWS Lambda函数,该函数从两个AWS账户之一中的堆栈和队列中生成一个AppStream 2.0流URL,具体取决于提交的电子邮件地址。 先决条件 < ">此博客中的三个AWS账户分别称为账户A,账户B和账户C < ">帐户B和C中的AppStream 2.0堆栈和队列 创建和配置帐户B和C中的IAM角色角色 < ">在帐户B中,打开IAM控制台。这应该是包含您的AppStream 2.0堆栈和队列的帐户。 < ">打开IAM控制台,然后依次选择“策略”,“创建策略”。 < ">选择JSON标签。将以下JSON策略复制并粘贴到策略文档框中: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "appstream:CreateStreamingURL", "Resource": [ "arn:aws:appstream:<region>:<Account_B-AWS-Account-ID>:fleet/<Fleet-Name>", "arn:aws:appstream:<region>:<Account_B-AWS-Account-ID>:stack/<Stack-Name>" ] } ] } < ">在JSON政策中,替换为: < "> -占位符<Account_B-AWS-Account-ID>,具有账户B的AWS账户ID < "> -AppStream 2.0队列和堆栈的占位符<Fleet-Name>和<Stack-Name> < "> -AppStream 2.0资源所在的占位符<region>。 < ">选择审核政策。 < ">为您的策略命名,然后选择创建策略。 < ">在导航窗格中,选择Roles,Create Role,然后配置以下框: < "> -对于“选择受信任实体的类型”,选择另一个AWS账户。 < "> -输入账户A的AWS账户ID < ">选择下一步:权限。 < ">在“筛选器策略”搜索框中,搜索您先前创建的策略。当策略出现在列表中时,选中策略名称旁边的复选框。 < ">选择下一步:标签。尽管可以为策略指定标签,但是标签是可选的。 < ">选择下一步:查看。为您的角色命名,然后选择创建角色。 < ">在账户C中重复步骤1-9,使用AWS Region和AppStream 2.0堆栈以及账户C的Fleet ARN更新IAM策略 < ">在帐户A中创建和配置IAM角色 < ">在帐户A中,打开IAM控制台,这是包含Lambda函数的帐户。 < ">打开IAM控制台,然后依次选择“策略”,“创建策略”。 < ">选择JSON标签。将以下JSON策略复制并粘贴到策略文档框中: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogStream", "去做电商运营的工作logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": "*" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<Account_B-AWS-Account-ID>:role/<Role-Name>" }, { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::<Account_C-AWS-Account-ID>:role/<Role-Name>" } ] } < ">使用您在帐户B和C中创建的角色的ARN更新策略。 < ">创建策略后,在导航窗格中选择Roles,Create Role,然后配置以下框: < "> -对于“选择可信实体的类型”,选择“AWS服务”。 < "> -对于将使用此角色的服务,请选择Lambda。 < ">选择下一步:权限。 < ">在“筛选器策略”搜索框中,搜索您先前创建的策略。当策略出现在列表中时,选中策略名称旁边的复选框。 < ">选择下一步:标签。尽管可以为策略指定标签,但是标签是可选的。 < ">选择下一步:查看。为您的角色命名,然后选择创建角色。 < ">在帐户A中创建Lambda函数 < ">在帐户A中,打开Lambda控制台。 < ">选择创建功能。 < ">在“创建功能”页面上,从头开始选择“作者”。 < ">在“基本信息”下,执行以下操作: < "> -命名您的功能。 < "> -对于Runtime,选择Node.js12.X。 < ">在“权限”下,选择“选择或创建执行角色”旁边的图标。然后执行以下操作: < "> -对于执行角色,选择使用现有角色。 < "> -对于“现有角色”,选择先前创建的Lambda执行角色。 < ">选择创建功能。 < ">在“功能代码”部分中,将以下代码复制并粘贴到选项卡上: const AWS = require('aws-sdk'); const crypto = require('crypto'); const sts = new AWS.STS(); exports.handler = (event, context, callback) => { var eventdata = JSON.parse(event.body); var email = eventdata.email; if (email.includes("example.com")) { //replace with the domain you want to route to Account B's AS2 stack and fleet var sts_params = { RoleArn: "arn:aws:iam::<AWS-Account-ID-For-Account-B>:role/<Role-Name-From-Account-B>", //ARN from role created in Account B RoleSessionName: "<Any-String>", //Replace with any string DurationSeconds: 900
}; var as2region = "<Region>"; //Region where AS2 Stack and Fleet are located in Account B var as2stack = "<Stack-Name-From-Account-B>"; //Stack Name from account B var as2fleet = "<Fleet-Name-From-Account-B>"; //Fleet Name from account B
} else if (email.includes("example-1.com")) { //replace with the domain you want to route to Account C's AS2 stack and fleet var sts_params = { RoleArn: "arn:aws:iam::<AWS-Account-ID-For-Account-C>:role/<Role-Name-From-Account-C>", //ARN from role created in Account C RoleSessionName: "<Any-String>", //Replace with any string DurationSeconds: 900
}; var as2region = "<Region>"; //Region where AS2 Stack and Fleet are located in Account C var as2stack =报纸广告营销 "<Stack-Name-From-Account-C>"; //Stack Name from account C var as2fleet = "<Fleet-Name-From-Account-C>"; //Fleet Name from account C
} else{ console.log("No matching domain. Email address is " + email); errorResponse('Email domain does not match!', context.awsRequestId, callback); process.exit(0) } sts.assumeRole(sts_params, function (err, data) { if (err) { console.log(err, err.stack); errorResponse('Error assuming role!', context.awsRequestId, callback); } else { console.log(data); var unlength = 16; var username = crypto.randomBytes(Math.ceil(unlength / 2)).toString('hex').slice(0, unlength); console.log("username: " + username); var as2_params = { FleetName: as2fleet, StackName: as2stack, UserId: username, Validity: 5 }; AWS.config.credentials = new AWS.TemporaryCredentials({ RoleArn: sts_params.RoleArn }); AWS.config.update({ region: as2region }); const appstream = new AWS.AppStream; var request = appstream.createStreamingURL(as2_params); request. on('success', function (response) { console.log("Success! AS2 Streaming URL created."); var output = response.data; var url = output.StreamingURL; callback(null, { statusCode: 201, body: JSON.stringify({ Message: url, Reference: context.awsRequestId, }), headers: { 'Access-Control-Allow-Origin': '*', }, }); }). on('error', function (response) { console.log("er新闻媒体邀约ror: " + JSON.stringify(response.message)); errorResponse('Error creating AS2 streaming URL.', context.awsRequestId, callback); }). send(); } }); }; function errorResponse(errorMessage, awsRequestId, callback) { callback(null, { statusCode: 500, body: JSON.stringify({ Error: errorMessage, Reference: awsRequestId, }), headers: { 'Access-Control-Allow-Origin': '*', }, }); } < ">替换所有占位符值。 < ">保存功能。 < ">测试您的设置 < ">在帐户A中,打开Lambda控制台。 < ">选择之前创建的Lambda函数 < ">在“选择测试事件”下拉菜单中,选择“配置测试事件”。 < ">在“配置测试事件”窗口中,使用以下设置配置事件: < "> -活动模板应为“Hello World” < "> -为活动命名 < "> -将JSON块替换为以下内容:{"body":"{"email":"test example.com"}"} < "> -将示例电子邮件地址替换为包含您要过滤的域之一的电子邮件地址 < ">创建活动 < ">创建事件后,选择“测试”按钮以开始测试 < ">如果测试成功,则应该返回一个AppStream 2.0流URL < ">在网络浏览器中复制并粘贴该URL以验证其功能 < ">使用其他电子邮件域重新配置测试事件,然后重复测试过程 < ">清理 < ">删除您在帐户A中创建的Lambda函数 < ">删除您在帐户A中创建的IAM角色 < ">删除您在帐户B和C中创建的IAM角色 < ">可选:删除帐户B和C中的AppStream 2.0堆栈和队列 < ">结论 < ">就是这样!现在,您具有AppStream 2.0的多帐户设置。我们的ISV Workshop Series提供有关如何利用Amazon S3,API Gateway和Lambda创建AppStream 2.0流Web门户的教程。您可能需要考虑使用新的Lambda功能修改其中一个研讨会,以便您的用户可以从此多帐户部署中开始流式传输。 |
上一篇:shopee运营推广攻略
下一篇:Inmagine Group迁移到AWS以支持增长并提高运营效率
基于对传统行业渠道的理解,对互联网行业的渠道我们可以下这样一个定义:一切...
小米应用商店的后台操作和苹果是比较相似的,因为都能填写100字符关键词,允许...
小米的规则目前是在变更中的,但是根据经验小米的搜索排名评分的高低是个很重...
为了恰饭,有时候是要接入一些广告的,所以FB也专门有一个广告的SDK,这就是A...
在 2018 年于旧金山举行的游戏开发者大会上,Amazon Web Services (AWS) 曾宣布,目前世...
关于Facebook Audience Network如何收款的问题,其实官方已经给了详细的步骤。本文主要...
本文介绍了Audience Network对广告载体的质量检查,以及它重点广告形式需要注意的问...
随着iOS开发,作为开发者或公司需要针对iOS App开发涉及的方方面面作出对应的信息...
Facebook和谷歌对出海企业广告渠道都很熟悉,但事实上,在国外还有一些渠道也很...
卖家从做号的第1分钟开始,就一定要想好变现路径是什么?一定要以变现为目的去...
小提示:您应该对本页介绍的“跨账户资源和Amazon AppStream 2.0”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通跨账户资源和Amazon AppStream 2.0的相关事宜。
关键词:跨账户资源和Amazon,AppStr