LoginSignup
6
5

More than 1 year has passed since last update.

AWSのポリシー一覧

Last updated at Posted at 2019-10-31

英語が読めないので噛み砕いた日本語に翻訳しますlol
一応ほどほどにアクセス検証も行なっております。

ポリシーの注意事項

カスタムポリシー:自分でゼロから作れるポリシー。使い回しできます。
インラインポリシー:カスタムポリシーのように細かく設定できますが、使い回す様な保存はできません。

Lambda

・Lambdaで関数を作成する

サービス名 実際の表記 あればリソース そして解説
Lambda         lambda:CreateFunction Lambdaの関数の作成
※リソースが必要
全てのリソース とりあえずこれにしておいて
IAM iam:PassRole arn:aws:iam::*:role/{Lambda関数名} Lambda関数名から始まるロールを既存のロールとして読み込み
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:CreateFunction"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/hoge-*"
        }
    ]
}

※関数を作ることはできるけど、次のことができません!
次のことを実行する権限がありません: cloudformation:DescribeStackResources.
User: is not authorized to perform: kms:ListAliases on resource: *
→多分トリガーの設定ができないとおっしゃっている・・・
コードの書き換えもできない
→なんと・・・保存ボタンは押せるけど、コードの変更は反映されていない!print文とかでない。

・Lambdaで関数を削除する

サービス名 実際の表記 あればリソース そして解説
Lambda         lambda:DeleteFunction Lambdaの関数の削除
※リソースが必要
全てのリソース とりあえずこれにしておいて

消せました。

・Lambdaで関数のインラインコードを更新して反映させる

作成するやつだけでは更新できなかったので…

サービス名 実際の表記 あればリソース そして解説
Lambda       lambda:UpdateFunctionCode Lambdaの関数の更新
全てのリソース とりあえずこれにしておいて
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "lambda:UpdateFunctionCode",
            "Resource": "*"
        }
    ]
}

S3

・Bucketを作成する

これは簡単

サービス名 実際の表記 あればリソース そして解説
S3         s3:CreateBucket バケットを作る
arn:aws:s3:::{バケット名-*} *が使えるのでバケット名を縛ることができる

resouce: arn:aws:s3:::hoge-* としたら、バケットを作る時に hoge-bucket としなければならない。
プレフィックスが違うと作成できないよ。

・S3基本操作のロールを作る

ためになります。
https://dev.classmethod.jp/cloud/aws/access-control-on-specific-path-on-s3bucket/

サービス名 実際の表記 あればリソース そして解説
S3         s3:ListBucket arn:aws:s3:::{PJ名}-* ListObjectするために必要なやつ
S3         s3:GetObject オブジェクトが見れる
S3         s3:PutObject オブジェクトが更新、追加できる
S3         s3:DeleteObject オブジェクトが削除できる
S3         s3:PutBucketVersioning バケットのバージョニングが確認できる
S3         s3:ListAllMyBuckets * コンソール画面からバケット一覧が見れる
S3         s3:HeadBucket * 正直なぞい
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:ListBucketVersions",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:PutBucketVersioning"
            ],
            "Resource": [
                "arn:aws:s3:::hoge-*"
            ]
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:ListAllMyBuckets",
                "s3:HeadBucket"
            ],
            "Resource": "*"
        }
    ]
}

・Lambdaの基本操作のロールを作る

サービス名 実際の表記 あればリソース そして解説
Lambda      lambda:UpdateFunctionCode arn:aws:lambda:::function:hoge-* インラインコードで書いて変更を保存し反映させる
Lambda       lambda:InvokeFunction ラムダからラムダを呼び出すやつ
Lambda       lambda:ListVersionsByFunction
Lambda       lambda:GetFunction 関数の読み込み
Lambda       lambda:ListAliases エイリアスの取得。エイリアスはファンクションのバージョンてきなやつ。任意で保存可能。
Lambda       lambda:CreateAlias エイリアスの作成
Lambda       lambda:ListFunctions * 関数の一覧
Lambda       lambda:GetAccountSettings * Lambdaコンソールのところにアクセスする
Lambda       lambda:ListLayers * レイヤー一覧
Lambda       lambda:ListLayerVersions * レイヤーのバージョン一覧
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:UpdateFunctionCode",
                "lambda:InvokeFunction",
                "lambda:ListVersionsByFunction",
                "lambda:GetFunction",
                "lambda:ListAliases",
                "lambda:CreateAlias"
            ],
            "Resource": "arn:aws:lambda:*:*:function:hoge-*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "lambda:ListFunctions",
                "lambda:GetAccountSettings",
                "lambda:ListLayers",
                "lambda:ListLayerVersions"
            ],
            "Resource": "*"
        }
    ]
}

特定のS3バケットにだけアクセス

・バケット名一覧は取得できる
・hogeで始まるバケット以外は、中身がみれない

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "s3:GetAccountPublicAccessBlock",
                "s3:ListAllMyBuckets",
                "s3:ListJobs"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": [
                "arn:aws:s3:::*/*",
                "arn:aws:s3:*:*:job/*",
                "arn:aws:s3:::hoge*"
            ]
        }
    ]
}

・LambdaのS3トリガーがついているかどうかを確認する

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "lambda:ListEventSourceMappings",
                "lambda:GetPolicy"
            ],
            "Resource": "*"
        }
    ]
}
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5