[IAM 역할] 왜 Cloud9이 다른 AWS 서비스에 액세스할 수 있습니까?

7868 단어 cloud9AWSIAM 롤러

의문의 일


Organizations의 관리 계정인 Cloud9에서 CLI에 구성원 계정을 생성하려고 시도합니다.
하고 싶었던 멤버 계정 제작이 순조롭게 끝났는데 그때 이런 의문이 생겼다.
"Cloud9에서 왜 구성원 계정을 만들 수 있습니까?"
운영 콘솔의 IAM 사용자에게는 admin 권한이 있습니다.
그러나 Cloud9에서 어떤 자원을 만들려고 시도할 때 관건은 IAM 사용자의 권한이 아니라 Cloud9의 권한이라고 생각합니다.
나는 이치를 이해하고 싶어서 조사를 해 보았다.

컨텐트 확인


원래 가지고 있던 지식을 접하고 거기서 실제로 확인한 내용을 본다.

전제 지식


대체로 다음과 같은 인식이 있다.
・ IAM 사용자는 우리 인류가 AWS를 조작하기 위해 존재하는 것이다.
→ IAM 사용자가 IAM 정책이 추가된 IAM 그룹에 속하도록 함으로써 액세스 권한을 부여합니다.
·IAM 역할은 AWS 서비스 등 AWS 작업을 수행하기 위해 존재하는 역할입니다.
→ AWS 서비스는 IAM 정책을 추가하는 IAM 역할을 통해 액세스 권한을 부여합니다.

서비스 링크 역할?


↑ 의 이해가 있은 후에 먼저 Cloud9의 실체 EC2를 보았다.

"IAM 캐릭터"는 빈 칸 아닙니까?
당신은 이 아이가 아무런 방문 권한이 없다고 말합니까?
그러면 CLI의 AWS 계정은 설명할 수 없습니다.
조사 후 사용자 안내서에는 다음과 같은 설명이 있습니다.AWS Cloud9は、AWS Identity and Access Management(IAM)サービスにリンクされたロールを使用します。サービスリンクロールは、AWSCloud9に直接リンクされているユニークなタイプのIAMロールです。サービスにリンクされたロールはAWSCloud9によって事前定義されており、サービスがユーザーに代わって他のAWSサービスを呼び出すために必要なすべてのアクセス許可が含まれています。(Google翻訳)· Cloud9에서 미리 정의된 서비스 링크 역할 사용
· 서비스 링크 역할은 다른 서비스를 호출하는 데 필요한 접근 권한을 포함한다
그렇군요. 캐릭터라고 하지만 다양한 종류가 있죠.
서비스 링크 역할을 기억하십시오.
참고: AWS Cloud9용 Service-Linked Roles 사용
https://docs.aws.amazon.com/cloud9/latest/user-guide/using-service-linked-roles.html
실제 콘솔에서 IAM 역할 보기

AWS 서비스: cloud9(서비스에 연결된 역할 포함...).
이거 같은데.자세한 상황을 보겠습니다.

우선 액세스 권한입니다.
"AWSCloud9 Service Role Policy"라는 정책이 추가되었습니다.
이것은 목적을 나타내는 간단한 명명이다.

신뢰할 수 있는 실체 클라우드 9.amazonaws.com.
우리가 모르는 곳에서 그들은 신뢰 관계를 맺은 것 같다.
덕분에 캐릭터를 의식하지 않고cloud9로 다양한 조작을 할 수 있다고 할 수 있습니다.

정책 보기

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:CreateSecurityGroup",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:DescribeSecurityGroups",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "cloudformation:CreateStack",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackEvents",
                "cloudformation:DescribeStackResources"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances",
                "ec2:DeleteSecurityGroup",
                "ec2:AuthorizeSecurityGroupIngress"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:DeleteStack"
            ],
            "Resource": "arn:aws:cloudformation:*:*:stack/aws-cloud9-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*:*:security-group/*"
            ],
            "Condition": {
                "StringLike": {
                    "aws:RequestTag/Name": "aws-cloud9-*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances"
            ],
            "Resource": "*",
            "Condition": {
                "StringLike": {
                    "ec2:ResourceTag/aws:cloudformation:stack-name": "aws-cloud9-*"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:ListInstanceProfiles",
                "iam:GetInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::*:instance-profile/cloud9/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:PassRole"
            ],
            "Resource": [
                "arn:aws:iam::*:role/service-role/AWSCloud9SSMAccessRole"
            ],
            "Condition": {
                "StringLike": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        }
    ]
}
EC2, CloudFormation의 라이센스 설정은 무엇입니까?
Action: Organizations: ~ 등의 설명이 없습니다.
그러나 Organizations의 CLI를 사용하여 구성원 계정을 생성할 수 있는 이유는 무엇입니까?
이 일대는 약간의 의문을 남겼다.
참고: AWS Cloud9 서비스 - AWS Cloud9용 Linked Role 권한
https://docs.aws.amazon.com/cloud9/latest/user-guide/using-service-linked-roles.html#service-linked-role-permissions

총결산


· 일부 AWS 서비스에서는 서비스 링크 역할을 미리 정의합니다.
· 따라서 이 AWS 서비스의 기본 동작 부분에서 사용자 측에 역할을 부여하는 것을 고려할 필요가 없다.
'IAM 캐릭터'라는 큰 틀로 포착했지만 좀 더 깊이 이해할 필요가 있다는 것을 깨달았다.
계속 공부하다.

추가로 확인하고 싶은 일


· "서비스 링크 캐릭터"가 부족합니다. 캐릭터를 추가하고 싶은 경우가 있나요?
・'캐릭터의 종류'를 정리하고 싶다.

참고 자료


AWS services that work with IAM
https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html
→'서비스 링크 역할'이 준비된 각 AWS 서비스를 확인할 수 있습니다.
AWS Cloud9 환경에서 사용할 수 있는 임시 신용장 "AWS가 관리하는 Temporary Credentials"를 조사했습니다.
https://dev.classmethod.jp/articles/aws-cloud9-aws-managed-temporary-credentials/#toc-2
Cloud9-IAM Role 사용 권한을 사용하여 AWS CLI 실행
https://dev.classmethod.jp/articles/execute-aws-cli-with-iam-role-on-cloud9/
→대충 봤지만 이해가 안 돼.추가 의문점을 해소할 요점이 있는 것 같습니다.
What can I do with AWS Cloud9?
https://docs.aws.amazon.com/cloud9/latest/user-guide/what-can-i-do.html
→ 원래 Cloud9은 무엇을 할 수 있을까?그럼본 기사의 내용과는 직접적인 관련이 없지만 잘 읽고 싶습니다.

좋은 웹페이지 즐겨찾기