ablog

不器用で落着きのない技術者のメモ

STS の VPC エンドポイントポリシーのサンプル

Lambda in VPC から VPC エンドポイント経由で、STS にアクセスする際のVPCエンドポイントポリシーの例。AWSアカウントID: 123456789012 の Role id: A*******************O からの sts:AssumeRole のみを許可している。

  • STSVPC エンドポイントポリシー。
{
    "Statement": [
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "aws:userid": "A*******************O:*"
                }
            },
            "Principal": {
                "AWS": "123456789012"
            }
        }
    ]
}
  • aws:userid に指定する Role id は aws iam get-role --role-name <ロール名> で取得する。
$  aws iam get-role --role-name LambdaRole
{
    "Role": {
        "Description": "Allows Lambda functions to call AWS services on your behalf.", 
        "AssumeRolePolicyDocument": {
            "Version": "2012-10-17", 
            "Statement": [
                {
                    "Action": "sts:AssumeRole", 
                    "Effect": "Allow", 
                    "Principal": {
                        "Service": "lambda.amazonaws.com"
                    }
                }
            ]
        }, 
        "MaxSessionDuration": 3600, 
        "RoleId": "A*******************O",  ★ これを aws:userid に指定する
        "CreateDate": "2020-02-01T06:35:46Z", 
        "RoleName": "LambdaRole", 
        "Path": "/", 
        "Arn": "arn:aws:iam::123456789012:role/LambdaRole"
    }
}