如何使 SSM 文档在所有 AWS 账户之间共享?



我正在研究AWS系统管理器。我正在使用它使用系统管理器下的分销商将我的软件推送到实例。

分发服务器创建一个包。该软件包将包含我的安装脚本,卸载脚本和我将要推送的.exe文件。整个软件包将另存为由系统管理器维护的SSM文档。

假设我有两个 AWS 账户,我的问题:

帐户- 我在其中创建包的帐户(us-east-1(

B 帐户- 正在运行的实例。(AP-东南-2

我想将"A"中的包推送到帐户"B"实例。

我必须用我的python代码来做到这一点。所以我使用了boto3。

def runcommand(self,instanceid):
try:
response = self.ssmclient.send_command(
InstanceIds=[instanceid,],
DocumentName='AWS-ConfigureAWSPackage',
TimeoutSeconds=600,
Parameters={
'action': ['Install'],
'installationType':['Uninstall and reinstall'],
'name':['arn:aws:ssm:us-east-1:accnumber:document/SSMDistributorPackage']
},
OutputS3Region='ap-southeast-2',
OutputS3BucketName='output',
OutputS3KeyPrefix='abcd',
)
print("Successfully pushed the agent....")
except Exception as e:
print("The error while running command:::::",str(e))
print("response(send_command)::::",response)

但它会抛出错误,例如无效文档:跨区域 arn 不支持

我该如何解决这个问题?

有没有办法使所有 aws 账户都支持此软件包?

SSM 文档可以在账户之间共享。

但是,此错误不是跨账户错误。您正在将 SSM 文档从一个区域引用到另一个区域。

由于客户端和实例处于ap-southeast-2但文档处于us-east-1,因此您需要在ap-southeast-2区域中创建文档。

最新更新