[小ネタ] カスタマー管理ポリシーに設定するアクションがわからない。そんなときは

2019.07.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

先日、AWS Transfer for SFTPを管理するためのユーザー(それ以外は操作不可)を作成する機会があり、そのためのポリシー設定(アクション)ってどうするんだっけ?と一瞬戸惑いました。

そんな方向けの小ネタです。

AWS Transfer for SFTPに対する権限管理というよりは、適切なアクションを探すにはどうしたら良いか?という記事になります。

IAMを理解できている方はこれを見るだけでOK

そもそもIAMユーザー(やIAMグループ、IAMロール)の権限管理ってどうする??

IAMユーザー(やIAMグループ、IAMロール)にはポリシーをアタッチすることで権限を制御します。 ポリシーの種類は以下の3つです。

  • AWS管理ポリシー
  • カスタマー管理ポリシー
  • インラインポリシー

AWS管理ポリシー

AWS管理ポリシーはAWSが用意している再利用可能なポリシーです。複数のIAMユーザー(やIAMグループ、IAMロール)間で共有可能です。 代表的なところでいうと

  • AmazonS3FullAccess
  • AmazonS3ReadOnlyAccess

などがあります。

タイプ:AWS による管理となっているものがAWS管理ポリシーです。

カスタマー管理ポリシー

カスタマー管理ポリシーはユーザーが作成できる再利用可能なポリシーです。複数のIAMユーザー(やIAMグループ、IAMロール)間で共有可能です。AWS管理ポリシーに最適なものがない場合はカスタマー管理ポリシーを作成することになります。

例えば、特定のS3バケットに対してのみ権限を与えたい場合はカスタマー管理ポリシーを作成します。

インラインポリシー

インラインポリシーはIAMユーザー(やIAMグループ、IAMロール)と1 対 1 の関係で作成するポリシーです。複数のIAMユーザー(やIAMグループ、IAMロール)間で共有することはできません。

多くの場合は、AWS管理ポリシー、カスタマー管理ポリシーを利用しIAMユーザー(やIAMグループ、IAMロール)の権限を制御します。

カスタマー管理ポリシーに設定するアクションがわからない

例えば、AmazonS3ReadOnlyAccessのActionは以下のようになっています。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*"
            ],
            "Resource": "*"
        }
    ]
}

ここのAction、AWS Transfer for SFTPのみ操作可としたい場合はどう設定すれば良いでしょうか??

答えは、ここにありました。

各サービス毎のActionが定義されています。

AWS Transfer for SFTPに対するActionも定義されており、サービスのprefixtransferであり、CreateServerCreateUserなどのActionがあることが理解できます。

AWS Transfer for SFTP (service prefix: transfer) provides the following service-specific resources, actions, and condition context keys for use in IAM permission policies.

なので、AWS Transfer for SFTPのみ操作可としたい場合は

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "transfer:*"
            ],
            "Resource": "*"
        }
    ]
}

のポリシーを作成し対象のユーザーにアタッチすればOKです。

今回は作成済みのAWS Transfer for SFTPに対する全てのアクションを可能にするためIAMPassRoleAccessと、AmazonS3FullAccessのポリシーも合わせて対象のユーザーにアタッチしました。

さいごに

カスタマー管理ポリシーのアクションに関する小ネタでした。誰かのお役に立てば幸いです。