AWS API Gateway - 设置跨账户访问的问题
创始人
2024-11-14 02:00:07
0

要设置跨账户访问AWS API Gateway,您需要完成以下步骤:

  1. 在目标账户中创建一个API,并获取该API的资源ID。

  2. 在源账户中创建一个IAM角色,并为该角色创建一个信任策略,允许目标账户中的API Gateway服务扮演该角色。

下面是一个使用Python SDK(boto3)的代码示例,演示如何创建信任策略和IAM角色:

import boto3
import json

source_account_id = 'YOUR_SOURCE_ACCOUNT_ID'
target_account_id = 'YOUR_TARGET_ACCOUNT_ID'
api_gateway_resource_id = 'YOUR_API_GATEWAY_RESOURCE_ID'

def create_iam_role():
    iam_client = boto3.client('iam')
    
    trust_policy = {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": f"arn:aws:iam::{target_account_id}:root"
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }
    
    response = iam_client.create_role(
        RoleName='CrossAccountAPIGatewayRole',
        AssumeRolePolicyDocument=json.dumps(trust_policy)
    )
    
    return response['Role']['Arn']

def attach_policy_to_role(role_arn):
    iam_client = boto3.client('iam')
    
    response = iam_client.attach_role_policy(
        RoleName='CrossAccountAPIGatewayRole',
        PolicyArn='arn:aws:iam::aws:policy/AmazonAPIGatewayInvokeFullAccess'
    )

def create_resource_policy(role_arn):
    api_gateway_client = boto3.client('apigateway')
    
    resource_policy = {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "AWS": role_arn
                },
                "Action": "execute-api:Invoke",
                "Resource": f"arn:aws:execute-api:*:*:{api_gateway_resource_id}/*"
            }
        ]
    }
    
    response = api_gateway_client.put_rest_api_policy(
        restApiId='api_gateway_id',
        policy=json.dumps(resource_policy)
    )

role_arn = create_iam_role()
attach_policy_to_role(role_arn)
create_resource_policy(role_arn)

请将代码中的YOUR_SOURCE_ACCOUNT_ID、YOUR_TARGET_ACCOUNT_ID和YOUR_API_GATEWAY_RESOURCE_ID替换为适当的值。

此代码示例将在源账户中创建一个名为CrossAccountAPIGatewayRole的IAM角色,并将允许目标账户使用该角色。然后,它将在API Gateway中创建一个资源策略,允许该角色访问指定的API资源。

确保您的代码在具有适当的权限的环境中运行,并使用正确的AWS凭证进行身份验证。

相关内容

热门资讯

关于透视!大菠萝手游辅助!实测... 关于透视!大菠萝手游辅助!实测发现辅助教程(有挂透明挂)-哔哩哔哩1.大菠萝手游辅助 选牌创建新账号...
科普透视!wpk俱乐部有没有辅... 科普透视!wpk俱乐部有没有辅助!分享实测辅助技巧(有挂教学)-哔哩哔哩一、wpk俱乐部有没有辅助游...
普及透视!hhpoker是正品... 普及透视!hhpoker是正品吗!玩家必看科普辅助教程(有人有挂)-哔哩哔哩1、hhpoker是正品...
教你透视!wepoker透视挂... 教你透视!wepoker透视挂底牌!带你了解辅助软件(真实有挂)-哔哩哔哩1、wepoker透视挂底...
解密透视!拱趴大菠萝怎么开挂!... 解密透视!拱趴大菠萝怎么开挂!玩家爆料辅助器(有挂存在)-哔哩哔哩1、游戏颠覆性的策略玩法,独创攻略...
解迷透视!拱趴大菠萝万能挂!一... 解迷透视!拱趴大菠萝万能挂!一分钟了解辅助挂(有挂辅助)-哔哩哔哩在进入拱趴大菠萝万能挂软件靠谱后,...
必备透视!hhpoker真的假... 必备透视!hhpoker真的假的!玩家亲测辅助技巧(新版有挂)-哔哩哔哩1、这是跨平台的hhpoke...
详细透视!wepoker手机版... 详细透视!wepoker手机版辅助!玩家攻略推荐辅助教程(有挂头条)-哔哩哔哩1、该软件可以轻松地帮...
辅助透视!wepoker安装教... 辅助透视!wepoker安装教程!科普常识辅助工具(有挂技巧)-哔哩哔哩wepoker安装教程透视方...
解迷透视!wepoker辅助器... 解迷透视!wepoker辅助器免费!解密关于辅助脚本(有挂规律)-哔哩哔哩wepoker辅助器免费是...