小编Chr*_*ams的帖子

使用 docker hub 映像的 ECS FARGATE TASK 定义

我想使用 docker hub 中的 phpmyadmin 公共映像并配置 ECS fargate 任务。但不确定如何简单地将 docker pull phpmyadmin 命令放入 ECS 任务定义中。是否可以选择直接从 docker hub 公共存储库执行此操作?或者我应该在本地构建映像,推送到 ECR 并使用该映像?

phpmyadmin amazon-web-services amazon-ecs docker aws-fargate

7
推荐指数
1
解决办法
6056
查看次数

boto3:Table.get_item 不返回项目

我在本地计算机上执行此代码。

import boto3
boto3.resource('dynamodb').Table('table_name').get_item(Key={'id': 'id'})
Run Code Online (Sandbox Code Playgroud)

它返回这个。

{'ResponseMetadata': {'RequestId': 'xxxxxxxxxxxxxxxxxxxxxxxxxxx',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'server': 'Server',
   'date': 'Sat, 29 Aug 2020 08:23:07 GMT',
   'content-type': 'application/x-amz-json-1.0',
   'content-length': '2',
   'connection': 'keep-alive',
   'x-amzn-requestid': 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
   'x-amz-crc32': 'xxxxxxxxxxxxxxxxxx'},
  'RetryAttempts': 0}}
Run Code Online (Sandbox Code Playgroud)

如何使用 boto3 从 dynamodb 获取项目?

amazon-web-services amazon-dynamodb boto3

7
推荐指数
1
解决办法
2550
查看次数

如何在 IAM Identity Center 登录后创建 AWS 控制台深层链接?

通过 IAM Identity Center 管理对多个账户的访问时,AWS 访问门户为这些账户中的每个可用角色/权限集提供可单击的链接。但是,控制台始终加载到主页。有没有办法构建一个“深层链接”URL,以便单击它的(授权)用户将:

  • 通过身份中心(/SSO)登录
  • 被重定向到控制台内的所需位置

我知道可以为给定的 PermissionSet设置中继状态,但这还不够,因为我可能希望给定的用户从不同的链接重定向到不同的位置 - 也就是说,我希望在单击的内容中对目的地进行编码URL,不在 PermissionSet 的元数据中。为每个可能的目的地创建不同的 PermissionSet 是不切实际的。

这个博客似乎准确地描述了我想要实现的目标,但它对我不起作用 - 按照说明,我:

  • 构造了一个字符串RPID=(url-encoded string of urn:amazon:webservices)&RelayState=(url-encoded destination url)
  • 对该字符串进行 URL 编码
  • 将该字符串(在 后面?RelayState=)附加到我的 Access Portal 提供的一键登录

然而,生成的 URL 只是让我登录并将我置于主页上,而没有任何重定向。

遗憾的是,该文章的所有链接似乎都已损坏。我还找到了这个页面,并尝试使用它来生成深层链接 - 再次,不走运,我刚刚登录到主页。

我确实注意到我的登录网址与示例不同 - 它们看起来像https://<domain>/adfs/ls/idpinitiatedsignon.aspx,而我的登录网址看起来像https://<internal-string>.awsapps.com/start/#/saml/custom/AAA/BBB,其中:

  • AAA是 url 编码的字符串account-number (account-nickname)
  • BBB是一些引用主AWS帐户的base64编码数据的url编码,后跟两个我无法放置的(下划线分隔的)标识符 - 一个是 form ins-[alphanumerics],另一个是 formp-[alphanumerics]

这是否意味着我的 ADFS 的配置与此功能预期的不同?还有办法实现我想要的吗?

编辑:我的网络管理员通知我,我们在内部使用 Azure AD,而不是 ADFS,这可能是 URL 格式不同的原因。

amazon-web-services amazon-iam aws-sso aws-iam-identity-center

7
推荐指数
1
解决办法
666
查看次数

如何为aws lambda python代码将时间戳设置为aws区域时区

在我的基于主键“deviceId”和 sortkey 时间戳(采用 YYYY-MM-DD HH:MN:SS 格式)扫描 dynamodb 的 python lambda 代码中,我需要扫描每个最近 15 分钟的数据(从现在开始) 。我在孟买地区 (ap-south-1),如何在以下 lambda 代码中设置本地时区。因为它选择默认的 utc 日期时间。理想情况下,lambda 必须扫描 & 如果返回计数 >= 10 则 Thermostat+5 。

import boto3
import math
import json
import time
from datetime import datetime,timedelta
from dateutil.tz import tzlocal
from boto3.dynamodb.conditions import Key, Attr

client = boto3.client('dynamodb')
dynamodb = boto3.resource('dynamodb')

def lambda_handler(event, context):

    #table_name= "thermostat_dynamo"
    table_name= "newsensor"
    Primary_Column_Name = 'deviceId'
    table = dynamodb.Table(table_name)
    #key_param = "thermostat"
    #thermostatVal = table.get_item(Key={key_param:event[key_param]}) ## get record from dynamodb for this …
Run Code Online (Sandbox Code Playgroud)

python amazon-web-services aws-lambda

6
推荐指数
1
解决办法
2万
查看次数

如何在AWS ELB负载均衡器中将协议从http更改为https?

是否可以更改使用 AWS 负载均衡器创建的目标组的协议和端口。

\n

例如,如果我最初将 ELB 设置HTTPS:443为协议:端口,然后想将其更改为HTTP:80\xe2\x80\x94,我该怎么做?或者我是否必须删除所有内容并使用新设置和新目标组设置新的负载均衡器?

\n

amazon-web-services amazon-elb

6
推荐指数
1
解决办法
4396
查看次数

docker 容器中的 DNS 解析

[环境]

  • CentOS 7
  • Docker 19.03.12,构建 48a66213fe

我有一个失败cerbot一个内(让我们加密客户端)泊坞窗容器。看起来acme-v02.api.letsencrypt.org不能从容器解析但可以从主机解析(最可能的原因)。我已经习惯了容器从主机的 DNS 参数继承的事实,但是对于 AWS EC2 实例,似乎有一些微妙之处

DNS 手动设置

[ec2-user@ip-172-31-32-243 ~]$ cat /etc/resolv.conf 
# Generated by NetworkManager
search eu-west-2.compute.internal
nameserver 172.31.0.2
Run Code Online (Sandbox Code Playgroud)

基于此和AWS 控制台中的一些元素,我尝试手动添加这些地址

docker run --dns 172.31.0.2 --dns 172.65.32.248
Run Code Online (Sandbox Code Playgroud)

(我可能没有找到合适的 DNS)

一个不雅的修复

使用主机的网络解决问题

docker run --network="host"
Run Code Online (Sandbox Code Playgroud)

但我只是不太明白为什么。是否与.net 中使用的网络接口有关--network="host"?以下是可用的:

[ec2-user@ip-172-31-32-243 ~]$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group …
Run Code Online (Sandbox Code Playgroud)

dns docker certbot

6
推荐指数
1
解决办法
1万
查看次数

如何管理要在 AWS Lambda 中使用的双向 TLS 的客户端证书

我们的团队正在使用 AWS Lambda 函数和 API 网关来促进与欧洲开放银行 API 的连接。(PSD2)。

我们的 Lambda 是用 NodeJS 编写的。

PSD2 需要相互 TLS,这很好,我们已经在沙盒环境中正确实现和工作。

示例请求如下所示:

{
  hostname: '[bank hostname]',
  path: '[bank api endpoint]',
  method: 'GET',
  headers: {
    accept: 'application/json',
    signature: 'XXX',
    date: 'XXX',
    digest: 'XXX',
    'x-request-id': 'XXX',
    'tpp-signature-certificate': '[PATH_TO_CERTIFICATE]',
    authorization: 'Bearer [accessToken]',
  },
  cert: fs.readFileSync('/var/task/certs/cert.crt'), // Buffer
  key: fs.readFileSync('/var/task/certs/private.key'), // Buffer
} 
Run Code Online (Sandbox Code Playgroud)

我们目前遇到的问题是我们不确定在哪里安全地存储我们的证书。目前,我们只是将它们存储在我们代码库中的资产文件夹中,这并不理想,出于显而易见的原因,我们希望将它们移出我们的代码库。

我们一直在研究 AWS ACM。但是,尚不清楚我们将如何检索证书的路径(在上传证书后)以便在上述请求中使用它。

所以我的问题是我们将如何使用 AWS 安全地存储我们的证书,以便我们可以在 HTTPS 请求中使用它们?

amazon-web-services node.js aws-lambda aws-api-gateway psd2

5
推荐指数
1
解决办法
684
查看次数

在用户数据运行命令期间未为 ec2-user 设置 $HOME

我将以下命令放入运行 RedHat 8 AMI ( ami-0fc841be1f929d7d1) 的 EC2 的用户数据中,当它们运行时,mkdir 尝试在根目录创建 .kube,在我看来,$HOME当时尚未设置。

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
Run Code Online (Sandbox Code Playgroud)

以下是日志来自/var/log/user-data.log

+ mkdir -p /.kube
+ sudo cp -i /etc/kubernetes/admin.conf /.kube/config
++ id -u
++ id -g
+ sudo chown 0:0 /.kube/config
Run Code Online (Sandbox Code Playgroud)

当我通过 SSH 连接到实例时,它$HOME被正确设置为 /home/ec2-user。

你能告诉我我在这里做错了什么吗?

谢谢

amazon-ec2 amazon-web-services

5
推荐指数
2
解决办法
3049
查看次数

AWS cron 表达式每隔一个星期一运行一次

我想安排一个 CloudWatch 事件每隔一个星期一运行,并已使用以下命令开始:

0 14 ? * 2 *

目前使用上述命令,我得到了周一执行的每周时间表:

Mon, 27 Jul 2020 14:00:00 GMT
Mon, 03 Aug 2020 14:00:00 GMT
Mon, 10 Aug 2020 14:00:00 GMT
Mon, 17 Aug 2020 14:00:00 GMT
Mon, 24 Aug 2020 14:00:00 GMT
Mon, 31 Aug 2020 14:00:00 GMT
Mon, 07 Sep 2020 14:00:00 GMT
Mon, 14 Sep 2020 14:00:00 GMT
Mon, 21 Sep 2020 14:00:00 GMT
Mon, 28 Sep 2020 14:00:00 GMT
Run Code Online (Sandbox Code Playgroud)

但是,我希望将时间表设置为每隔一个星期一,例如

Mon, 27 Jul 2020 14:00:00 GMT
Mon, 10 Aug …
Run Code Online (Sandbox Code Playgroud)

cron amazon-web-services amazon-cloudwatch-events

5
推荐指数
2
解决办法
2189
查看次数

我允许 EC2 安全组中的哪些 IP 地址允许客户端 VPN 流量通过?

我有一个 AWS 客户端 VPN 设置,以便可以连接到 VPN 的人可以访问同一 VPC 上的 EC2 服务器。一些用户报告说,他们在使用 VPN 时无法连接到服务,而其他用户则可以。

我可以在终端中执行 aping {{address_of_ec2_instance}}并获得响应,但连接到同一 VPN 的另一个用户将使用完全相同的命令获得超时,并解析相同的 IP。当他们访问https://www.whatismyip.com/时,他们报告连接到相同的 ISP 和位置。

我唯一可以推测的是,也许我没有在 EC2 安全设置上允许正确的端口范围,并且某些用户在端口范围内,但其他用户不在端口范围内。对于给定的客户端 VPN 终端节点,如何确定要转发的端口范围?

vpn amazon-ec2 amazon-web-services amazon-vpc aws-vpn

5
推荐指数
1
解决办法
2947
查看次数