AWS

SourceOrgIDとPrincipalOrgIDでOrganiations環境下のアクセス制御を実現する

AWS

導入: リソースベースポリシーとプリンシパル AWSにおいてアクセス元を識別するための仕組みとしてプリンシパルがある。 IAMポリシーにおいてリソースベースのポリシーを定義するとき、さまざまな種類のプリンシパルから指定することができる。 docs.aws.ama…

Principalsに指定したIAMユーザを削除するとS3バケットポリシーが変化する

AWS

まさにこれに遭遇した。 dev.classmethod.jp S3バケットポリシーにIAMユーザのアクセス許可を付与していた。 IAMユーザを削除したが、S3バケットポリシーの修正もれが生じていた。 S3バケットポリシーはterraformで管理していたが、IAMユーザの指定ではIAMユ…

AWS lambdaのNode.jsを18にアップデートする

AWS LambdaのNode.js 16ランタイムは 2024年6月に廃止がアナウンスされている。 (Node.js 16 LTS自体は公式には2023年11月にEOLを迎えている)。 できるだけ早めに Node.js 18 or 20にアプデートしたい。 docs.aws.amazon.com AWS Lambda固有の事情として、No…

AWS LambdaのCloudTrailイベント名はAPI名と一致しない場合がある

AWS

AWS のCloudTrailログにおいてイベント名は基本的にAPI名と一致する。 例えば、S3に関するCloudTrailログであればイベント名は ListBucketsやGetBucketAclなど。 これはAWSドキュメントのAPI Referenceなどに記載の名前と一致する。 docs.aws.amazon.com 一…

AWS LambdaのGoランタイムを provided.al2023にアップデートする

AWS Lambdaの go1.xランタイムのサポートが切れるのでアップデートする。 aws.amazon.com provided.al2023の選択 ランタイムアップデートについてはAWS LambdaのGo言語向けドキュメントにまとまっている。 以下以外のドキュメントでは Amazon Linux 2023 (pr…

Step Functionsでリドライブすると旧リビジョンで動作する

AWS

Step Functionsにはリビジョン・バージョン・エイリアスの概念がある。 単にStep Functionsを更新するとリビジョンが更新されるが、特定のリビジョンにバージョンやエイリアスを発行することもできる。 docs.aws.amazon.com (公式ドキュメントより) Step Fun…

ECS fargateでログドライバにawslogsを利用するときはprefixを指定する

AWS

ECS fargateのログドライバでawslogsを利用するとき、awslogs-groupおよびawslogs-stream-prefixを指定する必要がある。 特にawslogs-stream-prefixはECS on EC2の場合は任意だが、ECS on fargateの場合は必須になるので注意が必要。 docs.aws.amazon.com ま…

Poetryで依存パッケージを指定ディレクトリに出力する

PythonランタイムのLambda関数を作成する場合には依存パッケージを特定ディレクトリに出力したい。 出力したディレクトリをzipファイルに含めることで依存パッケージを利用することができる。 docs.aws.amazon.com このPythonプロジェクトでパッケージ管理に…

VPC内にLambda関数を構築するときはパブリックサブネットは利用できない

AWS

VPC内にLambda関数を構築する場合、プライベートサブネットを利用することが推奨されている。 インターネットアクセスが必要な場合はNAT経由でアクセスしろとある。 アカウントの VPC に関数を接続すると、VPC からアクセス権が付与されない限り、関数はイン…