タグ

policyに関するopparaのブックマーク (28)

  • AWS IAMリソースの棚卸し方法をまとめてみた | DevelopersIO

    こんにちは、AWS事業部@福岡オフィスのべこみん(@beco_minn)です。 皆さんは定期的にIAMリソースの棚卸しや管理をしていますか?いつの間にか溜まっちゃってる不要なIAMユーザーやIAMポリシーは無いですか? 不要なIAMリソースを放置することはセキュリティ的に危険です。不要なものは定期的に削除しちゃいましょう。 そこで今回は不要なIAMリソースを少しでも楽に棚卸しする方法をまとめてみました。下記ターゲットに当てはまる方は是非ご一読ください。 記事のターゲット IAMリソースを管理していない方/出来ていない方 IAMリソースの棚卸しをマネジメントコンソール上から手動でポチポチやって時間がかかっている方 やりたいこと あまり時間をかけずにIAMリソースの棚卸しをしたい 普段使っていないIAMリソースや新規作成したIAMリソースを定期的に確認したい やってみた 今回は以下の3つの

    AWS IAMリソースの棚卸し方法をまとめてみた | DevelopersIO
  • 管理ポリシーの差分を出力する AWS CLI エイリアス aws diff を作ってみた | DevelopersIO

    コンバンハ、千葉(幸)です。 管理ポリシー、特に AWS 管理ポリシーの変更差分を確認したい機会がたまにあります。 マネジメントコンソール上で差分表示するような機能があれば便利なのですが、現時点では実装されていません。 ないなら AWS CLI でやってみるか、ということでエイリアスを組んでみました。 管理ポリシーの差分を表示するエイリアス 以下のエイリアスを設定しました。 ~/.aws/cli/alias [toplevel] diff = !f() { VERSION=$(aws iam get-policy --policy-arn $1 --query 'Policy.DefaultVersionId' --output text | tr -d "v") BEFORE_VERSION=$((VERSION-1)) BEFORE_RESULT=$(aws iam get-polic

    管理ポリシーの差分を出力する AWS CLI エイリアス aws diff を作ってみた | DevelopersIO
  • 【小ネタ】暗号化していない RDS DBの作成を拒否するポリシー | DevelopersIO

    ストレージ暗号化が未設定な DB(RDS DBインスタンス、Auroraクラスター)の作成を拒否するポリシーを作成してみます。AWS環境の予防的ガードレールとして、AWS Organizations のサービスコントロールポリシー(SCP)等で活用できると思います。 暗号化していない RDS DBの作成を拒否するポリシー 以下ポリシーを作成しました。 { "Version": "2012-10-17", "Statement": [ { "Sid": "DenyCreatingNonEncryptedDBCluster", "Effect": "Deny", "Action": [ "rds:CreateDBCluster" ], "Resource": "*", "Condition": { "Null": { "rds:StorageEncrypted": false }, "Bool

    【小ネタ】暗号化していない RDS DBの作成を拒否するポリシー | DevelopersIO
  • VPCの変更系APIを洗い出してCIDR周りの変更をSCPで止めたいなって思ったときに権限を洗い出す手法 | DevelopersIO

    こんにちは、臼田です。 みなさん、IAM書いてますか?(挨拶 今回はちょっと調べ物をした際に良さそうなIAM権限確認方法を見つけた(半分教えてもらった)のでそれと、実際に洗い出したVPCの変更権限を紹介します。 背景 「VPCIPアドレス(CIDR)周りの変更をさせたくないです」という要望をもらいました。 具体的にはAWS Organizationsを利用していて、一度管理側で払い出したVPCに対して、CIDR周りの操作を利用者にさせたくない、という感じです。 払い出しの作業と利用する時のOUが別なので、SCPVPCの変更系をブロックしよう、という設計方針になりました。 さて、問題は権限の洗い出しです。 変更権限の洗い出し 僕は経験上知っています。 IAMポリシーの設定画面に行くと、かんたんに変更系の権限を洗い出すことができます。何ならそのままいっぺんに選択してポリシードキュメントの作

    VPCの変更系APIを洗い出してCIDR周りの変更をSCPで止めたいなって思ったときに権限を洗い出す手法 | DevelopersIO
  • S3 へのアクセスを TLS 1.2 に限定! 新しく追加された IAM 条件キー s3:TlsVersion を使ってみた | DevelopersIO

    S3 へのアクセスを TLS 1.2 に限定! 新しく追加された IAM 条件キー s3:TlsVersion を使ってみた コンバンハ、千葉(幸)です。 2020年12月のアップデートで、以下の Amazon S3 の IAM 条件キーが追加されました。 s3:ResourceAccount s3:TLSVersion 前者は使い方がパッと分かったのですが、後者はいまいち分からず……。 手探りで確認した結果、大まかに使い方が分かりましたので、ご紹介します。 まとめ "s3:TlsVersion": "1.x"の書式で使用する 以下クライアントによる S3 アクセスは基的に TLS 1.2 で行われる AWS マネジメントコンソール AWS CLI AWS サービス AWS 製エージェント 条件キーの想定される主な用途は S3 アクセスを TLS 1.2 に限定すること 「 TLS 1.

    S3 へのアクセスを TLS 1.2 に限定! 新しく追加された IAM 条件キー s3:TlsVersion を使ってみた | DevelopersIO
  • Route53ホストゾーンにDNSレコードをTerraformで作成するのに必要な最小権限 | DevelopersIO

    Route53ホストゾーンにDNSレコードを一つ作るのをTerraformでやる機会がありました。今回訳あってTerraformが使うIAM Roleに必要以上に権限を持たせたくなかったので、最低限の権限だけ持たせました。そのIAM Policyを共有します。 TerraformでRoute53ホストゾーンにDNSレコードを作るコード 以下のroute53_recordリソースを使います。 aws_route53_record | Resources | hashicorp/aws | Terraform Registry resource "aws_route53_record" "hostname" { zone_id = local.hosted_zone_id name = local.fqdn type = "A" ttl = "300" records = [local.ip]

    Route53ホストゾーンにDNSレコードをTerraformで作成するのに必要な最小権限 | DevelopersIO
  • 【小ネタ】AWS Control Tower の 読み取り専用(ReadOnly)に必要なアクセス権限 | DevelopersIO

    ReadOnlyAccess だけでは Control Tower にアクセスできない AWS管理ポリシーの ReadOnlyAccess だけでは Control Tower へのコンソールに入れません。以下のようなエラーが出ます。 追加で必要な権限 以下 ポリシーをユーザーに追加で付けてあげる必要があります。 Control Tower および SSOに関連するリスト・読み取りアクションです。 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "controltower:Get*", "controltower:List*", "controltower:Describe*", "sso:getpermissionset", "sso:DescribeRegisteredRegions"

    【小ネタ】AWS Control Tower の 読み取り専用(ReadOnly)に必要なアクセス権限 | DevelopersIO
  • SSMのログを別AWSアカウントS3に送る方法 | DevelopersIO

    テクニカルサポートチームの丸屋 正志(Maruya Masashi)です。 困っていた内容 SSM の実行ログを別 AWS アカウントの S3 バケットに出力したいのですが、どうしたら良いでしょうか? また、複数の送信元 AWS アカウントからも SSM のログを送信したいです。 どう対応すればいいの? 送信元 AWS アカウントにて、IAM ロールの作成と SSM の送信元の設定が必要です。 そして、受信先 AWS アカウントにて、受信先にて S3 バケットポリシーの設定も必要となります。 やってみた 事前に受信先の S3 バケットをデフォルト設定で作成しておきます。 各種ロール名やバケット名については、任意のものが指定できますが、今回はサンプルとして以下のを前提といたします。 受信先バケット名 : exam-01 プレフィックス:AWSLogs ロール名 : EC2-SSM 送信元AW

    SSMのログを別AWSアカウントS3に送る方法 | DevelopersIO
  • Amazon EC2で条件キーが指定できるIAMポリシーのアクションを教えて下さい。 | DevelopersIO

    困っていた内容 Amazon EC2 の IAM ポリシーのアクションで指定された条件キーにのみアクセスを許可するポリシーを設定したいのですが、可能でしょうか。 可能な場合、IAM ポリシーのアクションを教えて下さい。 Amazon EC2 アクションに条件キーは指定可能? Amazon EC2 の ec2:Describe* のアクションでは、 リソースレベルのアクセス許可をサポートされていないので、指定された条件キーを指定できません。 なお、ec2:Describe* のアクションにて条件キーの指定はできませんが、 他の一部の Amazon EC2 のアクションではリソースレベルのアクセス許可しており、条件キーを指定できます。 Amazon EC2 の条件キーを指定できるアクションにつきましては、Amazon EC2 で定義されるアクションに記載されている表をご参照下さい。 検索方法

    Amazon EC2で条件キーが指定できるIAMポリシーのアクションを教えて下さい。 | DevelopersIO
  • AWS SAMでLambdaのPolicyとRoleを両方設定すると、Roleが優先されてハマった話 | DevelopersIO

    AWS SAMでLambdaのPolicyとRoleを付与したとき、Roleが設定されてPolicyで付与した権限が無いという現象に遭遇しました。 よくよく考えれば当たり前なのですが、地味にハマったのでご紹介します。 なお、記事はAWS LambdaとServerless #2の12日目です。 ハマったこと 最初はPolicyのみ付与していた たとえば、AWS SAMで次のLambdaを定義し、DynamoDBのReadOnlyAccessポリシーを付与していました。 Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 Policies: - arn:aw

    AWS SAMでLambdaのPolicyとRoleを両方設定すると、Roleが優先されてハマった話 | DevelopersIO
  • 【AWS SAM 入門⑥】IAM ロールの作成と Lambda Function への割り当て - log4ketancho

    AWS Serverless Application Model 入門ハンズオンシリーズ - log4ketancho の第6弾です。この記事では、SAM で IAM ロールを構築する方法をまとめたいと思います。 このシリーズの第1弾(下記の記事)において、 www.ketancho.net Role は各環境の ARN に置き換えてください と書きました。実はしれっと既存の IAM ロールがあることを前提にここまで進めてきました。ですが、SAM でサーバレスな環境を作るからには、IAM ロールの構築も SAM 化すべきです。 IAM ロールの作成 IAM ロールを作成するには、 AssumeRolePolicyDocument: どのリソースに IAM ロールを割り当てるかを決定 Policies: IAM ロールに割り当てる IAM ポリシーを設定 を定義する必要があります。 Assu

    【AWS SAM 入門⑥】IAM ロールの作成と Lambda Function への割り当て - log4ketancho
  • 特定セキュリティグループのみ EC2インスタンスへ関連付けできるように制限する IAMポリシー | DevelopersIO

    上の表の 条件#1は "aws:ResourceTag/AdminManaged": true 部分 条件#2 は "aws:RequestTag/AdminManaged": false 部分を表しています。 最終的に各条件の AND が計算されます。 結果として「AdminManaged タグが付与されていないセキュリティグループ」に対して 「AdminManaged タグ を追加」できなくなります。 (参考) IAMポリシーで説明した Null や Conditionの評価ロジックについては以下参考になります。 【小ネタ】 AWS IAMポリシーの Conditionで使える条件演算子 “Null” の使いみちを考える | DevelopersIO 複数のキーまたは値による条件の作成 - AWS Identity and Access Management 試してみる 以下 権限を

    特定セキュリティグループのみ EC2インスタンスへ関連付けできるように制限する IAMポリシー | DevelopersIO
  • AWS Backup に保存されているバックアップを復元と削除したい | DevelopersIO

    テクニカルサポートチームの丸屋 正志(Maruya Masashi)です。 困っていた内容 AWS Backup をコンソール上で EFS のデータを復元と削除をしたいのですが、アクセスが拒否されて実行出来ません。 アクセスが拒否されました このアクションを実行するには権限が不十分です。必要な権限についてはアカウント管理者に相談してください。 AdministratorAccess ポリシーをアタッチしているユーザーで実行しているにも関わらず、アクセスが拒否されてしまうため、どのように設定をしたらいいでしょうか? 具体的な要件は以下です。 バックアップボールト 《aws/efs/automatic-backup-vault》 を使用している デフォルトのアクセスポリシーがアタッチされていること { "Version": "2012-10-17", "Statement": [ { "Eff

    AWS Backup に保存されているバックアップを復元と削除したい | DevelopersIO
  • [AWS]指定するタグの有無によってEC2 起動を制限したい | DevelopersIO

    困っていた内容 EC2 起動時に、指定するタグの要件に従って起動を制限したいのですが、どのように IAMポリシーを指定すればよいでしょうか。 具体的な要件は以下です。 起動許可 1 期待するタグがある (Name:instance1, Environment:ABC 2 上記に加え、任意のタグがある(Name:instance1, Environment:ABC, myTag:hoge 起動制限 3 タグなし 4 期待するタグがすべてない(myTag:hoge 5 期待するタグが一部無い(Name:instance1 6 期待するタグの値が未入力(Name:, Environment:ABC AWS ナレッジセンターを確認したのですがうまくいきませんでした。 IAM ポリシータグを使用して EC2 インスタンスまたは EBS ボリュームの作成方法を制限するにはどうすればよいですか? どう対

    [AWS]指定するタグの有無によってEC2 起動を制限したい | DevelopersIO
  • AWS Backupでバックアップが削除できない。どうしたら削除できますか? | DevelopersIO

    困っていた内容 AWS Backup のバックアップボールトにおいて、不要なバックアップを削除しようとすると権限エラーとなり削除できません。 操作した IAMユーザーには Administrator Access ポリシーが付与されています。 どうすれば良いでしょうか。 個人検証環境にて再現したエラー内容 どう対応すればいいの? まず、今回の操作権限を評価しているIAM について振り返ってみます。 IAMでは、IAMポリシーを作成し、それらをIAM ID(ユーザー、ユーザーのグループ、またはロール)またはAWSリソースにアタッチすることで、AWSでのアクセス権限を管理します。 IAMポリシーのポリシータイプには、一般的に以下の種類が存在します。 アイデンティティベースのポリシー リソースベースのポリシー アクセス許可の境界( Permissions boundaries ) AWS Org

    AWS Backupでバックアップが削除できない。どうしたら削除できますか? | DevelopersIO
  • システム開発プロジェクトにおけるIAMポリシー権限はどうしたらいいですか | DevelopersIO

    アプリチーム アプリチームには広めの権限を与えます。 使うリソースごとの FullAccess を付与することもありです。 AWS CDK や Serverless Framework 等を使う場合は AdminstratorAccess を求められるかもしれませんが、円滑なアプリ開発のために許容しましょう。 強い権限を直接付与することに抵抗がある場合は、Cloud9 を活用します。 Cloud9 でインスタンスプロファイルをアタッチすることでアプリ開発者に直接強い権限を付与しなくて済みます。 【レポート】AWS Cloud9 の紹介 #reinvent #DEV320 Calling AWS services from an environment in AWS Cloud9 AdminstratorAccess を与える場合でも、Permissions Boundary を正しく設定し

    システム開発プロジェクトにおけるIAMポリシー権限はどうしたらいいですか | DevelopersIO
  • Redshift監査ログのS3バケットでバケットポリシーを基本Denyにする | DevelopersIO

    バケットポリシー指定時にアクションを許可する対象のPrincipal の指定にAWS アカウントIDを使用した内容となっておりましたが、最新のドキュメントでは、サービスプリンシパル名(Redshiftはredshift.amazonaws.com)を使用して指定に従い、修正しました。 Amazon Redshiftの監査ログ機能で、「ログ出力先のS3バケットのアクセス制限をできるだけ絞りたい」という要件を実現するバケットポリシーについて整理していきます。セキュリティ要件的にありがちな設定だとは思うのですが、Conditionの中身が結構複雑になるんですよね。 結論 先にバケットポリシーを掲載します。要点は以下の通りで、★が付いている項目が今回の肝です。このS3バケットを作成したCloudFormationのテンプレートは、文の最後に掲載しておきます。 明示的な許可 Redshift サー

    Redshift監査ログのS3バケットでバケットポリシーを基本Denyにする | DevelopersIO
  • 複数の否定条件を使ったS3バケットポリシーを正しく理解してますか? | DevelopersIO

    S3 バケットポリシーで複数の否定条件を使う場合、ANDで書くべきか、ORで書くべきか悩むことがあるので、図解を入れて解説します。 S3 へのアクセス元を限定する場合に、複数の否定条件を使った Deny でバケットポリシーを書くことがありますが、これは AND 条件なの? OR 条件なの? と混乱することがあるので、わかりやすく図解で考えてみました。 想定環境 今回、想定する環境は下図のとおりです。前提条件として「同一アカウントの IAM ポリシーで、S3へのアクセス権限は与えられている」(明示的な Allow は不要)とします。 "192.228.xx.xx/32" はインターネット経由のアクセス "10.0.0.0/24" は、VPC エンドポイント経由のアクセス バケットポリシーのおさらい バケットポリシーについては、弊社 北野の記事がとても参考になります。 S3バケットポリシーの具

    複数の否定条件を使ったS3バケットポリシーを正しく理解してますか? | DevelopersIO
  • IAM ポリシーで特定条件のアクセス制限をかけつつ、AWS サービスのアクセスは許可したいときの対処方法 | DevelopersIO

    困っていた内容 IAM ポリシーの条件で "aws:SourceIp" を指定し、IP 制限をかけました。その後、CloudFormation など AWS サービスがユーザーに代わって AWS 環境を操作するサービスで、IP 制限によるエラーが出ました。 アクセス元(ソース)IP の制限は残しつつ、AWS サービスが AWS リソースへアクセスすることを許可するには、どう対応すればいいでしょうか? どう対応すればいいの? IAM ポリシーで "aws:SrouceIp" を指定する "Condition" ブロック内に、以下のポリシーを追加することで、サービス利用者のアクセスは特定の IP アドレスでアクセス制限をかけつつ、AWS サービスのアクセスは許可することができます。 { "Bool": {"aws:ViaAWSService": "false"} } "aws:ViaAWSSe

    IAM ポリシーで特定条件のアクセス制限をかけつつ、AWS サービスのアクセスは許可したいときの対処方法 | DevelopersIO
  • IAM ポリシーで新規 IAM ユーザーがマネジメントコンソールへアクセスするのを防ぐための対処方法 | DevelopersIO

    困っていた内容 IAM ポリシーで IAM ユーザー作成時のプログラムによるアクセス用の IAM ユーザの作成は許可するが、AWS マネジメントコンソールへのアクセス用の IAM ユーザの作成を拒否するという設定は可能でしょうか。可能な場合は方法を教えてください。 IAM コンソールでは以下の設定箇所に該当します。 どう対応すればいいの? プログラムによるアクセスを許可し、AWS マネジメントコンソールへのアクセスを拒否する IAM ポリシーは設定可能です。 IAM コンソールのチェック項目は以下の API に該当します。 プログラムによるアクセス: CreateAccessKey AWS マネジメントコンソールへのアクセス: CreateLoginProfile 新規作成する IAM ユーザーの AWS マネジメントコンソールへのアクセスを判定するアクションはiam:CreateLogi

    IAM ポリシーで新規 IAM ユーザーがマネジメントコンソールへアクセスするのを防ぐための対処方法 | DevelopersIO